diff --git a/.deepsource.toml b/.deepsource.toml
deleted file mode 100644
index 82583e262..000000000
--- a/.deepsource.toml
+++ /dev/null
@@ -1,7 +0,0 @@
-version = 1
-
-[[analyzers]]
-name = "javascript"
-
-[[transformers]]
-name = "prettier"
\ No newline at end of file
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
new file mode 100644
index 000000000..997807e90
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -0,0 +1,56 @@
+---
+name: New Bug Report
+about: Use this template for reporting new bugs.
+title: "[BUG]: bug description here"
+labels: bug
+---
+
+
+
+## Issue Type
+
+
+
+## Context (Environment, Version, Language)
+
+
+
+Input Format:
+Output Language:
+
+
+
+CLI, npm, or app.quicktype.io:
+Version:
+
+## Description
+
+
+
+
+## Input Data
+
+
+
+
+## Expected Behaviour / Output
+
+
+
+## Current Behaviour / Output
+
+
+
+## Steps to Reproduce
+
+
+
+
+1.
+2.
+3.
+4.
+
+## Possible Solution
+
+
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 000000000..dd39e6d26
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+# contact_links:
+# - name: GitHub Community Support
+# url: https://github.com/orgs/community/discussions
+# about: Please ask and answer questions here.
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
new file mode 100644
index 000000000..5aab66de0
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.md
@@ -0,0 +1,40 @@
+---
+name: Feature Request
+about: Use this template for requesting new features.
+title: "[FEATURE]: feature description here"
+labels: enhancement
+---
+
+
+
+## Context (Input, Language)
+
+
+
+Input Format:
+Output Language:
+
+## Description
+
+
+
+
+## Current Behaviour / Output
+
+
+
+## Proposed Behaviour / Output
+
+
+
+## Solution
+
+
+
+## Alternatives
+
+
+
+## Context
+
+
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 000000000..86eeba010
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,29 @@
+## Description
+
+
+
+## Related Issue
+
+
+
+
+
+## Motivation and Context
+
+
+
+
+## Previous Behaviour / Output
+
+
+
+## New Behaviour / Output
+
+
+
+## How Has This Been Tested?
+
+
+
+
+## Screenshots (if appropriate):
diff --git a/.github/workflows/master.yaml b/.github/workflows/master.yaml
index 852ae762d..363eec663 100644
--- a/.github/workflows/master.yaml
+++ b/.github/workflows/master.yaml
@@ -6,10 +6,13 @@ on:
jobs:
publish:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: ./.github/workflows/setup
+ env:
+ PUBLISH: true
- run: npm run pub
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
+ VSCE_TOKEN: ${{ secrets.VSCE_TOKEN }}
diff --git a/.github/workflows/setup/action.yaml b/.github/workflows/setup/action.yaml
index 89c7367ee..6eb937510 100644
--- a/.github/workflows/setup/action.yaml
+++ b/.github/workflows/setup/action.yaml
@@ -19,7 +19,7 @@ runs:
echo "source_key=$SOURCE_KEY" >> $GITHUB_ENV
- name: Setup node
- uses: actions/setup-node@v3
+ uses: actions/setup-node@v4
with:
node-version: ${{ env.node_version }}
cache: npm
diff --git a/.github/workflows/test-pr.yaml b/.github/workflows/test-pr.yaml
index b9af1b9f2..d497d9b1c 100644
--- a/.github/workflows/test-pr.yaml
+++ b/.github/workflows/test-pr.yaml
@@ -3,9 +3,10 @@ on:
pull_request:
branches:
- master
+ - "release/**"
jobs:
build:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: ./.github/workflows/setup
@@ -31,11 +32,12 @@ jobs:
- csharp,schema-csharp,schema-json-csharp,graphql-csharp,csharp-SystemTextJson
- json-ts-csharp
- dart,schema-dart
- - swift,schema-swift
+ # - swift,schema-swift # pgp issue
- javascript-prop-types
- ruby
- php
- scala3,schema-scala3
+ - elixir,schema-elixir,graphql-elixir
# Partially working
# - schema-typescript # TODO Unify with typescript once fixed
@@ -43,7 +45,7 @@ jobs:
# Implementation is too outdated to test in GitHub Actions
# - elm,schema-elm
- # Language is too niche / obscure to test easily on ubuntu-latest
+ # Language is too niche / obscure to test easily on ubuntu-22.04
# - pike,schema-pike
# Not yet started
@@ -54,18 +56,18 @@ jobs:
# Never tested?
# - crystal
- runs-on: [ubuntu-latest]
+ runs-on: [ubuntu-22.04]
include:
# Rust is very slow, so we use a larger runner
- fixture: rust,schema-rust
- runs-on: ubuntu-latest-8-cores
+ runs-on: ubuntu-latest-16-cores
# Kotlin is also slow
- fixture: kotlin,schema-kotlin,kotlin-jackson,schema-kotlin-jackson
- runs-on: ubuntu-latest-8-cores
+ runs-on: ubuntu-latest-16-cores
- - fixture: objective-c
- runs-on: macos-11
+ # - fixture: objective-c # segfault on compiled test cmd
+ # runs-on: macos-latest
name: ${{ matrix.fixture }}
steps:
@@ -176,10 +178,20 @@ jobs:
- run: echo '@main def hello() = println("We need this spam print statement for bloop to exit correctly...")' | scala-cli _
if: ${{ contains(matrix.fixture, 'scala3') }}
+ - name: Install Elixir
+ if: ${{ contains(matrix.fixture, 'elixir') }}
+ uses: erlef/setup-beam@v1
+ with:
+ elixir-version: "1.15.7"
+ otp-version: "26.0"
+
- run: QUICKTEST=true FIXTURE=${{ matrix.fixture }} npm test
test-complete:
+ if: ${{ cancelled() || contains(needs.*.result, 'cancelled') || contains(needs.*.result, 'failure') }}
needs: test
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
steps:
- - run: echo π
+ - run: |
+ echo "Some workflows have failed!"
+ exit 1
diff --git a/.gitignore b/.gitignore
index f800a1642..7178f4122 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,4 +36,3 @@ test/fixtures/objective-c/quicktype
/.bsp
.metals
.scala-build
-.vscode
diff --git a/.nvmrc b/.nvmrc
index 9dfef4721..517f38666 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-v18.12.0
+v22.14.0
diff --git a/.prettierrc b/.prettierrc
deleted file mode 100644
index 1e80e79ea..000000000
--- a/.prettierrc
+++ /dev/null
@@ -1 +0,0 @@
-{ "tabWidth": 4, "printWidth": 120, "trailingComma": "none", "arrowParens": "avoid" }
diff --git a/.vscode/launch.json b/.vscode/launch.json
index 7c36e6c8a..1cbad2c56 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -1,40 +1,40 @@
{
- // Use IntelliSense to learn about possible Node.js debug attributes.
- // Hover to view descriptions of existing attributes.
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "quicktype",
- "type": "node",
- "request": "launch",
- "program": "${workspaceRoot}/node_modules/ts-node/dist/_bin.js",
- "runtimeArgs": ["--nolazy"],
- "args": [
- "--project",
- "src/cli/tsconfig.json",
- "src/cli/index.ts",
- "--lang",
- "dart",
- "--src-lang",
- "json",
- "./test/inputs/json/priority/blns-object.json"
- ],
- "cwd": "${workspaceRoot}",
- "protocol": "inspector"
- },
- {
- "name": "test",
- "type": "node",
- "request": "launch",
- "program": "${workspaceRoot}/node_modules/ts-node/dist/_bin.js",
- "args": ["--project", "test/tsconfig.json", "test/test.ts"],
- "cwd": "${workspaceRoot}",
- "protocol": "inspector",
- "env": {
- "CPUs": "1",
- "FIXTURE": "golang"
- }
- }
- ]
+ // Use IntelliSense to learn about possible Node.js debug attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "quicktype",
+ "type": "node",
+ "request": "launch",
+ "program": "${workspaceRoot}/node_modules/ts-node/dist/_bin.js",
+ "runtimeArgs": ["--nolazy"],
+ "args": [
+ "--project",
+ "src/cli/tsconfig.json",
+ "src/cli/index.ts",
+ "--lang",
+ "dart",
+ "--src-lang",
+ "json",
+ "./test/inputs/json/priority/blns-object.json"
+ ],
+ "cwd": "${workspaceRoot}",
+ "protocol": "inspector"
+ },
+ {
+ "name": "test",
+ "type": "node",
+ "request": "launch",
+ "program": "${workspaceRoot}/node_modules/ts-node/dist/_bin.js",
+ "args": ["--project", "test/tsconfig.json", "test/test.ts"],
+ "cwd": "${workspaceRoot}",
+ "protocol": "inspector",
+ "env": {
+ "CPUs": "1",
+ "FIXTURE": "golang"
+ }
+ }
+ ]
}
diff --git a/.vscode/settings.json b/.vscode/settings.json
index ea68a90d3..b666505db 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,25 +1,39 @@
{
- // Place your settings in this file to overwrite default and user settings.
- "editor.formatOnSave": true,
- "spellright.ignoreFiles": [
- "**/.gitignore",
- "**/.spellignore"
- ],
- "search.exclude": {
- "**/.git": true,
- "**/node_modules": true,
- "**/bower_components": true,
- "**/tmp": true,
- "output": true,
- "**/obj": true,
- "**/bin": true,
- "test/inputs": true,
- "test/runs": true,
- "app/build": true,
- "elm-stuff": true,
- "dist": true
- },
- "explorer.excludeGitIgnore": false,
- "spellright.documentTypes": [],
- "java.configuration.updateBuildConfiguration": "automatic"
-}
\ No newline at end of file
+ // Place your settings in this file to overwrite default and user settings.
+ "editor.formatOnSave": true,
+ "search.exclude": {
+ "**/.git": true,
+ "**/node_modules": true,
+ "**/bower_components": true,
+ "**/tmp": true,
+ "output": true,
+ "**/obj": true,
+ "**/bin": true,
+ "test/inputs": true,
+ "test/runs": true,
+ "app/build": true,
+ "elm-stuff": true,
+ "dist": true
+ },
+ "explorer.excludeGitIgnore": false,
+ "java.configuration.updateBuildConfiguration": "automatic",
+
+ "files.associations": {
+ "*.schema": "jsonc"
+ },
+
+ "[json]": {
+ "editor.defaultFormatter": "biomejs.biome",
+ "editor.wordWrap": "on",
+ "editor.insertSpaces": true,
+ "editor.tabSize": 4,
+ "editor.detectIndentation": false
+ },
+ "[jsonc]": {
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.wordWrap": "on",
+ "editor.insertSpaces": true,
+ "editor.tabSize": 4,
+ "editor.detectIndentation": false
+ }
+}
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
deleted file mode 100644
index d41fa1af8..000000000
--- a/.vscode/tasks.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- // See https://go.microsoft.com/fwlink/?LinkId=733558
- // for the documentation about the tasks.json format
- "version": "2.0.0",
- "tasks": [
- {
- "type": "npm",
- "script": "tslint",
- "group": "build",
- "problemMatcher": [
- "$tslint5"
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/PACKAGES.md b/PACKAGES.md
deleted file mode 100644
index 59ab3a0ef..000000000
--- a/PACKAGES.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# The packages
-
-* `quicktype-core`: This is the engine of quicktype. It takes JSON, JSON Schema, and GraphQL input and produces output in a variety of programming languages. We're trying to keep this lean in terms of download size so that it can be embedded, such as in [quicktype-playground](https://github.com/quicktype/quicktype-playground).
-
-* `quicktype-typescript-input`: This is a bit of code that allows TypeScript code to be fed as input to `quicktype-core`, by transforming it to JSON Schema with [typescript-json-schema](https://github.com/YousefED/typescript-json-schema). It depends on `quicktype-core`.
-
-* `quicktype-graphql-input`: This is the GraphQL input module. It's split off into a separate package because it's not used in the web UI and `quicktype-playgrounds`, and it uses the moderately sized `graphql` dependency.
-
-* `quicktype`: This is the command line interface for quicktype. It's a monolithic package that doesn't depend on the other packages, but contains all their code directly. This is mainly for ease of development. Packages that want to use quicktype's CLI interface, such as [json-to-azure-node-schema](https://github.com/json-helpers/json-to-azure-node-schema) will have to use this package.
-
-# Module resolution
-
-`quicktype-typescript-input` and `quicktype-graphql-input` have to work both as their own packages, depending on the `quicktype-core` package, as well as part of `quicktype`, referring to the files in the local `src/quicktype-core` directory.
-
-In addition, since those two input packages depend on `quicktype-core`, we would have to first build `quicktype-core`, publish it, and then build the input packages, depending on the just published `quicktype-core`. This is bad for development, since we couldn't do modifications to all packages without publishing, if we want to test independent of the `quicktype` package. The same goes for CI. Therefore, the two have to build as packages depending on the local `build/quicktype-core` package, but have to be published depending on the proper `quicktype-core` NPM package. We solve this the following way:
-
-* All packages, including `quicktype-typescript-input` and `quicktype-graphql-input`, import files with local paths, such as `"../quicktype-core"`. This seems the only way to make VSCode's TypeScript integration, as well as `ts-node` happy. Unfortunately, since local paths can's use `tsc`'s path mapping, we have to rewrite those paths _before_ compiling, which is done in `build/quicktype-*-input/build.ts`: it copies all the sources, rewrites them, compiles, and then deletes the copied sources again.
-
-* Depending on whether we build the input packages, or publish them, their `package.json`s will have to refer to either the local `quicktype-core` package, or the NPM one. This is also done by the build script, which replaces the dependency with the right one for the job.
-
-## Issues
-
-Module resolution in Node is such that if a package is not found in the local `node_modules` directory, it goes up the directory hierarchy and tries every `node_modules` directory it finds. We have a `node_modules` in the root directory of our repo, so a subpackage build will fall back to that if it can't find a package locally. The main consequence of that seems to be that the build won't catch missing dependencies in those packages if they're present in the root package. Moving the root `package.json` to `build/quicktype` screws with lots of tooling.
-
-# Building
-
-The root `quicktype` package does everything from its `package.json`.
-
-The other packages each have a `build.js` in their `build/PACKAGE` directory. It is required to build the root package before building the others, because it will install the `semver` package which the build script for the other packages depend on. It's also required to build `quicktype-core` before building the ones that depend on it. This is how to build everything:
-
-```shell
-npm install
-( cd build/quicktype-core ; node build.js )
-( cd build/quicktype-typescript-input ; node build.js )
-( cd build/quicktype-graphql-input ; node build.js )
-```
diff --git a/README.md b/README.md
index d58334102..9d9fcbbf9 100644
--- a/README.md
+++ b/README.md
@@ -43,15 +43,6 @@ For the best CLI, we recommend installing `quicktype` globally via `npm`:
npm install -g quicktype
```
-Other options:
-
-- [Homebrew](http://formulae.brew.sh/formula/quicktype) _(infrequently updated)_
-- [Xcode extension](https://itunes.apple.com/us/app/paste-json-as-code-quicktype/id1330801220?mt=12)\*
-- [VSCode extension](https://marketplace.visualstudio.com/items/quicktype.quicktype)\*
-- [Visual Studio extension](https://marketplace.visualstudio.com/items?itemName=typeguard.quicktype-vs)\*
-
-\* limited functionality
-
## Using `quicktype`
```bash
@@ -195,6 +186,11 @@ main();
The argument to `quicktype` is a complex object with many optional properties. [Explore its definition](https://github.com/quicktype/quicktype/blob/master/packages/quicktype-core/src/Run.ts#L637) to understand what options are allowed.
+### Adding Custom logic or Rendering:
+
+Quicktype supports creating your own custom languages and rendering output, you can extend existing classes or create your own to be using by the `quicktype function`.
+Check out [this guide](./doc/CustomRenderer.md) for more info.
+
## Contributing
`quicktype` is [Open Source](LICENSE) and we love contributors! In fact, we have a [list of issues](https://github.com/quicktype/quicktype/issues?utf8=β&q=is%3Aissue+is%3Aopen+label%3Ahelp-wanted) that are low-priority for us, but for which we'd happily accept contributions. Support for new target languages is also strongly desired. If you'd like to contribute, need help with anything at all, or would just like to talk things over, come [join us on Slack](http://slack.quicktype.io/).
diff --git a/biome.json b/biome.json
new file mode 100644
index 000000000..a1af651fa
--- /dev/null
+++ b/biome.json
@@ -0,0 +1,16 @@
+{
+ "files": {
+ "ignore": [
+ "test/runs",
+ "test/inputs",
+ "dist",
+ "node_modules",
+ "packages/*/dist",
+ "packages/*/node_modules"
+ ]
+ },
+ "formatter": {
+ "indentStyle": "space",
+ "indentWidth": 4
+ }
+}
diff --git a/doc/CustomRenderer.md b/doc/CustomRenderer.md
new file mode 100644
index 000000000..42040e393
--- /dev/null
+++ b/doc/CustomRenderer.md
@@ -0,0 +1,145 @@
+# Extending quicktype functionality with a Custom Renderer
+
+## quicktype Interface
+
+To customise your rendering output, you can extend existing quicktype classes and override existing methods to achieve the behaviour you want.
+
+This process requires 3 main steps:
+
+1. [Extending a `Renderer` Class](#creating-a-custom-renderer)
+2. [Wrapping your `Renderer` in a `TargetLanguage` Class](#creating-a-targetlanguage)
+3. [Using your new classes in the `quicktype` function](#using-your-custom-language)
+4. [Advanced Usage: Creating an entirely new Language](#creating-a-new-language)
+
+## Creating a custom `Renderer`
+
+Adding custom render logic for an existing language often involves extending a Renderer class and simply overriding or amending one of the `emit` methods:
+
+```ts
+// MyCustomRenderer.ts
+import { CSharpRenderer } from "quicktype-core";
+
+export class MyCustomRenderer extends CSharpRenderer {
+ // Add your custom logic here, feel free to reference the source code for how existing methods work
+ //
+ // ex.
+ protected superclassForType(t: Type): Sourcelike | undefined {
+ // if the type is a class, it should extend `GameObject` when rendered in C#
+ if (t instanceof ClassType) {
+ return "GameObject";
+ }
+ return undefined;
+ }
+ // See: http://blog.quicktype.io/customizing-quicktype/ for more context
+}
+```
+
+## Creating a `TargetLanguage`
+
+If you just want to change the rendering logic for an existing language, you can just extend an exported Language class (`CSharpTargetLanguage` in this example) and override the `makeRenderer` method:
+
+```ts
+// MyCustomLanguage.ts
+import { CSharpTargetLanguage } from "quicktype-core";
+
+import { MyCustomRenderer } from "./MyCustomRenderer";
+
+export class MyCustomLanguage extends CSharpTargetLanguage {
+ // `makeRenderer` instantiates the Renderer class for the TargetLanguage
+ protected makeRenderer(
+ renderContext: RenderContext,
+ untypedOptionValues: Record
+ ): MyCustomRenderer {
+ // use your new custom renderer class here
+ return new MyCustomRenderer(this, renderContext, getOptionValues(cSharpOptions, untypedOptionValues));
+ }
+}
+```
+
+## Using your custom Language
+
+```ts
+import { quicktype } from "quicktype-core";
+
+import { MyCustomLanguage } from './MyCustomLanguage';
+
+const lang = new MyCustomLanguage();
+
+const lines = await quicktype({
+ lang: lang, // use your new TargetLanguage in the `lang` field here
+ ...
+});
+
+console.log(lines);
+```
+
+## Creating a new Language
+
+If none of the existing `quicktype` Language classes suit your needs, you can creating your own `TargetLanguge` and `Renderer` classes from scratch. If this satisfies your use cases for a language we don't currently support, please consider opening a PR with your new language and we'd love to take a look.
+
+If you run into any issues, you can open a GitHub issue and we'll help you take a look.
+
+### Creating a `TargetLanguage` from scratch
+
+Instead of just extending an existing language, a new Language requires two additional steps:
+
+- Defining the language config
+- Adding any language-specific options
+
+```ts
+import { TargetLanguage, BooleanOption } from "quicktype-core";
+
+// language config
+const brandNewLanguageConfig = {
+ displayName: "Scratch", // these can be the same
+ names: ["scratch"], // these can be the same
+ extension: "sb" // the file extension that this language commonly has
+} as const;
+
+// language options
+const brandNewLanguageOptions = {
+ allowFoo: new BooleanOption(
+ "allow-foo", // option name
+ "Allows Foo", // description
+ true // default value
+ )
+ // The default available Option classes are: StringOption, BooleanOption, EnumOption
+ // Please visit the source code for more examples and usage
+};
+
+class BrandNewLanguage extends TargetLanguage {
+ public constructor() {
+ super(brandNewLanguageConfig);
+ }
+
+ public getOptions(): typeof brandNewLanguageOptions {
+ return brandNewLanguageOptions;
+ }
+
+ protected makeRenderer(
+ renderContext: RenderContext,
+ untypedOptionValues: Record
+ ): BrandNewRenderer {
+ return new BrandNewRenderer(this, renderContext, getOptionValues(brandNewLanguageOptions, untypedOptionValues));
+ }
+}
+```
+
+### Creating a `Renderer` from scratch
+
+Creating a brand new `Renderer` class is very similar to extending an existing class:
+
+```ts
+export class BrandNewRenderer extends ConvenienceRenderer {
+ public constructor(targetLanguage: TargetLanguage, renderContext: RenderContext) {
+ super(targetLanguage, renderContext);
+ }
+
+ // Additional render methods go here
+ // Please reference existing Renderer classes and open a GitHub issue if you need help
+}
+```
+
+## Links
+
+Blog post with an older example: http://blog.quicktype.io/customizing-quicktype/
diff --git a/package-lock.json b/package-lock.json
index ad7704b81..06837b485 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,20 +1,21 @@
{
"name": "quicktype",
- "version": "23.0.0",
- "lockfileVersion": 2,
+ "version": "23.2.0",
+ "lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "quicktype",
- "version": "23.0.0",
+ "version": "23.2.0",
"license": "Apache-2.0",
"workspaces": [
"./packages/quicktype-core",
"./packages/quicktype-graphql-input",
- "./packages/quicktype-typescript-input"
+ "./packages/quicktype-typescript-input",
+ "./packages/quicktype-vscode"
],
"dependencies": {
- "@glideapps/ts-necessities": "^2.1.3",
+ "@glideapps/ts-necessities": "^2.2.3",
"chalk": "^4.1.2",
"collection-utils": "^1.0.1",
"command-line-args": "^5.2.1",
@@ -22,37 +23,40 @@
"cross-fetch": "^4.0.0",
"graphql": "^0.11.7",
"lodash": "^4.17.21",
- "moment": "^2.29.4",
+ "moment": "^2.30.1",
"quicktype-core": "20.0.12",
"quicktype-graphql-input": "20.0.2",
"quicktype-typescript-input": "20.0.2",
- "readable-stream": "^4.4.2",
+ "readable-stream": "^4.5.2",
"stream-json": "1.8.0",
"string-to-stream": "^3.0.1",
- "typescript": "4.9.5"
+ "typescript": "~5.8.3"
},
"bin": {
"quicktype": "dist/index.js"
},
"devDependencies": {
+ "@biomejs/biome": "^1.9.4",
"@tsconfig/node18": "^1.0.1",
"@types/command-line-args": "^5.2.0",
- "@types/command-line-usage": "^5.0.2",
+ "@types/command-line-usage": "^5.0.4",
"@types/graphql": "^0.11.7",
- "@types/lodash": "^4.14.197",
+ "@types/lodash": "^4.17.0",
"@types/semver": "^7.5.0",
- "@types/shelljs": "^0.8.12",
+ "@types/shelljs": "^0.8.15",
"@types/stream-json": "^1.7.3",
- "@types/urijs": "^1.19.19",
+ "@types/urijs": "^1.19.25",
+ "@types/wordwrap": "^1.0.3",
+ "@typescript-eslint/eslint-plugin": "^6.3.0",
+ "@typescript-eslint/parser": "^6.3.0",
"ajv": "^5.5.2",
- "deep-equal": "^2.2.2",
+ "deep-equal": "^2.2.3",
+ "esbuild": "^0.20.2",
"exit": "^0.1.2",
- "prettier": "^3.0.1",
"promise-timeout": "^1.3.0",
"semver": "^7.5.4",
"shelljs": "^0.8.5",
- "ts-node": "^10.9.1",
- "tslint": "^6.1.3",
+ "ts-node": "^10.9.2",
"watch": "^1.0.2"
},
"engines": {
@@ -61,8 +65,7 @@
},
"node_modules/@75lb/deep-merge": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz",
- "integrity": "sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==",
+ "license": "MIT",
"dependencies": {
"lodash.assignwith": "^4.2.0",
"typical": "^7.1.1"
@@ -73,16 +76,191 @@
},
"node_modules/@75lb/deep-merge/node_modules/typical": {
"version": "7.1.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz",
- "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==",
+ "license": "MIT",
"engines": {
"node": ">=12.17"
}
},
+ "node_modules/@aashutoshrathi/word-wrap": {
+ "version": "1.2.6",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@biomejs/biome": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@biomejs/biome/-/biome-1.9.4.tgz",
+ "integrity": "sha512-1rkd7G70+o9KkTn5KLmDYXihGoTaIGO9PIIN2ZB7UJxFrWw04CZHPYiMRjYsaDvVV7hP1dYNRLxSANLaBFGpog==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT OR Apache-2.0",
+ "bin": {
+ "biome": "bin/biome"
+ },
+ "engines": {
+ "node": ">=14.21.3"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/biome"
+ },
+ "optionalDependencies": {
+ "@biomejs/cli-darwin-arm64": "1.9.4",
+ "@biomejs/cli-darwin-x64": "1.9.4",
+ "@biomejs/cli-linux-arm64": "1.9.4",
+ "@biomejs/cli-linux-arm64-musl": "1.9.4",
+ "@biomejs/cli-linux-x64": "1.9.4",
+ "@biomejs/cli-linux-x64-musl": "1.9.4",
+ "@biomejs/cli-win32-arm64": "1.9.4",
+ "@biomejs/cli-win32-x64": "1.9.4"
+ }
+ },
+ "node_modules/@biomejs/cli-darwin-arm64": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-arm64/-/cli-darwin-arm64-1.9.4.tgz",
+ "integrity": "sha512-bFBsPWrNvkdKrNCYeAp+xo2HecOGPAy9WyNyB/jKnnedgzl4W4Hb9ZMzYNbf8dMCGmUdSavlYHiR01QaYR58cw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT OR Apache-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=14.21.3"
+ }
+ },
+ "node_modules/@biomejs/cli-darwin-x64": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-darwin-x64/-/cli-darwin-x64-1.9.4.tgz",
+ "integrity": "sha512-ngYBh/+bEedqkSevPVhLP4QfVPCpb+4BBe2p7Xs32dBgs7rh9nY2AIYUL6BgLw1JVXV8GlpKmb/hNiuIxfPfZg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT OR Apache-2.0",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=14.21.3"
+ }
+ },
+ "node_modules/@biomejs/cli-linux-arm64": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64/-/cli-linux-arm64-1.9.4.tgz",
+ "integrity": "sha512-fJIW0+LYujdjUgJJuwesP4EjIBl/N/TcOX3IvIHJQNsAqvV2CHIogsmA94BPG6jZATS4Hi+xv4SkBBQSt1N4/g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT OR Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.21.3"
+ }
+ },
+ "node_modules/@biomejs/cli-linux-arm64-musl": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-arm64-musl/-/cli-linux-arm64-musl-1.9.4.tgz",
+ "integrity": "sha512-v665Ct9WCRjGa8+kTr0CzApU0+XXtRgwmzIf1SeKSGAv+2scAlW6JR5PMFo6FzqqZ64Po79cKODKf3/AAmECqA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT OR Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.21.3"
+ }
+ },
+ "node_modules/@biomejs/cli-linux-x64": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64/-/cli-linux-x64-1.9.4.tgz",
+ "integrity": "sha512-lRCJv/Vi3Vlwmbd6K+oQ0KhLHMAysN8lXoCI7XeHlxaajk06u7G+UsFSO01NAs5iYuWKmVZjmiOzJ0OJmGsMwg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT OR Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.21.3"
+ }
+ },
+ "node_modules/@biomejs/cli-linux-x64-musl": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-linux-x64-musl/-/cli-linux-x64-musl-1.9.4.tgz",
+ "integrity": "sha512-gEhi/jSBhZ2m6wjV530Yy8+fNqG8PAinM3oV7CyO+6c3CEh16Eizm21uHVsyVBEB6RIM8JHIl6AGYCv6Q6Q9Tg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT OR Apache-2.0",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=14.21.3"
+ }
+ },
+ "node_modules/@biomejs/cli-win32-arm64": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-arm64/-/cli-win32-arm64-1.9.4.tgz",
+ "integrity": "sha512-tlbhLk+WXZmgwoIKwHIHEBZUwxml7bRJgk0X2sPyNR3S93cdRq6XulAZRQJ17FYGGzWne0fgrXBKpl7l4M87Hg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT OR Apache-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.21.3"
+ }
+ },
+ "node_modules/@biomejs/cli-win32-x64": {
+ "version": "1.9.4",
+ "resolved": "https://registry.npmjs.org/@biomejs/cli-win32-x64/-/cli-win32-x64-1.9.4.tgz",
+ "integrity": "sha512-8Y5wMhVIPaWe6jw2H+KlEm4wP/f7EW3810ZLmDlrEEy5KvBsb9ECEfu/kMWD484ijfQ8+nIi0giMgu9g1UAuuA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT OR Apache-2.0",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=14.21.3"
+ }
+ },
"node_modules/@cspotcode/source-map-support": {
"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==",
+ "license": "MIT",
"dependencies": {
"@jridgewell/trace-mapping": "0.3.9"
},
@@ -90,28 +268,259 @@
"node": ">=12"
}
},
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.20.2",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.10.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.1.4",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.6.0",
+ "globals": "^13.19.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/ajv": {
+ "version": "6.12.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/argparse": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/@eslint/eslintrc/node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@eslint/js": {
+ "version": "8.57.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
"node_modules/@glideapps/ts-necessities": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@glideapps/ts-necessities/-/ts-necessities-2.1.3.tgz",
- "integrity": "sha512-q9U8v/n9qbkd2zDYjuX3qtlbl+OIyI9zF+zQhZjfYOE9VMDH7tfcUSJ9p0lXoY3lxmGFne09yi4iiNeQUwV7AA=="
+ "version": "2.2.3",
+ "license": "MIT"
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.14",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^2.0.2",
+ "debug": "^4.3.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "2.0.3",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "dev": true,
+ "license": "ISC",
+ "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"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-regex": {
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/ansi-styles": {
+ "version": "6.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@isaacs/cliui/node_modules/string-width": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/strip-ansi": {
+ "version": "7.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@isaacs/cliui/node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
"node_modules/@jridgewell/resolve-uri": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "license": "MIT",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/@jridgewell/sourcemap-codec": {
"version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
+ "license": "MIT"
},
"node_modules/@jridgewell/trace-mapping": {
"version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "license": "MIT",
"dependencies": {
"@jridgewell/resolve-uri": "^3.0.3",
"@jridgewell/sourcemap-codec": "^1.4.10"
@@ -119,8 +528,7 @@
},
"node_modules/@mark.probst/typescript-json-schema": {
"version": "0.55.0",
- "resolved": "https://registry.npmjs.org/@mark.probst/typescript-json-schema/-/typescript-json-schema-0.55.0.tgz",
- "integrity": "sha512-jI48mSnRgFQxXiE/UTUCVCpX8lK3wCFKLF1Ss2aEreboKNuLQGt3e0/YFqWVHe/WENxOaqiJvwOz+L/SrN2+qQ==",
+ "license": "BSD-3-Clause",
"dependencies": {
"@types/json-schema": "^7.0.9",
"@types/node": "^16.9.2",
@@ -137,13 +545,11 @@
},
"node_modules/@mark.probst/typescript-json-schema/node_modules/@types/node": {
"version": "16.18.11",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.11.tgz",
- "integrity": "sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA=="
+ "license": "MIT"
},
"node_modules/@mark.probst/typescript-json-schema/node_modules/typescript": {
"version": "4.9.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
- "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==",
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -152,55 +558,95 @@
"node": ">=4.2.0"
}
},
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@tootallnate/once": {
+ "version": "1.1.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/@tsconfig/node10": {
"version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
+ "license": "MIT"
},
"node_modules/@tsconfig/node12": {
"version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
+ "license": "MIT"
},
"node_modules/@tsconfig/node14": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
+ "license": "MIT"
},
"node_modules/@tsconfig/node16": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
- "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ=="
+ "license": "MIT"
},
"node_modules/@tsconfig/node18": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-1.0.1.tgz",
- "integrity": "sha512-sNFeK6X2ATlhlvzyH4kKYQlfHXE2f2/wxtB9ClvYXevWpmwkUT7VaSrjIN9E76Qebz8qP5JOJJ9jD3QoD/Z9TA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/browser-or-node": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@types/browser-or-node/-/browser-or-node-1.3.0.tgz",
- "integrity": "sha512-MVetr65IR7RdJbUxVHsaPFaXAO8fi89zv1g8L/mHygh1Q7xnnK02XZLwfMh57FOpTO6gtnagoPMQ/UOFfctXRQ==",
- "dev": true
+ "version": "1.3.2",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/command-line-args": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz",
- "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/command-line-usage": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz",
- "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==",
- "dev": true
+ "version": "5.0.4",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/glob": {
"version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/minimatch": "*",
"@types/node": "*"
@@ -208,75 +654,85 @@
},
"node_modules/@types/graphql": {
"version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@types/graphql/-/graphql-0.11.8.tgz",
- "integrity": "sha512-xGWx4kx9JKlqxDrZA12gw5qi2lvxPNLxnQQcoTXVX83MuGcXcpb7TADatGyGW51GaaXQOQTbjw3x4HuL3ULBaA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/is-url": {
+ "version": "1.2.32",
+ "resolved": "https://registry.npmjs.org/@types/is-url/-/is-url-1.2.32.tgz",
+ "integrity": "sha512-46VLdbWI8Sc+hPexQ6NLNR2YpoDyDZIpASHkJQ2Yr+Kf9Giw6LdCTkwOdsnHKPQeh7xTjTmSnxbE8qpxYuCiHA==",
"dev": true
},
- "node_modules/@types/js-base64": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@types/js-base64/-/js-base64-3.3.1.tgz",
- "integrity": "sha512-Zw33oQNAvDdAN9b0IE5stH0y2MylYvtU7VVTKEJPxhyM2q57CVaNJhtJW258ah24NRtaiA23tptUmVn3dmTKpw==",
- "deprecated": "This is a stub types definition. js-base64 provides its own type definitions, so you do not need this installed.",
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
"dev": true,
- "dependencies": {
- "js-base64": "*"
- }
+ "license": "MIT"
},
"node_modules/@types/json-schema": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
- "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
+ "version": "7.0.15",
+ "license": "MIT"
},
"node_modules/@types/lodash": {
- "version": "4.14.197",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.197.tgz",
- "integrity": "sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==",
+ "version": "4.17.0",
+ "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz",
+ "integrity": "sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==",
"dev": true
},
"node_modules/@types/minimatch": {
"version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
- "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/mocha": {
+ "version": "10.0.6",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/node": {
- "version": "18.14.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.0.tgz",
- "integrity": "sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A=="
+ "version": "22.14.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.14.1.tgz",
+ "integrity": "sha512-u0HuPQwe/dHrItgHHpmw3N2fYCR6x4ivMNbPHRkBVP4CvN+kiRrKHWk3i8tXiO/joPwXLMYvF9TTF0eqgHIuOw==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.21.0"
+ }
+ },
+ "node_modules/@types/node-persist": {
+ "version": "3.1.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
},
"node_modules/@types/pako": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.0.tgz",
- "integrity": "sha1-6q6DZNG391LiY7w/1o3+yY5hNsU=",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/pluralize": {
"version": "0.0.30",
- "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.30.tgz",
- "integrity": "sha512-kVww6xZrW/db5BR9OqiT71J9huRdQ+z/r+LbDuT7/EK50mCmj5FoaIARnVv0rvjUS/YpDox0cDU9lpQT011VBA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/readable-stream": {
- "version": "2.3.15",
- "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz",
- "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==",
+ "version": "4.0.10",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"safe-buffer": "~5.1.1"
}
},
"node_modules/@types/semver": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
- "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
- "dev": true
+ "version": "7.5.8",
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/shelljs": {
- "version": "0.8.12",
- "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.12.tgz",
- "integrity": "sha512-ZA8U81/gldY+rR5zl/7HSHrG2KDfEb3lzG6uCUDhW1DTQE9yC/VBQ45fXnXq8f3CgInfhZmjtdu/WOUlrXRQUg==",
+ "version": "0.8.15",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/glob": "~7.2.0",
"@types/node": "*"
@@ -284,18 +740,16 @@
},
"node_modules/@types/stream-chain": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/stream-chain/-/stream-chain-2.0.1.tgz",
- "integrity": "sha512-D+Id9XpcBpampptkegH7WMsEk6fUdf9LlCIX7UhLydILsqDin4L0QT7ryJR0oycwC7OqohIzdfcMHVZ34ezNGg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
"node_modules/@types/stream-json": {
"version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@types/stream-json/-/stream-json-1.7.3.tgz",
- "integrity": "sha512-Jqsyq5VPOTWorvEmzWhEWH5tJnHA+bB8vt/Zzb11vSDj8esfSHDMj2rbVjP0mfJQzl3YBJSXBBq08iiyaBK3KA==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*",
"@types/stream-chain": "*"
@@ -303,443 +757,520 @@
},
"node_modules/@types/unicode-properties": {
"version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@types/unicode-properties/-/unicode-properties-1.3.0.tgz",
- "integrity": "sha512-kDVlxpdkCfgvzfXcglkr7j4OSMjCEEo/Jloj4tFuldYZpQ9Uypy7FGXPhNstoj4eGvhddwuu5n0EfI+XdWVoVA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/urijs": {
- "version": "1.19.19",
- "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.19.tgz",
- "integrity": "sha512-FDJNkyhmKLw7uEvTxx5tSXfPeQpO0iy73Ry+PmYZJvQy0QIWX8a7kJ4kLWRf+EbTPJEPDSgPXHaM7pzr5lmvCg=="
+ "version": "1.19.25",
+ "license": "MIT"
+ },
+ "node_modules/@types/vscode": {
+ "version": "1.88.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/wordwrap": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@types/wordwrap/-/wordwrap-1.0.3.tgz",
+ "integrity": "sha512-jx39cOYWJxZxVOZeNHvLVoDLRUFcYtIJaurC6C0qzCovIB3GPDbMDbYvoWi9D1B2PtIE16rElQOFR4Y+8QbUgw==",
+ "dev": true
},
- "node_modules/@types/yaml": {
- "version": "1.9.7",
- "resolved": "https://registry.npmjs.org/@types/yaml/-/yaml-1.9.7.tgz",
- "integrity": "sha512-8WMXRDD1D+wCohjfslHDgICd2JtMATZU8CkhH8LVJqcJs6dyYj5TGptzP8wApbmEullGBSsCEzzap73DQ1HJaA==",
- "deprecated": "This is a stub types definition. yaml provides its own type definitions, so you do not need this installed.",
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz",
+ "integrity": "sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==",
"dev": true,
"dependencies": {
- "yaml": "*"
+ "@eslint-community/regexpp": "^4.5.1",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/type-utils": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.4",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha",
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
+ "node_modules/@typescript-eslint/parser": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz",
+ "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==",
+ "dev": true,
"dependencies": {
- "event-target-shim": "^5.0.0"
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4"
},
"engines": {
- "node": ">=6.5"
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz",
+ "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0"
+ },
"engines": {
- "node": ">=0.4.0"
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/ajv": {
- "version": "5.5.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
- "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz",
+ "integrity": "sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==",
"dev": true,
"dependencies": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.3.0"
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "@typescript-eslint/utils": "6.21.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.0.1"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "node_modules/@typescript-eslint/types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz",
+ "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==",
+ "dev": true,
"engines": {
- "node": ">=8"
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/ansi-styles": {
- "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==",
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz",
+ "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==",
"dev": true,
"dependencies": {
- "color-convert": "^1.9.0"
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/visitor-keys": "6.21.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "9.0.3",
+ "semver": "^7.5.4",
+ "ts-api-utils": "^1.0.1"
},
"engines": {
- "node": ">=4"
+ "node": "^16.0.0 || >=18.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
}
},
- "node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
- "sprintf-js": "~1.0.2"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
"engines": {
- "node": ">=6"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "node_modules/@typescript-eslint/utils": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz",
+ "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==",
"dev": true,
"dependencies": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.12",
+ "@types/semver": "^7.5.0",
+ "@typescript-eslint/scope-manager": "6.21.0",
+ "@typescript-eslint/types": "6.21.0",
+ "@typescript-eslint/typescript-estree": "6.21.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^7.0.0 || ^8.0.0"
}
},
- "node_modules/available-typed-arrays": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz",
+ "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==",
"dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "6.21.0",
+ "eslint-visitor-keys": "^3.4.1"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": "^16.0.0 || >=18.0.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
}
},
- "node_modules/balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "node_modules/base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
+ "node_modules/@ungap/structured-clone": {
+ "version": "1.2.0",
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "node_modules/@vscode/test-cli": {
+ "version": "0.0.6",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "@types/mocha": "^10.0.2",
+ "c8": "^9.1.0",
+ "chokidar": "^3.5.3",
+ "enhanced-resolve": "^5.15.0",
+ "glob": "^10.3.10",
+ "minimatch": "^9.0.3",
+ "mocha": "^10.2.0",
+ "supports-color": "^9.4.0",
+ "yargs": "^17.7.2"
+ },
+ "bin": {
+ "vscode-test": "out/bin.mjs"
}
},
- "node_modules/browser-or-node": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.2.1.tgz",
- "integrity": "sha512-sVIA0cysIED0nbmNOm7sZzKfgN1rpFmrqvLZaFWspaBAftfQcezlC81G6j6U2RJf4Lh66zFxrCeOsvkUXIcPWg=="
- },
- "node_modules/buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
+ "node_modules/@vscode/test-cli/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
+ "balanced-match": "^1.0.0"
}
},
- "node_modules/builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "node_modules/@vscode/test-cli/node_modules/glob": {
+ "version": "10.3.12",
"dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.6",
+ "minimatch": "^9.0.1",
+ "minipass": "^7.0.4",
+ "path-scurry": "^1.10.2"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "node_modules/@vscode/test-cli/node_modules/minimatch": {
+ "version": "9.0.4",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/chalk": {
- "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"
- },
+ "node_modules/@vscode/test-cli/node_modules/supports-color": {
+ "version": "9.4.0",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=10"
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
- "node_modules/chalk-template": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz",
- "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==",
+ "node_modules/@vscode/test-cli/node_modules/yargs": {
+ "version": "17.7.2",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "chalk": "^4.1.2"
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
},
"engines": {
"node": ">=12"
+ }
+ },
+ "node_modules/@vscode/test-electron": {
+ "version": "2.3.9",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "http-proxy-agent": "^4.0.1",
+ "https-proxy-agent": "^5.0.0",
+ "jszip": "^3.10.1",
+ "semver": "^7.5.2"
},
- "funding": {
- "url": "https://github.com/chalk/chalk-template?sponsor=1"
+ "engines": {
+ "node": ">=16"
}
},
- "node_modules/chalk/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/@vscode/vsce": {
+ "version": "2.25.0",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "azure-devops-node-api": "^12.5.0",
+ "chalk": "^2.4.2",
+ "cheerio": "^1.0.0-rc.9",
+ "cockatiel": "^3.1.2",
+ "commander": "^6.2.1",
+ "form-data": "^4.0.0",
+ "glob": "^7.0.6",
+ "hosted-git-info": "^4.0.2",
+ "jsonc-parser": "^3.2.0",
+ "leven": "^3.1.0",
+ "markdown-it": "^12.3.2",
+ "mime": "^1.3.4",
+ "minimatch": "^3.0.3",
+ "parse-semver": "^1.1.1",
+ "read": "^1.0.7",
+ "semver": "^7.5.2",
+ "tmp": "^0.2.1",
+ "typed-rest-client": "^1.8.4",
+ "url-join": "^4.0.1",
+ "xml2js": "^0.5.0",
+ "yauzl": "^2.3.1",
+ "yazl": "^2.2.2"
+ },
+ "bin": {
+ "vsce": "vsce"
},
"engines": {
- "node": ">=8"
+ "node": ">= 16"
},
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "optionalDependencies": {
+ "keytar": "^7.7.0"
}
},
- "node_modules/chalk/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/@vscode/vsce/node_modules/chalk": {
+ "version": "2.4.2",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "color-name": "~1.1.4"
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
},
"engines": {
- "node": ">=7.0.0"
+ "node": ">=4"
}
},
- "node_modules/chalk/node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "node_modules/@vscode/vsce/node_modules/commander": {
+ "version": "6.2.1",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=8"
+ "node": ">= 6"
}
},
- "node_modules/chalk/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "node_modules/abort-controller": {
+ "version": "3.0.0",
+ "license": "MIT",
"dependencies": {
- "has-flag": "^4.0.0"
+ "event-target-shim": "^5.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=6.5"
}
},
- "node_modules/cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
+ "node_modules/acorn": {
+ "version": "8.11.3",
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
},
"engines": {
- "node": ">=12"
+ "node": ">=0.4.0"
}
},
- "node_modules/co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
"dev": true,
- "engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/collection-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/collection-utils/-/collection-utils-1.0.1.tgz",
- "integrity": "sha512-LA2YTIlR7biSpXkKYwwuzGjwL5rjWEZVOSnvdUc7gObvWe4WkjxOpfrdhoP7Hs09YWDVfg0Mal9BpAqLfVEzQg=="
+ "node_modules/acorn-walk": {
+ "version": "8.2.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "node_modules/agent-base": {
+ "version": "6.0.2",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/color-convert/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/command-line-args": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
- "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
- "dependencies": {
- "array-back": "^3.1.0",
- "find-replace": "^3.0.0",
- "lodash.camelcase": "^4.3.0",
- "typical": "^4.0.0"
+ "debug": "4"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">= 6.0.0"
}
},
- "node_modules/command-line-usage": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz",
- "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==",
+ "node_modules/ajv": {
+ "version": "5.5.2",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "array-back": "^6.2.2",
- "chalk-template": "^0.4.0",
- "table-layout": "^3.0.0",
- "typical": "^7.1.1"
- },
- "engines": {
- "node": ">=12.20.0"
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
}
},
- "node_modules/command-line-usage/node_modules/array-back": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
- "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==",
+ "node_modules/ansi-colors": {
+ "version": "4.1.1",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=12.17"
+ "node": ">=6"
}
},
- "node_modules/command-line-usage/node_modules/typical": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz",
- "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==",
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "license": "MIT",
"engines": {
- "node": ">=12.17"
+ "node": ">=8"
}
},
- "node_modules/commander": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
- "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
- "dev": true
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
- },
- "node_modules/cross-fetch": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
- "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "node-fetch": "^2.6.12"
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/deep-equal": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz",
- "integrity": "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==",
+ "node_modules/anymatch": {
+ "version": "3.1.3",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "array-buffer-byte-length": "^1.0.0",
- "call-bind": "^1.0.2",
- "es-get-iterator": "^1.1.3",
- "get-intrinsic": "^1.2.1",
- "is-arguments": "^1.1.1",
- "is-array-buffer": "^3.0.2",
- "is-date-object": "^1.0.5",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "isarray": "^2.0.5",
- "object-is": "^1.1.5",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.0",
- "side-channel": "^1.0.4",
- "which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.1",
- "which-typed-array": "^1.1.9"
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": {
+ "node": ">= 8"
}
},
- "node_modules/deep-equal/node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "license": "MIT"
},
- "node_modules/define-properties": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
- "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "node_modules/array-back": {
+ "version": "3.1.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/array-buffer-byte-length": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz",
+ "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==",
"dev": true,
"dependencies": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
+ "call-bind": "^1.0.5",
+ "is-array-buffer": "^3.0.4"
},
"engines": {
"node": ">= 0.4"
@@ -748,771 +1279,717 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
"engines": {
- "node": ">=0.3.1"
+ "node": ">=8"
}
},
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "dependencies": {
- "iconv-lite": "^0.6.2"
- }
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/es-get-iterator": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
- "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.7",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
- "has-symbols": "^1.0.3",
- "is-arguments": "^1.1.1",
- "is-map": "^2.0.2",
- "is-set": "^2.0.2",
- "is-string": "^1.0.7",
- "isarray": "^2.0.5",
- "stop-iteration-iterator": "^1.0.0"
+ "possible-typed-array-names": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/es-get-iterator/node_modules/isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "node_modules/azure-devops-node-api": {
+ "version": "12.5.0",
"dev": true,
- "engines": {
- "node": ">=0.8.0"
+ "license": "MIT",
+ "dependencies": {
+ "tunnel": "0.0.6",
+ "typed-rest-client": "^1.8.4"
}
},
- "node_modules/esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
+ "node_modules/balanced-match": {
+ "version": "1.0.0",
+ "license": "MIT"
},
- "node_modules/event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=6"
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
- "engines": {
- "node": ">=0.8.x"
+ "node_modules/bl": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
}
},
- "node_modules/exec-sh": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz",
- "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==",
+ "node_modules/bl/node_modules/buffer": {
+ "version": "5.7.1",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "merge": "^1.1.3"
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.1.13"
}
},
- "node_modules/exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
+ "node_modules/bl/node_modules/readable-stream": {
+ "version": "3.6.2",
"dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
"engines": {
- "node": ">= 0.8.0"
+ "node": ">= 6"
}
},
- "node_modules/fast-deep-equal": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
- "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
- "dev": true
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/fast-json-stable-stringify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
- "dev": true
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
},
- "node_modules/find-replace": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
- "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "array-back": "^3.0.1"
+ "fill-range": "^7.0.1"
},
"engines": {
- "node": ">=4.0.0"
+ "node": ">=8"
}
},
- "node_modules/for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "node_modules/brfs": {
+ "version": "1.6.1",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-callable": "^1.1.3"
+ "quote-stream": "^1.0.1",
+ "resolve": "^1.1.5",
+ "static-module": "^2.2.0",
+ "through2": "^2.0.0"
+ },
+ "bin": {
+ "brfs": "bin/cmd.js"
}
},
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "node_modules/browser-or-node": {
+ "version": "3.0.0",
+ "license": "MIT"
},
- "node_modules/functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "node_modules/browser-stdout": {
+ "version": "1.3.1",
"dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "license": "ISC"
},
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
- "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
- "dev": true,
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
"dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
}
},
- "node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
+ "node_modules/buffer-crc32": {
+ "version": "0.2.13",
+ "dev": true,
+ "license": "MIT",
"engines": {
"node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "node_modules/buffer-equal": {
+ "version": "0.0.1",
"dev": true,
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
}
},
- "node_modules/graphql": {
- "version": "0.11.7",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.11.7.tgz",
- "integrity": "sha512-x7uDjyz8Jx+QPbpCFCMQ8lltnQa4p4vSYHx6ADe8rVYRTdsyhCJbvSty5DAsLVmU6cGakl+r8HQYolKHxk/tiw==",
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/c8": {
+ "version": "9.1.0",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "iterall": "1.1.3"
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@istanbuljs/schema": "^0.1.3",
+ "find-up": "^5.0.0",
+ "foreground-child": "^3.1.1",
+ "istanbul-lib-coverage": "^3.2.0",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-reports": "^3.1.6",
+ "test-exclude": "^6.0.0",
+ "v8-to-istanbul": "^9.0.0",
+ "yargs": "^17.7.2",
+ "yargs-parser": "^21.1.1"
+ },
+ "bin": {
+ "c8": "bin/c8.js"
+ },
+ "engines": {
+ "node": ">=14.14.0"
}
},
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "node_modules/c8/node_modules/yargs": {
+ "version": "17.7.2",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "function-bind": "^1.1.1"
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
},
"engines": {
- "node": ">= 0.4.0"
+ "node": ">=12"
}
},
- "node_modules/has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
+ "node_modules/call-bind": {
+ "version": "1.0.7",
"dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "node_modules/callsites": {
+ "version": "3.1.0",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4"
+ "node": ">=6"
}
},
- "node_modules/has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "node_modules/camelcase": {
+ "version": "6.3.0",
"dev": true,
- "dependencies": {
- "get-intrinsic": "^1.1.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "dev": true,
+ "node_modules/chalk": {
+ "version": "4.1.2",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/chalk?sponsor=1"
}
},
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true,
+ "node_modules/chalk-template": {
+ "version": "0.4.0",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.2"
+ },
"engines": {
- "node": ">= 0.4"
+ "node": ">=12"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/chalk-template?sponsor=1"
}
},
- "node_modules/has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
- "dev": true,
+ "node_modules/chalk/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "license": "MIT",
"dependencies": {
- "has-symbols": "^1.0.2"
+ "color-convert": "^2.0.1"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "node_modules/chalk/node_modules/color-convert": {
+ "version": "2.0.1",
+ "license": "MIT",
"dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
+ "color-name": "~1.1.4"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=7.0.0"
}
},
- "node_modules/ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/inflight": {
- "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"
+ "node_modules/chalk/node_modules/has-flag": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "node_modules/inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
- },
- "node_modules/internal-slot": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
- "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
- "dev": true,
+ "node_modules/chalk/node_modules/supports-color": {
+ "version": "7.2.0",
+ "license": "MIT",
"dependencies": {
- "get-intrinsic": "^1.1.3",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
+ "has-flag": "^4.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">=8"
}
},
- "node_modules/interpret": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
- "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
- "dev": true
- },
- "node_modules/is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "node_modules/cheerio": {
+ "version": "1.0.0-rc.12",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
},
"engines": {
- "node": ">= 0.4"
+ "node": ">= 6"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
}
},
- "node_modules/is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/fb55"
}
},
- "node_modules/is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "node_modules/chokidar": {
+ "version": "3.6.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-bigints": "^1.0.1"
+ "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"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
}
},
- "node_modules/is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "node_modules/chownr": {
+ "version": "1.1.4",
"dev": true,
+ "license": "ISC",
+ "optional": true
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "license": "ISC",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=12"
}
},
- "node_modules/is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+ "node_modules/co": {
+ "version": "4.6.0",
"dev": true,
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
}
},
- "node_modules/is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "node_modules/cockatiel": {
+ "version": "3.1.2",
"dev": true,
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=16"
}
},
- "node_modules/is-fullwidth-code-point": {
- "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==",
- "engines": {
- "node": ">=8"
- }
+ "node_modules/collection-utils": {
+ "version": "1.0.1",
+ "license": "Apache-2.0"
},
- "node_modules/is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "node_modules/color-convert": {
+ "version": "1.9.3",
"dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "1.1.3"
}
},
- "node_modules/is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "node_modules/color-convert/node_modules/color-name": {
+ "version": "1.1.3",
"dev": true,
- "dependencies": {
- "has-tostringtag": "^1.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
+ "license": "MIT"
},
- "node_modules/is-regex": {
+ "node_modules/color-name": {
"version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "license": "MIT"
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "delayed-stream": "~1.0.0"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-set": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
- "dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">= 0.8"
}
},
- "node_modules/is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
- "dev": true,
+ "node_modules/command-line-args": {
+ "version": "5.2.1",
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2"
+ "array-back": "^3.1.0",
+ "find-replace": "^3.0.0",
+ "lodash.camelcase": "^4.3.0",
+ "typical": "^4.0.0"
},
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
"engines": {
- "node": ">=0.10.0"
+ "node": ">=4.0.0"
}
},
- "node_modules/is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
- "dev": true,
+ "node_modules/command-line-usage": {
+ "version": "7.0.1",
+ "license": "MIT",
"dependencies": {
- "has-tostringtag": "^1.0.0"
+ "array-back": "^6.2.2",
+ "chalk-template": "^0.4.0",
+ "table-layout": "^3.0.0",
+ "typical": "^7.1.1"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=12.20.0"
}
},
- "node_modules/is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
- "dev": true,
- "dependencies": {
- "has-symbols": "^1.0.2"
- },
+ "node_modules/command-line-usage/node_modules/array-back": {
+ "version": "6.2.2",
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=12.17"
}
},
- "node_modules/is-typed-array": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
- "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
- "dev": true,
- "dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
- },
+ "node_modules/command-line-usage/node_modules/typical": {
+ "version": "7.1.1",
+ "license": "MIT",
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": ">=12.17"
}
},
- "node_modules/is-url": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
- "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "license": "MIT"
},
- "node_modules/is-weakmap": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
- "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "node_modules/concat-stream": {
+ "version": "1.6.2",
"dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "engines": [
+ "node >= 0.8"
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.2.2",
+ "typedarray": "^0.0.6"
}
},
- "node_modules/is-weakset": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
- "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "node_modules/concat-stream/node_modules/readable-stream": {
+ "version": "2.3.8",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/iterall": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz",
- "integrity": "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ=="
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "license": "MIT"
},
- "node_modules/js-base64": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz",
- "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw=="
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "license": "MIT"
},
- "node_modules/js-yaml": {
- "version": "3.13.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
- "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
- "dev": true,
+ "node_modules/cross-fetch": {
+ "version": "4.0.0",
+ "license": "MIT",
"dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
+ "node-fetch": "^2.6.12"
}
},
- "node_modules/js-yaml/node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "node_modules/cross-spawn": {
+ "version": "7.0.3",
"dev": true,
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
},
"engines": {
- "node": ">=4"
+ "node": ">= 8"
}
},
- "node_modules/json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
- "dev": true
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "node_modules/lodash.assignwith": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz",
- "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g=="
- },
- "node_modules/lodash.camelcase": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
- "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
- },
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "node_modules/css-select": {
+ "version": "5.1.0",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "yallist": "^4.0.0"
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
},
- "engines": {
- "node": ">=10"
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
}
},
- "node_modules/make-error": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
- "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g=="
- },
- "node_modules/merge": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz",
- "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==",
- "dev": true
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
},
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "brace-expansion": "^1.1.7"
+ "ms": "2.1.2"
},
"engines": {
- "node": "*"
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
}
},
- "node_modules/minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
+ "node_modules/decamelize": {
+ "version": "4.0.0",
"dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
"dev": true,
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "minimist": "^1.2.6"
+ "mimic-response": "^3.1.0"
},
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
"engines": {
- "node": "*"
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/node-fetch": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz",
- "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==",
+ "node_modules/deep-equal": {
+ "version": "2.2.3",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "whatwg-url": "^5.0.0"
+ "array-buffer-byte-length": "^1.0.0",
+ "call-bind": "^1.0.5",
+ "es-get-iterator": "^1.1.3",
+ "get-intrinsic": "^1.2.2",
+ "is-arguments": "^1.1.1",
+ "is-array-buffer": "^3.0.2",
+ "is-date-object": "^1.0.5",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "isarray": "^2.0.5",
+ "object-is": "^1.1.5",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.4",
+ "regexp.prototype.flags": "^1.5.1",
+ "side-channel": "^1.0.4",
+ "which-boxed-primitive": "^1.0.2",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.13"
},
"engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
+ "node": ">= 0.4"
},
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
+ "node_modules/deep-equal/node_modules/isarray": {
+ "version": "2.0.5",
"dev": true,
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "license": "MIT"
+ },
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=4.0.0"
}
},
- "node_modules/object-is": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
- "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "node_modules/deep-is": {
+ "version": "0.1.4",
"dev": true,
+ "license": "MIT"
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
},
"engines": {
"node": ">= 0.4"
@@ -1521,24 +1998,13 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
+ "node_modules/define-properties": {
+ "version": "1.2.1",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
+ "define-data-property": "^1.0.1",
+ "has-property-descriptors": "^1.0.0",
"object-keys": "^1.1.1"
},
"engines": {
@@ -1548,2818 +2014,4289 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dependencies": {
- "wrappy": "1"
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
}
},
- "node_modules/pako": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
- "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg=="
- },
- "node_modules/path-equal": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz",
- "integrity": "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g=="
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "node_modules/detect-libc": {
+ "version": "2.0.3",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
"engines": {
- "node": ">=0.10.0"
+ "node": ">=8"
}
},
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/pluralize": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
- "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
+ "node_modules/diff": {
+ "version": "4.0.2",
+ "license": "BSD-3-Clause",
"engines": {
- "node": ">=4"
+ "node": ">=0.3.1"
}
},
- "node_modules/prettier": {
+ "node_modules/dir-glob": {
"version": "3.0.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.1.tgz",
- "integrity": "sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
"dev": true,
- "bin": {
- "prettier": "bin/prettier.cjs"
+ "dependencies": {
+ "path-type": "^4.0.0"
},
"engines": {
- "node": ">=14"
- },
- "funding": {
- "url": "https://github.com/prettier/prettier?sponsor=1"
+ "node": ">=8"
}
},
- "node_modules/process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
+ "node_modules/doctrine": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "esutils": "^2.0.2"
+ },
"engines": {
- "node": ">= 0.6.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "node_modules/promise-timeout": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/promise-timeout/-/promise-timeout-1.3.0.tgz",
- "integrity": "sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg==",
- "dev": true
- },
- "node_modules/quicktype-core": {
- "resolved": "packages/quicktype-core",
- "link": true
- },
- "node_modules/quicktype-graphql-input": {
- "resolved": "packages/quicktype-graphql-input",
- "link": true
- },
- "node_modules/quicktype-typescript-input": {
- "resolved": "packages/quicktype-typescript-input",
- "link": true
- },
- "node_modules/readable-stream": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz",
- "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==",
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "abort-controller": "^3.0.0",
- "buffer": "^6.0.3",
- "events": "^3.3.0",
- "process": "^0.11.10",
- "string_decoder": "^1.3.0"
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
},
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
}
},
- "node_modules/readable-stream/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "dev": true,
"funding": [
{
"type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
+ "url": "https://github.com/sponsors/fb55"
}
- ]
- },
- "node_modules/readable-stream/node_modules/string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "dependencies": {
- "safe-buffer": "~5.2.0"
- }
+ ],
+ "license": "BSD-2-Clause"
},
- "node_modules/rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "node_modules/domhandler": {
+ "version": "5.0.3",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "resolve": "^1.1.6"
+ "domelementtype": "^2.3.0"
},
"engines": {
- "node": ">= 0.10"
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
}
},
- "node_modules/regexp.prototype.flags": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
- "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "node_modules/domutils": {
+ "version": "3.1.0",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "functions-have-names": "^1.2.3"
- },
- "engines": {
- "node": ">= 0.4"
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/fb55/domutils?sponsor=1"
}
},
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "engines": {
- "node": ">=0.10.0"
+ "node_modules/duplexer2": {
+ "version": "0.1.4",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "readable-stream": "^2.0.2"
}
},
- "node_modules/resolve": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
- "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
+ "node_modules/duplexer2/node_modules/readable-stream": {
+ "version": "2.3.8",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "path-parse": "^1.0.5"
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "node_modules/safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/safe-stable-stringify": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz",
- "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==",
- "engines": {
- "node": ">=10"
- }
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "license": "MIT"
},
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "node_modules/encoding": {
+ "version": "0.1.13",
+ "license": "MIT",
+ "dependencies": {
+ "iconv-lite": "^0.6.2"
+ }
},
- "node_modules/semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "node_modules/end-of-stream": {
+ "version": "1.4.4",
"dev": true,
+ "license": "MIT",
+ "optional": true,
"dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
+ "once": "^1.4.0"
}
},
- "node_modules/shelljs": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
- "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
+ "node_modules/enhanced-resolve": {
+ "version": "5.16.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "glob": "^7.0.0",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
- },
- "bin": {
- "shjs": "bin/shjs"
+ "graceful-fs": "^4.2.4",
+ "tapable": "^2.2.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=10.13.0"
}
},
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "node_modules/entities": {
+ "version": "4.5.0",
"dev": true,
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
},
"funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- },
- "node_modules/stop-iteration-iterator": {
+ "node_modules/es-define-property": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
- "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "internal-slot": "^1.0.4"
+ "get-intrinsic": "^1.2.4"
},
"engines": {
"node": ">= 0.4"
}
},
- "node_modules/stream-chain": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz",
- "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA=="
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "node_modules/stream-json": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.8.0.tgz",
- "integrity": "sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw==",
+ "node_modules/es-get-iterator": {
+ "version": "1.1.3",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "stream-chain": "^2.2.5"
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.3",
+ "has-symbols": "^1.0.3",
+ "is-arguments": "^1.1.1",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.7",
+ "isarray": "^2.0.5",
+ "stop-iteration-iterator": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/stream-read-all": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz",
- "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A==",
+ "node_modules/es-get-iterator/node_modules/isarray": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/esbuild": {
+ "version": "0.20.2",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
"engines": {
- "node": ">=10"
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.20.2",
+ "@esbuild/android-arm": "0.20.2",
+ "@esbuild/android-arm64": "0.20.2",
+ "@esbuild/android-x64": "0.20.2",
+ "@esbuild/darwin-arm64": "0.20.2",
+ "@esbuild/darwin-x64": "0.20.2",
+ "@esbuild/freebsd-arm64": "0.20.2",
+ "@esbuild/freebsd-x64": "0.20.2",
+ "@esbuild/linux-arm": "0.20.2",
+ "@esbuild/linux-arm64": "0.20.2",
+ "@esbuild/linux-ia32": "0.20.2",
+ "@esbuild/linux-loong64": "0.20.2",
+ "@esbuild/linux-mips64el": "0.20.2",
+ "@esbuild/linux-ppc64": "0.20.2",
+ "@esbuild/linux-riscv64": "0.20.2",
+ "@esbuild/linux-s390x": "0.20.2",
+ "@esbuild/linux-x64": "0.20.2",
+ "@esbuild/netbsd-x64": "0.20.2",
+ "@esbuild/openbsd-x64": "0.20.2",
+ "@esbuild/sunos-x64": "0.20.2",
+ "@esbuild/win32-arm64": "0.20.2",
+ "@esbuild/win32-ia32": "0.20.2",
+ "@esbuild/win32-x64": "0.20.2"
}
},
- "node_modules/string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
+ "node_modules/escalade": {
+ "version": "3.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
}
},
- "node_modules/string-to-stream": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-3.0.1.tgz",
- "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==",
- "dependencies": {
- "readable-stream": "^3.4.0"
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.0"
}
},
- "node_modules/string-to-stream/node_modules/readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
+ "node_modules/escodegen": {
+ "version": "1.9.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
+ "esprima": "^3.1.3",
+ "estraverse": "^4.2.0",
+ "esutils": "^2.0.2",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
},
"engines": {
- "node": ">= 6"
+ "node": ">=4.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
}
},
- "node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
+ "node_modules/escodegen/node_modules/estraverse": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
"engines": {
- "node": ">=8"
+ "node": ">=4.0"
}
},
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "node_modules/escodegen/node_modules/levn": {
+ "version": "0.3.0",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-regex": "^5.0.1"
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2"
},
"engines": {
- "node": ">=8"
+ "node": ">= 0.8.0"
}
},
- "node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "node_modules/escodegen/node_modules/optionator": {
+ "version": "0.8.3",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "has-flag": "^3.0.0"
+ "deep-is": "~0.1.3",
+ "fast-levenshtein": "~2.0.6",
+ "levn": "~0.3.0",
+ "prelude-ls": "~1.1.2",
+ "type-check": "~0.3.2",
+ "word-wrap": "~1.2.3"
},
"engines": {
- "node": ">=4"
+ "node": ">= 0.8.0"
}
},
- "node_modules/table-layout": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz",
- "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==",
- "dependencies": {
- "@75lb/deep-merge": "^1.1.1",
- "array-back": "^6.2.2",
- "command-line-args": "^5.2.1",
- "command-line-usage": "^7.0.0",
- "stream-read-all": "^3.0.1",
- "typical": "^7.1.1",
- "wordwrapjs": "^5.1.0"
- },
- "bin": {
- "table-layout": "bin/cli.js"
- },
- "engines": {
- "node": ">=12.17"
- }
- },
- "node_modules/table-layout/node_modules/array-back": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
- "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==",
+ "node_modules/escodegen/node_modules/prelude-ls": {
+ "version": "1.1.2",
+ "dev": true,
"engines": {
- "node": ">=12.17"
+ "node": ">= 0.8.0"
}
},
- "node_modules/table-layout/node_modules/typical": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz",
- "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA==",
+ "node_modules/escodegen/node_modules/type-check": {
+ "version": "0.3.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "~1.1.2"
+ },
"engines": {
- "node": ">=12.17"
+ "node": ">= 0.8.0"
}
},
- "node_modules/tiny-inflate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.2.tgz",
- "integrity": "sha1-k9nez/yIBb1X6uQxDwt0Xptvs6c="
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "node_modules/ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
+ "node_modules/eslint": {
+ "version": "8.57.0",
+ "dev": true,
+ "license": "MIT",
"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"
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.6.1",
+ "@eslint/eslintrc": "^2.1.4",
+ "@eslint/js": "8.57.0",
+ "@humanwhocodes/config-array": "^0.11.14",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "@ungap/structured-clone": "^1.2.0",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.2",
+ "debug": "^4.3.2",
+ "doctrine": "^3.0.0",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^7.2.2",
+ "eslint-visitor-keys": "^3.4.3",
+ "espree": "^9.6.1",
+ "esquery": "^1.4.2",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^6.0.1",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "globals": "^13.19.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-yaml": "^4.1.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "levn": "^0.4.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3",
+ "strip-ansi": "^6.0.1",
+ "text-table": "^0.2.0"
},
"bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
+ "eslint": "bin/eslint.js"
},
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
},
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/ts-node/node_modules/acorn": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
- "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==",
- "bin": {
- "acorn": "bin/acorn"
+ "node_modules/eslint-scope": {
+ "version": "7.2.2",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": ">=0.4.0"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
},
- "node_modules/tslint": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
- "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
- "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.",
+ "node_modules/eslint/node_modules/ajv": {
+ "version": "6.12.6",
"dev": true,
+ "license": "MIT",
"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"
- },
- "bin": {
- "tslint": "bin/tslint"
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
},
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/eslint/node_modules/argparse": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/eslint/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
"engines": {
- "node": ">=4.8.0"
+ "node": ">=10"
},
- "peerDependencies": {
- "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"
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/tslint/node_modules/@babel/code-frame": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
- "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
+ "node_modules/eslint/node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/eslint/node_modules/glob-parent": {
+ "version": "6.0.2",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "@babel/highlight": "^7.0.0"
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
}
},
- "node_modules/tslint/node_modules/@babel/highlight": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
- "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
+ "node_modules/eslint/node_modules/js-yaml": {
+ "version": "4.1.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "chalk": "^2.0.0",
- "esutils": "^2.0.2",
- "js-tokens": "^4.0.0"
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "node_modules/tslint/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "node_modules/eslint/node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/espree": {
+ "version": "9.6.1",
"dev": true,
+ "license": "BSD-2-Clause",
"dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
},
"engines": {
- "node": ">=4"
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
}
},
- "node_modules/tslint/node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/tslint/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "node_modules/esprima": {
+ "version": "3.1.3",
"dev": true,
+ "license": "BSD-2-Clause",
"bin": {
- "semver": "bin/semver"
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "node_modules/tsutils": {
- "version": "2.29.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
- "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+ "node_modules/esquery": {
+ "version": "1.5.0",
"dev": true,
+ "license": "BSD-3-Clause",
"dependencies": {
- "tslib": "^1.8.1"
+ "estraverse": "^5.1.0"
},
- "peerDependencies": {
- "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"
+ "engines": {
+ "node": ">=0.10"
}
},
- "node_modules/typescript": {
- "version": "4.9.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
- "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
- "bin": {
- "tsc": "bin/tsc",
- "tsserver": "bin/tsserver"
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
},
"engines": {
- "node": ">=4.2.0"
+ "node": ">=4.0"
}
},
- "node_modules/typical": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
- "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
"engines": {
- "node": ">=8"
+ "node": ">=4.0"
}
},
- "node_modules/unicode-properties": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz",
- "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==",
- "dependencies": {
- "base64-js": "^1.3.0",
- "unicode-trie": "^2.0.0"
+ "node_modules/esutils": {
+ "version": "2.0.2",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "node_modules/unicode-properties/node_modules/pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="
+ "node_modules/event-target-shim": {
+ "version": "5.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "node_modules/unicode-properties/node_modules/unicode-trie": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz",
- "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==",
- "dependencies": {
- "pako": "^0.2.5",
- "tiny-inflate": "^1.0.0"
+ "node_modules/events": {
+ "version": "3.3.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.x"
}
},
- "node_modules/urijs": {
- "version": "1.19.11",
- "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz",
- "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ=="
+ "node_modules/exec-sh": {
+ "version": "0.2.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "merge": "^1.1.3"
+ }
},
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "node_modules/v8-compile-cache-lib": {
- "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=="
+ "node_modules/expand-template": {
+ "version": "2.0.3",
+ "dev": true,
+ "license": "(MIT OR WTFPL)",
+ "optional": true,
+ "engines": {
+ "node": ">=6"
+ }
},
- "node_modules/watch": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz",
- "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=",
+ "node_modules/falafel": {
+ "version": "2.2.5",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "exec-sh": "^0.2.0",
- "minimist": "^1.2.0"
+ "acorn": "^7.1.1",
+ "isarray": "^2.0.1"
},
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/falafel/node_modules/acorn": {
+ "version": "7.4.1",
+ "dev": true,
+ "license": "MIT",
"bin": {
- "watch": "cli.js"
+ "acorn": "bin/acorn"
},
"engines": {
- "node": ">=0.1.95"
+ "node": ">=0.4.0"
}
},
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ "node_modules/falafel/node_modules/isarray": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/whatwg-fetch": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
- "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
+ "node_modules/fast-deep-equal": {
+ "version": "1.1.0",
+ "dev": true,
+ "license": "MIT"
},
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
"dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
}
},
- "node_modules/which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
"dev": true,
+ "license": "ISC",
"dependencies": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "reusify": "^1.0.4"
}
},
- "node_modules/which-collection": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
- "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "node_modules/fd-slicer": {
+ "version": "1.1.0",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "is-map": "^2.0.1",
- "is-set": "^2.0.1",
- "is-weakmap": "^2.0.1",
- "is-weakset": "^2.0.1"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "pend": "~1.2.0"
}
},
- "node_modules/which-typed-array": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
- "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
"dev": true,
+ "license": "MIT",
"dependencies": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0",
- "is-typed-array": "^1.1.10"
+ "flat-cache": "^3.0.4"
},
"engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
- },
- "node_modules/wordwrapjs": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz",
- "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==",
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
"engines": {
- "node": ">=12.17"
+ "node": ">=8"
}
},
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "node_modules/find-replace": {
+ "version": "3.0.0",
+ "license": "MIT",
"dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
+ "array-back": "^3.0.1"
},
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ "node": ">=4.0.0"
}
},
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "color-convert": "^2.0.1"
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=10"
},
"funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/wrap-ansi/node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "node_modules/flat": {
+ "version": "5.0.2",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "bin": {
+ "flat": "cli.js"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.2.0",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "color-name": "~1.1.4"
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.3",
+ "rimraf": "^3.0.2"
},
"engines": {
- "node": ">=7.0.0"
+ "node": "^10.12.0 || >=12.0.0"
}
},
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "node_modules/flatted": {
+ "version": "3.3.1",
+ "dev": true,
+ "license": "ISC"
},
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "engines": {
- "node": ">=10"
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-callable": "^1.1.3"
}
},
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
- },
- "node_modules/yaml": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
- "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==",
+ "node_modules/foreground-child": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.0",
+ "signal-exit": "^4.0.1"
+ },
"engines": {
- "node": ">= 14"
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/yargs": {
- "version": "17.6.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz",
- "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
+ "node_modules/form-data": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.8",
+ "mime-types": "^2.1.12"
},
"engines": {
- "node": ">=12"
+ "node": ">= 6"
}
},
- "node_modules/yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
- "engines": {
- "node": ">=12"
+ "node_modules/fs-constants": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "license": "ISC"
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "license": "ISC",
"engines": {
- "node": ">=6"
+ "node": "6.* || 8.* || >= 10.*"
}
},
- "packages/quicktype-core": {
- "version": "18.0.15",
- "license": "Apache-2.0",
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@glideapps/ts-necessities": "2.1.3",
- "@types/urijs": "^1.19.19",
- "browser-or-node": "^2.1.1",
- "collection-utils": "^1.0.1",
- "cross-fetch": "^4.0.0",
- "is-url": "^1.2.4",
- "js-base64": "^3.7.5",
- "lodash": "^4.17.21",
- "pako": "^1.0.6",
- "pluralize": "^8.0.0",
- "readable-stream": "4.4.2",
- "unicode-properties": "^1.4.1",
- "urijs": "^1.19.1",
- "wordwrap": "^1.0.0",
- "yaml": "^2.3.1"
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
},
- "devDependencies": {
- "@types/browser-or-node": "^1.3.0",
- "@types/js-base64": "^3.3.1",
- "@types/node": "18.14.0",
- "@types/pako": "^1.0.0",
- "@types/pluralize": "0.0.30",
- "@types/readable-stream": "2.3.15",
- "@types/unicode-properties": "^1.3.0",
- "@types/yaml": "^1.9.7",
- "tslint": "^6.1.3",
- "typescript": "4.9.5"
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "packages/quicktype-core/node_modules/browser-or-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz",
- "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg=="
- },
- "packages/quicktype-core/node_modules/js-base64": {
- "version": "3.7.5",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz",
- "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA=="
+ "node_modules/github-from-package": {
+ "version": "0.0.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
},
- "packages/quicktype-core/node_modules/pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
+ "node_modules/glob": {
+ "version": "7.2.3",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
"engines": {
- "node": ">=4"
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "packages/quicktype-graphql-input": {
- "version": "18.0.15",
- "license": "Apache-2.0",
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "collection-utils": "^1.0.1",
- "graphql": "^0.11.7",
- "quicktype-core": "file:../quicktype-core"
+ "is-glob": "^4.0.1"
},
- "devDependencies": {
- "@types/graphql": "^0.11.7",
- "@types/node": "18.14.0",
- "tslint": "^6.1.3",
- "typescript": "4.9.5"
+ "engines": {
+ "node": ">= 6"
}
},
- "packages/quicktype-typescript-input": {
- "version": "18.0.15",
- "license": "Apache-2.0",
+ "node_modules/globals": {
+ "version": "13.24.0",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@mark.probst/typescript-json-schema": "0.55.0",
- "quicktype-core": "file:../quicktype-core",
- "typescript": "4.9.5"
+ "type-fest": "^0.20.2"
},
- "devDependencies": {
- "@types/node": "18.14.0",
- "tslint": "^6.1.3"
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "packages/quicktype-typescript-input/node_modules/@glideapps/ts-necessities": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@glideapps/ts-necessities/-/ts-necessities-2.1.2.tgz",
- "integrity": "sha512-tLjfhinr6doUBcWi7BWnkT2zT6G5UhiZftsiIH6xVvykeXE+FU7Wr0MyqwmqideWlDD5rG+VjVLptLviGo04CA=="
- },
- "packages/quicktype-typescript-input/node_modules/isomorphic-fetch": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
- "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==",
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
"dependencies": {
- "node-fetch": "^1.0.1",
- "whatwg-fetch": ">=0.10.0"
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "packages/quicktype-typescript-input/node_modules/node-fetch": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
- "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "encoding": "^0.1.11",
- "is-stream": "^1.0.1"
+ "get-intrinsic": "^1.1.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "packages/quicktype-typescript-input/node_modules/quicktype-core": {
- "version": "20.0.0",
- "resolved": "https://registry.npmjs.org/quicktype-core/-/quicktype-core-20.0.0.tgz",
- "integrity": "sha512-zuvQAk/i4STnhLC4t3nNWPr6u5ArHBW+TME3jA7YQQMp1UdDsFD+4lzqt49b73aYhhmrk9BlO/fX7PcRR5l6YQ==",
- "dependencies": {
- "@glideapps/ts-necessities": "2.1.2",
- "@types/urijs": "^1.19.8",
- "browser-or-node": "^1.2.1",
- "collection-utils": "^1.0.1",
- "is-url": "^1.2.4",
- "isomorphic-fetch": "^2.2.1",
- "js-base64": "^2.4.3",
- "lodash": "^4.17.21",
- "pako": "^1.0.6",
- "pluralize": "^7.0.0",
- "readable-stream": "2.3.7",
- "unicode-properties": "^1.4.1",
- "urijs": "^1.19.1",
- "wordwrap": "^1.0.0",
- "yaml": "^1.5.0"
- }
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "dev": true,
+ "license": "ISC"
},
- "packages/quicktype-typescript-input/node_modules/readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/graphql": {
+ "version": "0.11.7",
+ "license": "MIT",
"dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
+ "iterall": "1.1.3"
}
},
- "packages/quicktype-typescript-input/node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "node_modules/has": {
+ "version": "1.0.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
"engines": {
- "node": ">= 6"
- }
- }
- },
- "dependencies": {
- "@75lb/deep-merge": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/@75lb/deep-merge/-/deep-merge-1.1.1.tgz",
- "integrity": "sha512-xvgv6pkMGBA6GwdyJbNAnDmfAIR/DfWhrj9jgWh3TY7gRm3KO46x/GPjRg6wJ0nOepwqrNxFfojebh0Df4h4Tw==",
- "requires": {
- "lodash.assignwith": "^4.2.0",
- "typical": "^7.1.1"
- },
- "dependencies": {
- "typical": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz",
- "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA=="
- }
+ "node": ">= 0.4.0"
}
},
- "@cspotcode/source-map-support": {
- "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==",
- "requires": {
- "@jridgewell/trace-mapping": "0.3.9"
+ "node_modules/has-bigints": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "@glideapps/ts-necessities": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/@glideapps/ts-necessities/-/ts-necessities-2.1.3.tgz",
- "integrity": "sha512-q9U8v/n9qbkd2zDYjuX3qtlbl+OIyI9zF+zQhZjfYOE9VMDH7tfcUSJ9p0lXoY3lxmGFne09yi4iiNeQUwV7AA=="
- },
- "@jridgewell/resolve-uri": {
- "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": {
- "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": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "requires": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
}
},
- "@mark.probst/typescript-json-schema": {
- "version": "0.55.0",
- "resolved": "https://registry.npmjs.org/@mark.probst/typescript-json-schema/-/typescript-json-schema-0.55.0.tgz",
- "integrity": "sha512-jI48mSnRgFQxXiE/UTUCVCpX8lK3wCFKLF1Ss2aEreboKNuLQGt3e0/YFqWVHe/WENxOaqiJvwOz+L/SrN2+qQ==",
- "requires": {
- "@types/json-schema": "^7.0.9",
- "@types/node": "^16.9.2",
- "glob": "^7.1.7",
- "path-equal": "^1.1.2",
- "safe-stable-stringify": "^2.2.0",
- "ts-node": "^10.9.1",
- "typescript": "4.9.4",
- "yargs": "^17.1.1"
- },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "@types/node": {
- "version": "16.18.11",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.11.tgz",
- "integrity": "sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA=="
- },
- "typescript": {
- "version": "4.9.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz",
- "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg=="
- }
+ "es-define-property": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA=="
- },
- "@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag=="
- },
- "@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow=="
- },
- "@tsconfig/node16": {
+ "node_modules/has-proto": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
- "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ=="
- },
- "@tsconfig/node18": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-1.0.1.tgz",
- "integrity": "sha512-sNFeK6X2ATlhlvzyH4kKYQlfHXE2f2/wxtB9ClvYXevWpmwkUT7VaSrjIN9E76Qebz8qP5JOJJ9jD3QoD/Z9TA==",
- "dev": true
- },
- "@types/browser-or-node": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@types/browser-or-node/-/browser-or-node-1.3.0.tgz",
- "integrity": "sha512-MVetr65IR7RdJbUxVHsaPFaXAO8fi89zv1g8L/mHygh1Q7xnnK02XZLwfMh57FOpTO6gtnagoPMQ/UOFfctXRQ==",
- "dev": true
- },
- "@types/command-line-args": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.0.tgz",
- "integrity": "sha512-UuKzKpJJ/Ief6ufIaIzr3A/0XnluX7RvFgwkV89Yzvm77wCh1kFaFmqN8XEnGcN62EuHdedQjEMb8mYxFLGPyA==",
- "dev": true
- },
- "@types/command-line-usage": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.2.tgz",
- "integrity": "sha512-n7RlEEJ+4x4TS7ZQddTmNSxP+zziEG0TNsMfiRIxcIVXt71ENJ9ojeXmGO3wPoTdn7pJcU2xc3CJYMktNT6DPg==",
- "dev": true
- },
- "@types/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==",
+ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
"dev": true,
- "requires": {
- "@types/minimatch": "*",
- "@types/node": "*"
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "@types/graphql": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@types/graphql/-/graphql-0.11.8.tgz",
- "integrity": "sha512-xGWx4kx9JKlqxDrZA12gw5qi2lvxPNLxnQQcoTXVX83MuGcXcpb7TADatGyGW51GaaXQOQTbjw3x4HuL3ULBaA==",
- "dev": true
- },
- "@types/js-base64": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/@types/js-base64/-/js-base64-3.3.1.tgz",
- "integrity": "sha512-Zw33oQNAvDdAN9b0IE5stH0y2MylYvtU7VVTKEJPxhyM2q57CVaNJhtJW258ah24NRtaiA23tptUmVn3dmTKpw==",
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
"dev": true,
- "requires": {
- "js-base64": "*"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "@types/json-schema": {
- "version": "7.0.11",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
- "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ=="
- },
- "@types/lodash": {
- "version": "4.14.197",
- "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.197.tgz",
- "integrity": "sha512-BMVOiWs0uNxHVlHBgzTIqJYmj+PgCo4euloGF+5m4okL3rEYzM2EEv78mw8zWSMM57dM7kVIgJ2QDvwHSoCI5g==",
- "dev": true
- },
- "@types/minimatch": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
- "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==",
- "dev": true
- },
- "@types/node": {
- "version": "18.14.0",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-18.14.0.tgz",
- "integrity": "sha512-5EWrvLmglK+imbCJY0+INViFWUHg1AHel1sq4ZVSfdcNqGy9Edv3UB9IIzzg+xPaUcAgZYcfVs2fBcwDeZzU0A=="
- },
- "@types/pako": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@types/pako/-/pako-1.0.0.tgz",
- "integrity": "sha1-6q6DZNG391LiY7w/1o3+yY5hNsU=",
- "dev": true
- },
- "@types/pluralize": {
- "version": "0.0.30",
- "resolved": "https://registry.npmjs.org/@types/pluralize/-/pluralize-0.0.30.tgz",
- "integrity": "sha512-kVww6xZrW/db5BR9OqiT71J9huRdQ+z/r+LbDuT7/EK50mCmj5FoaIARnVv0rvjUS/YpDox0cDU9lpQT011VBA==",
- "dev": true
- },
- "@types/readable-stream": {
- "version": "2.3.15",
- "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.15.tgz",
- "integrity": "sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ==",
+ "node_modules/has-tostringtag": {
+ "version": "1.0.2",
"dev": true,
- "requires": {
- "@types/node": "*",
- "safe-buffer": "~5.1.1"
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "@types/semver": {
- "version": "7.5.0",
- "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.0.tgz",
- "integrity": "sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==",
- "dev": true
- },
- "@types/shelljs": {
- "version": "0.8.12",
- "resolved": "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.12.tgz",
- "integrity": "sha512-ZA8U81/gldY+rR5zl/7HSHrG2KDfEb3lzG6uCUDhW1DTQE9yC/VBQ45fXnXq8f3CgInfhZmjtdu/WOUlrXRQUg==",
+ "node_modules/hasown": {
+ "version": "2.0.2",
"dev": true,
- "requires": {
- "@types/glob": "~7.2.0",
- "@types/node": "*"
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "@types/stream-chain": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/stream-chain/-/stream-chain-2.0.1.tgz",
- "integrity": "sha512-D+Id9XpcBpampptkegH7WMsEk6fUdf9LlCIX7UhLydILsqDin4L0QT7ryJR0oycwC7OqohIzdfcMHVZ34ezNGg==",
+ "node_modules/he": {
+ "version": "1.2.0",
"dev": true,
- "requires": {
- "@types/node": "*"
+ "license": "MIT",
+ "bin": {
+ "he": "bin/he"
}
},
- "@types/stream-json": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/@types/stream-json/-/stream-json-1.7.3.tgz",
- "integrity": "sha512-Jqsyq5VPOTWorvEmzWhEWH5tJnHA+bB8vt/Zzb11vSDj8esfSHDMj2rbVjP0mfJQzl3YBJSXBBq08iiyaBK3KA==",
+ "node_modules/hosted-git-info": {
+ "version": "4.1.0",
"dev": true,
- "requires": {
- "@types/node": "*",
- "@types/stream-chain": "*"
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "@types/unicode-properties": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/@types/unicode-properties/-/unicode-properties-1.3.0.tgz",
- "integrity": "sha512-kDVlxpdkCfgvzfXcglkr7j4OSMjCEEo/Jloj4tFuldYZpQ9Uypy7FGXPhNstoj4eGvhddwuu5n0EfI+XdWVoVA==",
- "dev": true
- },
- "@types/urijs": {
- "version": "1.19.19",
- "resolved": "https://registry.npmjs.org/@types/urijs/-/urijs-1.19.19.tgz",
- "integrity": "sha512-FDJNkyhmKLw7uEvTxx5tSXfPeQpO0iy73Ry+PmYZJvQy0QIWX8a7kJ4kLWRf+EbTPJEPDSgPXHaM7pzr5lmvCg=="
- },
- "@types/yaml": {
- "version": "1.9.7",
- "resolved": "https://registry.npmjs.org/@types/yaml/-/yaml-1.9.7.tgz",
- "integrity": "sha512-8WMXRDD1D+wCohjfslHDgICd2JtMATZU8CkhH8LVJqcJs6dyYj5TGptzP8wApbmEullGBSsCEzzap73DQ1HJaA==",
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
"dev": true,
- "requires": {
- "yaml": "*"
- }
+ "license": "MIT"
},
- "abort-controller": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
- "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
- "requires": {
- "event-target-shim": "^5.0.0"
+ "node_modules/htmlparser2": {
+ "version": "8.0.2",
+ "dev": true,
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "entities": "^4.4.0"
}
},
- "acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA=="
- },
- "ajv": {
- "version": "5.5.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
- "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "node_modules/http-proxy-agent": {
+ "version": "4.0.1",
"dev": true,
- "requires": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.3.0"
+ "license": "MIT",
+ "dependencies": {
+ "@tootallnate/once": "1",
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "ansi-regex": {
+ "node_modules/https-proxy-agent": {
"version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
- },
- "ansi-styles": {
- "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==",
"dev": true,
- "requires": {
- "color-convert": "^1.9.0"
+ "license": "MIT",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA=="
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "array-back": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
- "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
},
- "array-buffer-byte-length": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz",
- "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==",
+ "node_modules/ignore": {
+ "version": "5.3.1",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "is-array-buffer": "^3.0.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
}
},
- "available-typed-arrays": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
- "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
- "dev": true
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "base64-js": {
- "version": "1.5.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
- "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="
+ "node_modules/immediate": {
+ "version": "3.0.6",
+ "dev": true,
+ "license": "MIT"
},
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "browser-or-node": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.2.1.tgz",
- "integrity": "sha512-sVIA0cysIED0nbmNOm7sZzKfgN1rpFmrqvLZaFWspaBAftfQcezlC81G6j6U2RJf4Lh66zFxrCeOsvkUXIcPWg=="
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
},
- "buffer": {
- "version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.2.1"
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
}
},
- "builtin-modules": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
- "dev": true
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "license": "ISC"
},
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
+ "node_modules/ini": {
+ "version": "1.3.8",
"dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
+ "license": "ISC",
+ "optional": true
},
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
+ "node_modules/internal-slot": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz",
+ "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==",
+ "dev": true,
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
+ "es-errors": "^1.3.0",
+ "hasown": "^2.0.0",
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "chalk-template": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz",
- "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==",
- "requires": {
- "chalk": "^4.1.2"
- }
+ "node_modules/interpret": {
+ "version": "1.1.0",
+ "dev": true,
+ "license": "MIT"
},
- "cliui": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
- "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.1",
- "wrap-ansi": "^7.0.0"
- }
- },
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "dev": true
- },
- "collection-utils": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/collection-utils/-/collection-utils-1.0.1.tgz",
- "integrity": "sha512-LA2YTIlR7biSpXkKYwwuzGjwL5rjWEZVOSnvdUc7gObvWe4WkjxOpfrdhoP7Hs09YWDVfg0Mal9BpAqLfVEzQg=="
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "node_modules/is-arguments": {
+ "version": "1.1.1",
"dev": true,
- "requires": {
- "color-name": "1.1.3"
- },
+ "license": "MIT",
"dependencies": {
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- }
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "command-line-args": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
- "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
- "requires": {
- "array-back": "^3.1.0",
- "find-replace": "^3.0.0",
- "lodash.camelcase": "^4.3.0",
- "typical": "^4.0.0"
+ "node_modules/is-array-buffer": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz",
+ "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "command-line-usage": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.1.tgz",
- "integrity": "sha512-NCyznE//MuTjwi3y84QVUGEOT+P5oto1e1Pk/jFPVdPPfsG03qpTIl3yw6etR+v73d0lXsoojRpvbru2sqePxQ==",
- "requires": {
- "array-back": "^6.2.2",
- "chalk-template": "^0.4.0",
- "table-layout": "^3.0.0",
- "typical": "^7.1.1"
- },
+ "node_modules/is-bigint": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "array-back": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
- "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw=="
- },
- "typical": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz",
- "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA=="
- }
+ "has-bigints": "^1.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "commander": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
- "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
- "dev": true
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ=="
- },
- "cross-fetch": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz",
- "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==",
- "requires": {
- "node-fetch": "^2.6.12"
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "deep-equal": {
- "version": "2.2.2",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.2.2.tgz",
- "integrity": "sha512-xjVyBf0w5vH0I42jdAZzOKVldmPgSulmiyPRywoyq7HXC9qdgo17kxJE+rdnif5Tz6+pIrpJI8dCpMNLIGkUiA==",
+ "node_modules/is-boolean-object": {
+ "version": "1.1.2",
"dev": true,
- "requires": {
- "array-buffer-byte-length": "^1.0.0",
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
- "es-get-iterator": "^1.1.3",
- "get-intrinsic": "^1.2.1",
- "is-arguments": "^1.1.1",
- "is-array-buffer": "^3.0.2",
- "is-date-object": "^1.0.5",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.2",
- "isarray": "^2.0.5",
- "object-is": "^1.1.5",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.4",
- "regexp.prototype.flags": "^1.5.0",
- "side-channel": "^1.0.4",
- "which-boxed-primitive": "^1.0.2",
- "which-collection": "^1.0.1",
- "which-typed-array": "^1.1.9"
+ "has-tostringtag": "^1.0.0"
},
- "dependencies": {
- "isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
- }
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "define-properties": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz",
- "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==",
+ "node_modules/is-callable": {
+ "version": "1.2.7",
"dev": true,
- "requires": {
- "has-property-descriptors": "^1.0.0",
- "object-keys": "^1.1.1"
- }
- },
- "diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A=="
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "encoding": {
- "version": "0.1.13",
- "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
- "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
- "requires": {
- "iconv-lite": "^0.6.2"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "es-get-iterator": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.3.tgz",
- "integrity": "sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==",
+ "node_modules/is-core-module": {
+ "version": "2.13.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
+ "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.3",
- "has-symbols": "^1.0.3",
- "is-arguments": "^1.1.1",
- "is-map": "^2.0.2",
- "is-set": "^2.0.2",
- "is-string": "^1.0.7",
- "isarray": "^2.0.5",
- "stop-iteration-iterator": "^1.0.0"
- },
"dependencies": {
- "isarray": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
- "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
- "dev": true
- }
+ "hasown": "^2.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "escape-string-regexp": {
+ "node_modules/is-date-object": {
"version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "esutils": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
- "dev": true
- },
- "event-target-shim": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
- "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
- },
- "events": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz",
- "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q=="
- },
- "exec-sh": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.1.tgz",
- "integrity": "sha512-aLt95pexaugVtQerpmE51+4QfWrNc304uez7jvj6fWnN8GeEHpttB8F36n8N7uVhUMbH/1enbxQ9HImZ4w/9qg==",
"dev": true,
- "requires": {
- "merge": "^1.1.3"
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "exit": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
- "dev": true
- },
- "fast-deep-equal": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
- "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
- "dev": true
- },
- "fast-json-stable-stringify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
- "dev": true
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "find-replace": {
+ "node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
- "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
- "requires": {
- "array-back": "^3.0.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "for-each": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
- "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "node_modules/is-glob": {
+ "version": "4.0.3",
"dev": true,
- "requires": {
- "is-callable": "^1.1.3"
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "functions-have-names": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
- "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
- "dev": true
- },
- "get-caller-file": {
- "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-intrinsic": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz",
- "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==",
+ "node_modules/is-map": {
+ "version": "2.0.2",
"dev": true,
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "gopd": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "node_modules/is-number": {
+ "version": "7.0.0",
"dev": true,
- "requires": {
- "get-intrinsic": "^1.1.3"
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
}
},
- "graphql": {
- "version": "0.11.7",
- "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.11.7.tgz",
- "integrity": "sha512-x7uDjyz8Jx+QPbpCFCMQ8lltnQa4p4vSYHx6ADe8rVYRTdsyhCJbvSty5DAsLVmU6cGakl+r8HQYolKHxk/tiw==",
- "requires": {
- "iterall": "1.1.3"
+ "node_modules/is-number-object": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "node_modules/is-path-inside": {
+ "version": "3.0.3",
"dev": true,
- "requires": {
- "function-bind": "^1.1.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "has-bigints": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
- "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "has-property-descriptors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
- "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "node_modules/is-plain-obj": {
+ "version": "2.1.0",
"dev": true,
- "requires": {
- "get-intrinsic": "^1.1.1"
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "has-proto": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
- "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
- "dev": true
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true
- },
- "has-tostringtag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
- "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
+ "node_modules/is-regex": {
+ "version": "1.1.4",
"dev": true,
- "requires": {
- "has-symbols": "^1.0.2"
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
+ "node_modules/is-set": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "ieee754": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
- "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="
+ "node_modules/is-shared-array-buffer": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
+ "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.7"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
+ "node_modules/is-stream": {
+ "version": "1.1.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "node_modules/is-string": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "internal-slot": {
+ "node_modules/is-symbol": {
"version": "1.0.4",
- "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz",
- "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==",
"dev": true,
- "requires": {
- "get-intrinsic": "^1.1.3",
- "has": "^1.0.3",
- "side-channel": "^1.0.4"
+ "license": "MIT",
+ "dependencies": {
+ "has-symbols": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "interpret": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
- "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
- "dev": true
+ "node_modules/is-unicode-supported": {
+ "version": "0.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "is-arguments": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
- "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "node_modules/is-url": {
+ "version": "1.2.4",
+ "license": "MIT"
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.1",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-array-buffer": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
- "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==",
+ "node_modules/is-weakset": {
+ "version": "2.0.2",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
- "get-intrinsic": "^1.2.0",
- "is-typed-array": "^1.1.10"
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "is-bigint": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
- "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
+ "node_modules/isarray": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
"dev": true,
- "requires": {
- "has-bigints": "^1.0.1"
+ "license": "ISC"
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=8"
}
},
- "is-boolean-object": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
- "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "is-callable": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz",
- "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
- "dev": true
+ "node_modules/istanbul-lib-report/node_modules/has-flag": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
},
- "is-date-object": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
- "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
+ "node_modules/istanbul-lib-report/node_modules/supports-color": {
+ "version": "7.2.0",
"dev": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
}
},
- "is-fullwidth-code-point": {
- "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=="
+ "node_modules/istanbul-reports": {
+ "version": "3.1.7",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
},
- "is-map": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
- "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
- "dev": true
+ "node_modules/iterall": {
+ "version": "1.1.3",
+ "license": "MIT"
},
- "is-number-object": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
- "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
+ "node_modules/jackspeak": {
+ "version": "2.3.6",
"dev": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
}
},
- "is-regex": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
- "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
+ "node_modules/js-base64": {
+ "version": "3.7.7",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "has-tostringtag": "^1.0.0"
- }
+ "license": "MIT"
},
- "is-set": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
- "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
- "dev": true
+ "node_modules/json-schema-traverse": {
+ "version": "0.3.1",
+ "dev": true,
+ "license": "MIT"
},
- "is-shared-array-buffer": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
- "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2"
- }
+ "license": "MIT"
},
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ=="
+ "node_modules/jsonc-parser": {
+ "version": "3.2.1",
+ "dev": true,
+ "license": "MIT"
},
- "is-string": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
- "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
+ "node_modules/jszip": {
+ "version": "3.10.1",
"dev": true,
- "requires": {
- "has-tostringtag": "^1.0.0"
+ "license": "(MIT OR GPL-3.0-or-later)",
+ "dependencies": {
+ "lie": "~3.3.0",
+ "pako": "~1.0.2",
+ "readable-stream": "~2.3.6",
+ "setimmediate": "^1.0.5"
}
},
- "is-symbol": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
- "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
+ "node_modules/jszip/node_modules/readable-stream": {
+ "version": "2.3.8",
"dev": true,
- "requires": {
- "has-symbols": "^1.0.2"
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
}
},
- "is-typed-array": {
- "version": "1.1.10",
- "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz",
- "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==",
+ "node_modules/keytar": {
+ "version": "7.9.0",
"dev": true,
- "requires": {
- "available-typed-arrays": "^1.0.5",
- "call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0"
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "node-addon-api": "^4.3.0",
+ "prebuild-install": "^7.0.1"
}
},
- "is-url": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
- "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww=="
- },
- "is-weakmap": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
- "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
- "dev": true
- },
- "is-weakset": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
- "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "node_modules/keyv": {
+ "version": "4.5.4",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "get-intrinsic": "^1.1.1"
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
}
},
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "iterall": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz",
- "integrity": "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ=="
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "js-base64": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz",
- "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw=="
+ "node_modules/lie": {
+ "version": "3.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "immediate": "~3.0.5"
+ }
},
- "js-yaml": {
- "version": "3.13.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
- "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+ "node_modules/linkify-it": {
+ "version": "3.0.3",
"dev": true,
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
+ "license": "MIT",
"dependencies": {
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "dev": true
- }
+ "uc.micro": "^1.0.1"
}
},
- "json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
- "dev": true
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "lodash": {
+ "node_modules/lodash": {
"version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+ "license": "MIT"
},
- "lodash.assignwith": {
+ "node_modules/lodash.assignwith": {
"version": "4.2.0",
- "resolved": "https://registry.npmjs.org/lodash.assignwith/-/lodash.assignwith-4.2.0.tgz",
- "integrity": "sha512-ZznplvbvtjK2gMvnQ1BR/zqPFZmS6jbK4p+6Up4xcRYA7yMIwxHCfbTcrYxXKzzqLsQ05eJPVznEW3tuwV7k1g=="
+ "license": "MIT"
},
- "lodash.camelcase": {
+ "node_modules/lodash.camelcase": {
"version": "4.3.0",
- "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
- "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
+ "license": "MIT"
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/log-symbols": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.1.0",
+ "is-unicode-supported": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "lru-cache": {
+ "node_modules/lru-cache": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "make-error": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz",
- "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g=="
- },
- "merge": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz",
- "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==",
- "dev": true
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "requires": {
- "brace-expansion": "^1.1.7"
+ "node_modules/magic-string": {
+ "version": "0.22.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vlq": "^0.2.2"
}
},
- "minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "dev": true
- },
- "mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "node_modules/make-dir": {
+ "version": "4.0.0",
"dev": true,
- "requires": {
- "minimist": "^1.2.6"
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w=="
+ "node_modules/make-error": {
+ "version": "1.3.4",
+ "license": "ISC"
},
- "node-fetch": {
- "version": "2.6.12",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.12.tgz",
- "integrity": "sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==",
- "requires": {
- "whatwg-url": "^5.0.0"
+ "node_modules/markdown-it": {
+ "version": "12.3.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1",
+ "entities": "~2.1.0",
+ "linkify-it": "^3.0.1",
+ "mdurl": "^1.0.1",
+ "uc.micro": "^1.0.5"
+ },
+ "bin": {
+ "markdown-it": "bin/markdown-it.js"
}
},
- "object-inspect": {
- "version": "1.12.3",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
- "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==",
- "dev": true
+ "node_modules/markdown-it/node_modules/argparse": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "Python-2.0"
},
- "object-is": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
- "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "node_modules/markdown-it/node_modules/entities": {
+ "version": "2.1.0",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "license": "BSD-2-Clause",
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
}
},
- "object-keys": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
- "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
- "dev": true
- },
- "object.assign": {
- "version": "4.1.4",
- "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz",
- "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==",
- "dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.1.4",
- "has-symbols": "^1.0.3",
- "object-keys": "^1.1.1"
- }
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "pako": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
- "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg=="
- },
- "path-equal": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/path-equal/-/path-equal-1.2.5.tgz",
- "integrity": "sha512-i73IctDr3F2W+bsOWDyyVm/lqsXO47aY9nsFZUjTT/aljSbkxHxxCoyZ9UUrM8jK0JVod+An+rl48RCsvWM+9g=="
- },
- "path-is-absolute": {
+ "node_modules/mdurl": {
"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": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "pluralize": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
- "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow=="
- },
- "prettier": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.1.tgz",
- "integrity": "sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==",
- "dev": true
- },
- "process": {
- "version": "0.11.10",
- "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
- "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ "dev": true,
+ "license": "MIT"
},
- "promise-timeout": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/promise-timeout/-/promise-timeout-1.3.0.tgz",
- "integrity": "sha512-5yANTE0tmi5++POym6OgtFmwfDvOXABD9oj/jLQr5GPEyuNEb7jH4wbbANJceJid49jwhi1RddxnhnEAb/doqg==",
- "dev": true
+ "node_modules/merge": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "MIT"
},
- "quicktype-core": {
- "version": "file:packages/quicktype-core",
- "requires": {
- "@glideapps/ts-necessities": "2.1.3",
- "@types/browser-or-node": "^1.3.0",
- "@types/js-base64": "^3.3.1",
- "@types/node": "18.14.0",
- "@types/pako": "^1.0.0",
- "@types/pluralize": "0.0.30",
- "@types/readable-stream": "2.3.15",
- "@types/unicode-properties": "^1.3.0",
- "@types/urijs": "^1.19.19",
- "@types/yaml": "^1.9.7",
- "browser-or-node": "^2.1.1",
- "collection-utils": "^1.0.1",
- "cross-fetch": "^4.0.0",
- "is-url": "^1.2.4",
- "js-base64": "^3.7.5",
- "lodash": "^4.17.21",
- "pako": "^1.0.6",
- "pluralize": "^8.0.0",
- "readable-stream": "4.4.2",
- "tslint": "^6.1.3",
- "typescript": "4.9.5",
- "unicode-properties": "^1.4.1",
- "urijs": "^1.19.1",
- "wordwrap": "^1.0.0",
- "yaml": "^2.3.1"
- },
+ "node_modules/merge-source-map": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "browser-or-node": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-2.1.1.tgz",
- "integrity": "sha512-8CVjaLJGuSKMVTxJ2DpBl5XnlNDiT4cQFeuCJJrvJmts9YrTZDizTX7PjC2s6W4x+MBGZeEY6dGMrF04/6Hgqg=="
- },
- "js-base64": {
- "version": "3.7.5",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz",
- "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA=="
- },
- "pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA=="
- }
+ "source-map": "^0.5.6"
}
},
- "quicktype-graphql-input": {
- "version": "file:packages/quicktype-graphql-input",
- "requires": {
- "@types/graphql": "^0.11.7",
- "@types/node": "18.14.0",
- "collection-utils": "^1.0.1",
- "graphql": "^0.11.7",
- "quicktype-core": "file:../quicktype-core",
- "tslint": "^6.1.3",
- "typescript": "4.9.5"
+ "node_modules/merge-source-map/node_modules/source-map": {
+ "version": "0.5.7",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "quicktype-typescript-input": {
- "version": "file:packages/quicktype-typescript-input",
- "requires": {
- "@mark.probst/typescript-json-schema": "0.55.0",
- "@types/node": "18.14.0",
- "quicktype-core": "file:../quicktype-core",
- "tslint": "^6.1.3",
- "typescript": "4.9.5"
- },
- "dependencies": {
- "@glideapps/ts-necessities": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/@glideapps/ts-necessities/-/ts-necessities-2.1.2.tgz",
- "integrity": "sha512-tLjfhinr6doUBcWi7BWnkT2zT6G5UhiZftsiIH6xVvykeXE+FU7Wr0MyqwmqideWlDD5rG+VjVLptLviGo04CA=="
- },
- "isomorphic-fetch": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
- "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==",
- "requires": {
- "node-fetch": "^1.0.1",
- "whatwg-fetch": ">=0.10.0"
- }
- },
- "node-fetch": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
- "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
- "requires": {
- "encoding": "^0.1.11",
- "is-stream": "^1.0.1"
- }
- },
- "quicktype-core": {
- "version": "https://registry.npmjs.org/quicktype-core/-/quicktype-core-20.0.0.tgz",
- "integrity": "sha512-zuvQAk/i4STnhLC4t3nNWPr6u5ArHBW+TME3jA7YQQMp1UdDsFD+4lzqt49b73aYhhmrk9BlO/fX7PcRR5l6YQ==",
- "requires": {
- "@glideapps/ts-necessities": "2.1.2",
- "@types/urijs": "^1.19.8",
- "browser-or-node": "^1.2.1",
- "collection-utils": "^1.0.1",
- "is-url": "^1.2.4",
- "isomorphic-fetch": "^2.2.1",
- "js-base64": "^2.4.3",
- "lodash": "^4.17.21",
- "pako": "^1.0.6",
- "pluralize": "^7.0.0",
- "readable-stream": "2.3.7",
- "unicode-properties": "^1.4.1",
- "urijs": "^1.19.1",
- "wordwrap": "^1.0.0",
- "yaml": "^1.5.0"
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg=="
- }
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
}
},
- "readable-stream": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz",
- "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==",
- "requires": {
- "abort-controller": "^3.0.0",
- "buffer": "^6.0.3",
- "events": "^3.3.0",
- "process": "^0.11.10",
- "string_decoder": "^1.3.0"
- },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
"dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- }
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
}
},
- "rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
+ "node_modules/mime": {
+ "version": "1.6.0",
"dev": true,
- "requires": {
- "resolve": "^1.1.6"
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
}
},
- "regexp.prototype.flags": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.0.tgz",
- "integrity": "sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==",
+ "node_modules/mime-db": {
+ "version": "1.52.0",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "define-properties": "^1.2.0",
- "functions-have-names": "^1.2.3"
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
}
},
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
- },
- "resolve": {
- "version": "1.7.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz",
- "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==",
+ "node_modules/mime-types": {
+ "version": "2.1.35",
"dev": true,
- "requires": {
- "path-parse": "^1.0.5"
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "safe-stable-stringify": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz",
- "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA=="
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "semver": {
- "version": "7.5.4",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
- "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
+ "node_modules/mimic-response": {
+ "version": "3.1.0",
"dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "shelljs": {
- "version": "0.8.5",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz",
- "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==",
- "dev": true,
- "requires": {
- "glob": "^7.0.0",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
}
},
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
+ "node_modules/minimist": {
+ "version": "1.2.7",
"dev": true,
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- },
- "stop-iteration-iterator": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz",
- "integrity": "sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==",
+ "node_modules/minipass": {
+ "version": "7.0.4",
"dev": true,
- "requires": {
- "internal-slot": "^1.0.4"
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
}
},
- "stream-chain": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz",
- "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA=="
+ "node_modules/mkdirp-classic": {
+ "version": "0.5.3",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
},
- "stream-json": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.8.0.tgz",
- "integrity": "sha512-HZfXngYHUAr1exT4fxlbc1IOce1RYxp2ldeaf97LYCOPSoOqY/1Psp7iGvpb+6JIOgkra9zDYnPX01hGAHzEPw==",
- "requires": {
- "stream-chain": "^2.2.5"
+ "node_modules/mocha": {
+ "version": "10.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-colors": "4.1.1",
+ "browser-stdout": "1.3.1",
+ "chokidar": "3.5.3",
+ "debug": "4.3.4",
+ "diff": "5.0.0",
+ "escape-string-regexp": "4.0.0",
+ "find-up": "5.0.0",
+ "glob": "8.1.0",
+ "he": "1.2.0",
+ "js-yaml": "4.1.0",
+ "log-symbols": "4.1.0",
+ "minimatch": "5.0.1",
+ "ms": "2.1.3",
+ "serialize-javascript": "6.0.0",
+ "strip-json-comments": "3.1.1",
+ "supports-color": "8.1.1",
+ "workerpool": "6.2.1",
+ "yargs": "16.2.0",
+ "yargs-parser": "20.2.4",
+ "yargs-unparser": "2.0.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha.js"
+ },
+ "engines": {
+ "node": ">= 14.0.0"
}
},
- "stream-read-all": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/stream-read-all/-/stream-read-all-3.0.1.tgz",
- "integrity": "sha512-EWZT9XOceBPlVJRrYcykW8jyRSZYbkb/0ZK36uLEmoWVO5gxBOnntNTseNzfREsqxqdfEGQrD8SXQ3QWbBmq8A=="
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
+ "node_modules/mocha/node_modules/argparse": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "Python-2.0"
},
- "string-to-stream": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-3.0.1.tgz",
- "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==",
- "requires": {
- "readable-stream": "^3.4.0"
- },
+ "node_modules/mocha/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- }
+ "balanced-match": "^1.0.0"
}
},
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
+ "node_modules/mocha/node_modules/chokidar": {
+ "version": "3.5.3",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
}
},
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "requires": {
- "ansi-regex": "^5.0.1"
+ "node_modules/mocha/node_modules/cliui": {
+ "version": "7.0.4",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
}
},
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "node_modules/mocha/node_modules/diff": {
+ "version": "5.0.0",
"dev": true,
- "requires": {
- "has-flag": "^3.0.0"
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
}
},
- "table-layout": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-3.0.2.tgz",
- "integrity": "sha512-rpyNZYRw+/C+dYkcQ3Pr+rLxW4CfHpXjPDnG7lYhdRoUcZTUt+KEsX+94RGp/aVp/MQU35JCITv2T/beY4m+hw==",
- "requires": {
- "@75lb/deep-merge": "^1.1.1",
- "array-back": "^6.2.2",
- "command-line-args": "^5.2.1",
- "command-line-usage": "^7.0.0",
- "stream-read-all": "^3.0.1",
- "typical": "^7.1.1",
- "wordwrapjs": "^5.1.0"
+ "node_modules/mocha/node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
},
- "dependencies": {
- "array-back": {
- "version": "6.2.2",
- "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz",
- "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw=="
- },
- "typical": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/typical/-/typical-7.1.1.tgz",
- "integrity": "sha512-T+tKVNs6Wu7IWiAce5BgMd7OZfNYUndHwc5MknN+UHOudi7sGZzuHdCadllRuqJ3fPtgFtIH9+lt9qRv6lmpfA=="
- }
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "tiny-inflate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.2.tgz",
- "integrity": "sha1-k9nez/yIBb1X6uQxDwt0Xptvs6c="
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
- },
- "ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
- "requires": {
- "@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"
- },
+ "node_modules/mocha/node_modules/glob": {
+ "version": "8.1.0",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "acorn": {
- "version": "8.8.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz",
- "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA=="
- }
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^5.0.1",
+ "once": "^1.3.0"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
- "dev": true
- },
- "tslint": {
- "version": "6.1.3",
- "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz",
- "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==",
+ "node_modules/mocha/node_modules/has-flag": {
+ "version": "4.0.0",
"dev": true,
- "requires": {
- "@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"
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
- "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.0.0"
- }
- },
- "@babel/highlight": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
- "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
- "dev": true,
- "requires": {
- "chalk": "^2.0.0",
- "esutils": "^2.0.2",
- "js-tokens": "^4.0.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
}
},
- "tsutils": {
- "version": "2.29.0",
- "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
- "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+ "node_modules/mocha/node_modules/js-yaml": {
+ "version": "4.1.0",
"dev": true,
- "requires": {
- "tslib": "^1.8.1"
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "typescript": {
- "version": "4.9.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
- "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g=="
- },
- "typical": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
- "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="
- },
- "unicode-properties": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/unicode-properties/-/unicode-properties-1.4.1.tgz",
- "integrity": "sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==",
- "requires": {
- "base64-js": "^1.3.0",
- "unicode-trie": "^2.0.0"
- },
+ "node_modules/mocha/node_modules/minimatch": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "ISC",
"dependencies": {
- "pako": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
- "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA=="
- },
- "unicode-trie": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-2.0.0.tgz",
- "integrity": "sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==",
- "requires": {
- "pako": "^0.2.5",
- "tiny-inflate": "^1.0.0"
- }
- }
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "urijs": {
- "version": "1.19.11",
- "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz",
- "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ=="
+ "node_modules/mocha/node_modules/ms": {
+ "version": "2.1.3",
+ "dev": true,
+ "license": "MIT"
},
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ "node_modules/mocha/node_modules/supports-color": {
+ "version": "8.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
},
- "v8-compile-cache-lib": {
- "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=="
+ "node_modules/mocha/node_modules/yargs": {
+ "version": "16.2.0",
+ "dev": true,
+ "license": "MIT",
+ "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"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/mocha/node_modules/yargs-parser": {
+ "version": "20.2.4",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/mute-stream": {
+ "version": "0.0.8",
+ "dev": true,
+ "license": "ISC"
},
- "watch": {
+ "node_modules/napi-build-utils": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/watch/-/watch-1.0.2.tgz",
- "integrity": "sha1-NApxe952Vyb6CqB9ch4BR6VR3ww=",
"dev": true,
- "requires": {
- "exec-sh": "^0.2.0",
- "minimist": "^1.2.0"
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/node-abi": {
+ "version": "3.57.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
+ "node_modules/node-addon-api": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true
},
- "whatwg-fetch": {
- "version": "3.6.2",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
- "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA=="
+ "node_modules/node-fetch": {
+ "version": "2.6.12",
+ "license": "MIT",
+ "dependencies": {
+ "whatwg-url": "^5.0.0"
+ },
+ "engines": {
+ "node": "4.x || >=6.0.0"
+ },
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
+ }
},
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
+ "node_modules/node-persist": {
+ "version": "4.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10.12.0"
}
},
- "which-boxed-primitive": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
- "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
"dev": true,
- "requires": {
- "is-bigint": "^1.0.1",
- "is-boolean-object": "^1.1.0",
- "is-number-object": "^1.0.4",
- "is-string": "^1.0.5",
- "is-symbol": "^1.0.3"
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "which-collection": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
- "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "node_modules/nth-check": {
+ "version": "2.1.1",
"dev": true,
- "requires": {
- "is-map": "^2.0.1",
- "is-set": "^2.0.1",
- "is-weakmap": "^2.0.1",
- "is-weakset": "^2.0.1"
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.1",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "which-typed-array": {
- "version": "1.1.9",
- "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz",
- "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==",
+ "node_modules/object-is": {
+ "version": "1.1.5",
"dev": true,
- "requires": {
- "available-typed-arrays": "^1.0.5",
+ "license": "MIT",
+ "dependencies": {
"call-bind": "^1.0.2",
- "for-each": "^0.3.3",
- "gopd": "^1.0.1",
- "has-tostringtag": "^1.0.0",
- "is-typed-array": "^1.1.10"
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+ "node_modules/object-keys": {
+ "version": "1.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "wordwrapjs": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz",
- "integrity": "sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg=="
+ "node_modules/object.assign": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz",
+ "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==",
+ "dev": true,
+ "dependencies": {
+ "call-bind": "^1.0.5",
+ "define-properties": "^1.2.1",
+ "has-symbols": "^1.0.3",
+ "object-keys": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
+ "node_modules/once": {
+ "version": "1.4.0",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@aashutoshrathi/word-wrap": "^1.2.3",
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0"
},
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "requires": {
- "color-name": "~1.1.4"
- }
- }
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ "node_modules/pako": {
+ "version": "1.0.6",
+ "license": "(MIT AND Zlib)"
},
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
- "dev": true
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
},
- "yaml": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz",
- "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ=="
+ "node_modules/parse-semver": {
+ "version": "1.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^5.1.0"
+ }
},
- "yargs": {
- "version": "17.6.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz",
- "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==",
- "requires": {
- "cliui": "^8.0.1",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.3",
- "y18n": "^5.0.5",
- "yargs-parser": "^21.1.1"
+ "node_modules/parse-semver/node_modules/semver": {
+ "version": "5.7.2",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
}
},
- "yargs-parser": {
- "version": "21.1.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
- "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw=="
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "domhandler": "^5.0.2",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/path-equal": {
+ "version": "1.2.5",
+ "license": "MIT"
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "yn": {
+ "node_modules/path-key": {
"version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q=="
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/path-scurry": {
+ "version": "1.10.2",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "10.2.0",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "14 || >=16.14"
+ }
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pend": {
+ "version": "1.2.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pluralize": {
+ "version": "7.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/possible-typed-array-names": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/prebuild-install": {
+ "version": "7.1.2",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "detect-libc": "^2.0.0",
+ "expand-template": "^2.0.3",
+ "github-from-package": "0.0.0",
+ "minimist": "^1.2.3",
+ "mkdirp-classic": "^0.5.3",
+ "napi-build-utils": "^1.0.1",
+ "node-abi": "^3.3.0",
+ "pump": "^3.0.0",
+ "rc": "^1.2.7",
+ "simple-get": "^4.0.0",
+ "tar-fs": "^2.0.0",
+ "tunnel-agent": "^0.6.0"
+ },
+ "bin": {
+ "prebuild-install": "bin.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/process": {
+ "version": "0.11.10",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "license": "MIT"
+ },
+ "node_modules/promise-timeout": {
+ "version": "1.3.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pump": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/qs": {
+ "version": "6.12.1",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/quicktype": {
+ "resolved": "packages/quicktype-vscode",
+ "link": true
+ },
+ "node_modules/quicktype-core": {
+ "resolved": "packages/quicktype-core",
+ "link": true
+ },
+ "node_modules/quicktype-graphql-input": {
+ "resolved": "packages/quicktype-graphql-input",
+ "link": true
+ },
+ "node_modules/quicktype-typescript-input": {
+ "resolved": "packages/quicktype-typescript-input",
+ "link": true
+ },
+ "node_modules/quote-stream": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-equal": "0.0.1",
+ "minimist": "^1.1.3",
+ "through2": "^2.0.0"
+ },
+ "bin": {
+ "quote-stream": "bin/cmd.js"
+ }
+ },
+ "node_modules/randombytes": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "^5.1.0"
+ }
+ },
+ "node_modules/rc": {
+ "version": "1.2.8",
+ "dev": true,
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
+ "optional": true,
+ "dependencies": {
+ "deep-extend": "^0.6.0",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "bin": {
+ "rc": "cli.js"
+ }
+ },
+ "node_modules/rc/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/read": {
+ "version": "1.0.7",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "mute-stream": "~0.0.4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "4.5.2",
+ "license": "MIT",
+ "dependencies": {
+ "abort-controller": "^3.0.0",
+ "buffer": "^6.0.3",
+ "events": "^3.3.0",
+ "process": "^0.11.10",
+ "string_decoder": "^1.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/readable-stream/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/readable-stream/node_modules/string_decoder": {
+ "version": "1.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/rechoir": {
+ "version": "0.6.2",
+ "dev": true,
+ "dependencies": {
+ "resolve": "^1.1.6"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.5.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.6",
+ "define-properties": "^1.2.1",
+ "es-errors": "^1.3.0",
+ "set-function-name": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.8",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz",
+ "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.13.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "license": "MIT"
+ },
+ "node_modules/safe-stable-stringify": {
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz",
+ "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "license": "MIT"
+ },
+ "node_modules/sax": {
+ "version": "1.3.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/semver": {
+ "version": "7.6.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/serialize-javascript": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "randombytes": "^2.1.0"
+ }
+ },
+ "node_modules/set-function-length": {
+ "version": "1.2.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/set-function-name": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "functions-have-names": "^1.2.3",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setimmediate": {
+ "version": "1.0.5",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/shallow-copy": {
+ "version": "0.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shelljs": {
+ "version": "0.8.5",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "glob": "^7.0.0",
+ "interpret": "^1.0.0",
+ "rechoir": "^0.6.2"
+ },
+ "bin": {
+ "shjs": "bin/shjs"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/simple-concat": {
+ "version": "1.0.1",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "optional": true
+ },
+ "node_modules/simple-get": {
+ "version": "4.0.1",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "decompress-response": "^6.0.0",
+ "once": "^1.3.1",
+ "simple-concat": "^1.0.0"
+ }
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/static-eval": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "escodegen": "^2.1.0"
+ }
+ },
+ "node_modules/static-eval/node_modules/escodegen": {
+ "version": "2.1.0",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/static-eval/node_modules/esprima": {
+ "version": "4.0.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/static-module": {
+ "version": "2.2.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "concat-stream": "~1.6.0",
+ "convert-source-map": "^1.5.1",
+ "duplexer2": "~0.1.4",
+ "escodegen": "~1.9.0",
+ "falafel": "^2.1.0",
+ "has": "^1.0.1",
+ "magic-string": "^0.22.4",
+ "merge-source-map": "1.0.4",
+ "object-inspect": "~1.4.0",
+ "quote-stream": "~1.0.2",
+ "readable-stream": "~2.3.3",
+ "shallow-copy": "~0.0.1",
+ "static-eval": "^2.0.0",
+ "through2": "~2.0.3"
+ }
+ },
+ "node_modules/static-module/node_modules/convert-source-map": {
+ "version": "1.9.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/static-module/node_modules/object-inspect": {
+ "version": "1.4.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/static-module/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/stop-iteration-iterator": {
+ "version": "1.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "internal-slot": "^1.0.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/stream-chain": {
+ "version": "2.2.5",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/stream-json": {
+ "version": "1.8.0",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "stream-chain": "^2.2.5"
+ }
+ },
+ "node_modules/stream-read-all": {
+ "version": "3.0.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string_decoder": {
+ "version": "1.1.1",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
+ "node_modules/string-to-stream": {
+ "version": "3.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "^3.4.0"
+ }
+ },
+ "node_modules/string-to-stream/node_modules/readable-stream": {
+ "version": "3.6.0",
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/table-layout": {
+ "version": "3.0.2",
+ "license": "MIT",
+ "dependencies": {
+ "@75lb/deep-merge": "^1.1.1",
+ "array-back": "^6.2.2",
+ "command-line-args": "^5.2.1",
+ "command-line-usage": "^7.0.0",
+ "stream-read-all": "^3.0.1",
+ "typical": "^7.1.1",
+ "wordwrapjs": "^5.1.0"
+ },
+ "bin": {
+ "table-layout": "bin/cli.js"
+ },
+ "engines": {
+ "node": ">=12.17"
+ }
+ },
+ "node_modules/table-layout/node_modules/array-back": {
+ "version": "6.2.2",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.17"
+ }
+ },
+ "node_modules/table-layout/node_modules/typical": {
+ "version": "7.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.17"
+ }
+ },
+ "node_modules/tapable": {
+ "version": "2.2.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tar-fs": {
+ "version": "2.1.1",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "chownr": "^1.1.1",
+ "mkdirp-classic": "^0.5.2",
+ "pump": "^3.0.0",
+ "tar-stream": "^2.1.4"
+ }
+ },
+ "node_modules/tar-stream": {
+ "version": "2.2.0",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tar-stream/node_modules/readable-stream": {
+ "version": "3.6.2",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/test-exclude": {
+ "version": "6.0.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/text-table": {
+ "version": "0.2.0",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/through2": {
+ "version": "2.0.5",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "~2.3.6",
+ "xtend": "~4.0.1"
+ }
+ },
+ "node_modules/through2/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/tiny-inflate": {
+ "version": "1.0.2",
+ "license": "MIT"
+ },
+ "node_modules/tmp": {
+ "version": "0.2.3",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.14"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tr46": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz",
+ "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==",
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^2.3.0"
+ },
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/ts-api-utils": {
+ "version": "1.3.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=16"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.2.0"
+ }
+ },
+ "node_modules/ts-node": {
+ "version": "10.9.2",
+ "license": "MIT",
+ "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"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tunnel": {
+ "version": "0.0.6",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.6.11 <=0.7.0 || >=0.7.3"
+ }
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "dev": true,
+ "license": "Apache-2.0",
+ "optional": true,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.20.2",
+ "dev": true,
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typed-rest-client": {
+ "version": "1.8.11",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "qs": "^6.9.1",
+ "tunnel": "0.0.6",
+ "underscore": "^1.12.1"
+ }
+ },
+ "node_modules/typedarray": {
+ "version": "0.0.6",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/typescript": {
+ "version": "5.8.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz",
+ "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/typical": {
+ "version": "4.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/uc.micro": {
+ "version": "1.0.6",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/underscore": {
+ "version": "1.13.6",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/undici-types": {
+ "version": "6.21.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz",
+ "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==",
+ "license": "MIT"
+ },
+ "node_modules/unicode-properties": {
+ "version": "1.4.1",
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.0",
+ "unicode-trie": "^2.0.0"
+ }
+ },
+ "node_modules/unicode-properties/node_modules/pako": {
+ "version": "0.2.9",
+ "license": "MIT"
+ },
+ "node_modules/unicode-properties/node_modules/unicode-trie": {
+ "version": "2.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "pako": "^0.2.5",
+ "tiny-inflate": "^1.0.0"
+ }
+ },
+ "node_modules/unicode-trie": {
+ "version": "0.3.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "pako": "^0.2.5",
+ "tiny-inflate": "^1.0.0"
+ }
+ },
+ "node_modules/unicode-trie/node_modules/pako": {
+ "version": "0.2.9",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/urijs": {
+ "version": "1.19.11",
+ "license": "MIT"
+ },
+ "node_modules/url-join": {
+ "version": "4.0.1",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "license": "MIT"
+ },
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "license": "MIT"
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "9.2.0",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.25",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/vlq": {
+ "version": "0.2.3",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/watch": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "exec-sh": "^0.2.0",
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "watch": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.1.95"
+ }
+ },
+ "node_modules/webidl-conversions": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz",
+ "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/whatwg-fetch": {
+ "version": "3.6.2",
+ "license": "MIT"
+ },
+ "node_modules/whatwg-url": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-13.0.0.tgz",
+ "integrity": "sha512-9WWbymnqj57+XEuqADHrCJ2eSXzn8WXIW/YSGaZtb2WKAInQ6CHfaUUcTyyver0p8BDg5StLQq8h1vtZuwmOig==",
+ "license": "MIT",
+ "dependencies": {
+ "tr46": "^4.1.1",
+ "webidl-conversions": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/which": {
+ "version": "2.0.2",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/which-boxed-primitive": {
+ "version": "1.0.2",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-bigint": "^1.0.1",
+ "is-boolean-object": "^1.1.0",
+ "is-number-object": "^1.0.4",
+ "is-string": "^1.0.5",
+ "is-symbol": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-collection": {
+ "version": "1.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.15",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.7",
+ "call-bind": "^1.0.7",
+ "for-each": "^0.3.3",
+ "gopd": "^1.0.1",
+ "has-tostringtag": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "license": "MIT"
+ },
+ "node_modules/wordwrapjs": {
+ "version": "5.1.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12.17"
+ }
+ },
+ "node_modules/workerpool": {
+ "version": "6.2.1",
+ "dev": true,
+ "license": "Apache-2.0"
+ },
+ "node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/color-convert": {
+ "version": "2.0.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/color-convert": {
+ "version": "2.0.1",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "license": "ISC"
+ },
+ "node_modules/xml2js": {
+ "version": "0.5.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "sax": ">=0.6.0",
+ "xmlbuilder": "~11.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/xmlbuilder": {
+ "version": "11.0.1",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/yaml": {
+ "version": "2.4.1",
+ "license": "ISC",
+ "bin": {
+ "yaml": "bin.mjs"
+ },
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/yargs": {
+ "version": "17.6.2",
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-unparser": {
+ "version": "2.0.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "camelcase": "^6.0.0",
+ "decamelize": "^4.0.0",
+ "flat": "^5.0.2",
+ "is-plain-obj": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yauzl": {
+ "version": "2.10.0",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3",
+ "fd-slicer": "~1.1.0"
+ }
+ },
+ "node_modules/yazl": {
+ "version": "2.5.1",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-crc32": "~0.2.3"
+ }
+ },
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "packages/quicktype-core": {
+ "version": "18.0.15",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@glideapps/ts-necessities": "2.2.3",
+ "browser-or-node": "^3.0.0",
+ "collection-utils": "^1.0.1",
+ "cross-fetch": "^4.0.0",
+ "is-url": "^1.2.4",
+ "js-base64": "^3.7.7",
+ "lodash": "^4.17.21",
+ "pako": "^1.0.6",
+ "pluralize": "^8.0.0",
+ "readable-stream": "4.5.2",
+ "unicode-properties": "^1.4.1",
+ "urijs": "^1.19.1",
+ "wordwrap": "^1.0.0",
+ "yaml": "^2.4.1"
+ },
+ "devDependencies": {
+ "@types/browser-or-node": "^1.3.2",
+ "@types/is-url": "^1.2.32",
+ "@types/node": "~22.14.0",
+ "@types/pako": "^1.0.0",
+ "@types/pluralize": "0.0.30",
+ "@types/readable-stream": "4.0.10",
+ "@types/unicode-properties": "^1.3.0",
+ "@types/urijs": "^1.19.25",
+ "@types/wordwrap": "^1.0.3",
+ "command-line-args": "^5.2.1",
+ "typescript": "~5.8.3"
+ }
+ },
+ "packages/quicktype-core/node_modules/pluralize": {
+ "version": "8.0.0",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "packages/quicktype-graphql-input": {
+ "version": "18.0.15",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "collection-utils": "^1.0.1",
+ "graphql": "^0.11.7",
+ "quicktype-core": "file:../quicktype-core"
+ },
+ "devDependencies": {
+ "@types/graphql": "^0.11.7",
+ "@types/node": "~22.14.0",
+ "typescript": "~5.8.3"
+ }
+ },
+ "packages/quicktype-typescript-input": {
+ "version": "18.0.15",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@mark.probst/typescript-json-schema": "0.55.0",
+ "quicktype-core": "file:../quicktype-core",
+ "typescript": "4.9.5"
+ },
+ "devDependencies": {
+ "@types/node": "~22.14.0"
+ }
+ },
+ "packages/quicktype-typescript-input/node_modules/@glideapps/ts-necessities": {
+ "version": "2.1.2",
+ "license": "MIT"
+ },
+ "packages/quicktype-typescript-input/node_modules/browser-or-node": {
+ "version": "1.3.0",
+ "license": "MIT"
+ },
+ "packages/quicktype-typescript-input/node_modules/isomorphic-fetch": {
+ "version": "2.2.1",
+ "license": "MIT",
+ "dependencies": {
+ "node-fetch": "^1.0.1",
+ "whatwg-fetch": ">=0.10.0"
+ }
+ },
+ "packages/quicktype-typescript-input/node_modules/js-base64": {
+ "version": "2.6.4",
+ "license": "BSD-3-Clause"
+ },
+ "packages/quicktype-typescript-input/node_modules/node-fetch": {
+ "version": "1.7.3",
+ "license": "MIT",
+ "dependencies": {
+ "encoding": "^0.1.11",
+ "is-stream": "^1.0.1"
+ }
+ },
+ "packages/quicktype-typescript-input/node_modules/quicktype-core": {
+ "version": "20.0.0",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@glideapps/ts-necessities": "2.1.2",
+ "@types/urijs": "^1.19.8",
+ "browser-or-node": "^1.2.1",
+ "collection-utils": "^1.0.1",
+ "is-url": "^1.2.4",
+ "isomorphic-fetch": "^2.2.1",
+ "js-base64": "^2.4.3",
+ "lodash": "^4.17.21",
+ "pako": "^1.0.6",
+ "pluralize": "^7.0.0",
+ "readable-stream": "2.3.7",
+ "unicode-properties": "^1.4.1",
+ "urijs": "^1.19.1",
+ "wordwrap": "^1.0.0",
+ "yaml": "^1.5.0"
+ }
+ },
+ "packages/quicktype-typescript-input/node_modules/readable-stream": {
+ "version": "2.3.7",
+ "license": "MIT",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "packages/quicktype-typescript-input/node_modules/typescript": {
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=4.2.0"
+ }
+ },
+ "packages/quicktype-typescript-input/node_modules/yaml": {
+ "version": "1.10.2",
+ "license": "ISC",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "packages/quicktype-vscode": {
+ "name": "quicktype",
+ "version": "23.0.122",
+ "devDependencies": {
+ "@types/mocha": "^10.0.6",
+ "@types/node": "~22.14.0",
+ "@types/node-persist": "^3.1.8",
+ "@types/readable-stream": "^4.0.10",
+ "@types/vscode": "^1.87.0",
+ "@typescript-eslint/eslint-plugin": "^7.0.2",
+ "@typescript-eslint/parser": "^7.7.0",
+ "@vscode/test-cli": "^0.0.6",
+ "@vscode/test-electron": "^2.3.9",
+ "@vscode/vsce": "^2.25.0",
+ "eslint": "^8.56.0",
+ "node-persist": "^4.0.1",
+ "quicktype-core": "file:../quicktype-core",
+ "quicktype-typescript-input": "file:../quicktype-typescript-input",
+ "typescript": "~5.8.3",
+ "unicode-properties": "github:quicktype/unicode-properties#dist"
+ },
+ "engines": {
+ "vscode": "^1.87.0"
+ }
+ },
+ "packages/quicktype-vscode/node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.8.0.tgz",
+ "integrity": "sha512-gFTT+ezJmkwutUPmB0skOj3GZJtlEGnlssems4AjkVweUPGj7jRwwqg0Hhg7++kPGJqKtTYx+R05Ftww372aIg==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "7.8.0",
+ "@typescript-eslint/type-utils": "7.8.0",
+ "@typescript-eslint/utils": "7.8.0",
+ "@typescript-eslint/visitor-keys": "7.8.0",
+ "debug": "^4.3.4",
+ "graphemer": "^1.4.0",
+ "ignore": "^5.3.1",
+ "natural-compare": "^1.4.0",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^7.0.0",
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "packages/quicktype-vscode/node_modules/@typescript-eslint/parser": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.8.0.tgz",
+ "integrity": "sha512-KgKQly1pv0l4ltcftP59uQZCi4HUYswCLbTqVZEJu7uLX8CTLyswqMLqLN+2QFz4jCptqWVV4SB7vdxcH2+0kQ==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "7.8.0",
+ "@typescript-eslint/types": "7.8.0",
+ "@typescript-eslint/typescript-estree": "7.8.0",
+ "@typescript-eslint/visitor-keys": "7.8.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "packages/quicktype-vscode/node_modules/@typescript-eslint/scope-manager": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.8.0.tgz",
+ "integrity": "sha512-viEmZ1LmwsGcnr85gIq+FCYI7nO90DVbE37/ll51hjv9aG+YZMb4WDE2fyWpUR4O/UrhGRpYXK/XajcGTk2B8g==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.8.0",
+ "@typescript-eslint/visitor-keys": "7.8.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "packages/quicktype-vscode/node_modules/@typescript-eslint/type-utils": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.8.0.tgz",
+ "integrity": "sha512-H70R3AefQDQpz9mGv13Uhi121FNMh+WEaRqcXTX09YEDky21km4dV1ZXJIp8QjXc4ZaVkXVdohvWDzbnbHDS+A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "7.8.0",
+ "@typescript-eslint/utils": "7.8.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "packages/quicktype-vscode/node_modules/@typescript-eslint/types": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.8.0.tgz",
+ "integrity": "sha512-wf0peJ+ZGlcH+2ZS23aJbOv+ztjeeP8uQ9GgwMJGVLx/Nj9CJt17GWgWWoSmoRVKAX2X+7fzEnAjxdvK2gqCLw==",
+ "dev": true,
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "packages/quicktype-vscode/node_modules/@typescript-eslint/typescript-estree": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.8.0.tgz",
+ "integrity": "sha512-5pfUCOwK5yjPaJQNy44prjCwtr981dO8Qo9J9PwYXZ0MosgAbfEMB008dJ5sNo3+/BN6ytBPuSvXUg9SAqB0dg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.8.0",
+ "@typescript-eslint/visitor-keys": "7.8.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^1.3.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "packages/quicktype-vscode/node_modules/@typescript-eslint/utils": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.8.0.tgz",
+ "integrity": "sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.4.0",
+ "@types/json-schema": "^7.0.15",
+ "@types/semver": "^7.5.8",
+ "@typescript-eslint/scope-manager": "7.8.0",
+ "@typescript-eslint/types": "7.8.0",
+ "@typescript-eslint/typescript-estree": "7.8.0",
+ "semver": "^7.6.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.56.0"
+ }
+ },
+ "packages/quicktype-vscode/node_modules/@typescript-eslint/visitor-keys": {
+ "version": "7.8.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.8.0.tgz",
+ "integrity": "sha512-q4/gibTNBQNA0lGyYQCmWRS5D15n8rXh4QjK3KV+MBPlTYHpfBUT3D3PaPR/HeNiI9W6R7FvlkcGhNyAoP+caA==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "7.8.0",
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^18.18.0 || >=20.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "packages/quicktype-vscode/node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "packages/quicktype-vscode/node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "packages/quicktype-vscode/node_modules/unicode-properties": {
+ "version": "1.1.0",
+ "resolved": "git+ssh://git@github.com/quicktype/unicode-properties.git#d5fddfea1ef9d05c6479a979e225476063e13f52",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "brfs": "^1.4.0",
+ "unicode-trie": "^0.3.0"
+ }
}
}
}
diff --git a/package.json b/package.json
index 70e7cecef..fb19d8882 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "quicktype",
- "version": "23.0.0",
+ "version": "23.2.0",
"license": "Apache-2.0",
"main": "dist/index.js",
"types": "dist/index.d.ts",
@@ -10,19 +10,22 @@
},
"scripts": {
"pub": "script/publish.sh",
- "build": "npm run build --workspaces --if-present && tsc",
+ "build": "npm run clean && npm run build --workspaces --if-present && tsc",
"test": "script/test",
"start": "script/watch",
- "clean": "rm -rf dist node_modules *~ packages/*/{dist,node_modules}",
- "debug": "node --inspect-brk --max-old-space-size=4096 ./dist/index.js"
+ "clean": "rm -rf dist *~ packages/*/{dist,out}",
+ "debug": "node --inspect-brk --max-old-space-size=4096 ./dist/index.js",
+ "lint": "eslint src/** packages/*/src/**",
+ "lint:fix": "eslint --fix src/** packages/*/src/**"
},
"workspaces": [
"./packages/quicktype-core",
"./packages/quicktype-graphql-input",
- "./packages/quicktype-typescript-input"
+ "./packages/quicktype-typescript-input",
+ "./packages/quicktype-vscode"
],
"dependencies": {
- "@glideapps/ts-necessities": "^2.1.3",
+ "@glideapps/ts-necessities": "^2.2.3",
"chalk": "^4.1.2",
"collection-utils": "^1.0.1",
"command-line-args": "^5.2.1",
@@ -30,38 +33,46 @@
"cross-fetch": "^4.0.0",
"graphql": "^0.11.7",
"lodash": "^4.17.21",
- "moment": "^2.29.4",
+ "moment": "^2.30.1",
"quicktype-core": "20.0.12",
"quicktype-graphql-input": "20.0.2",
"quicktype-typescript-input": "20.0.2",
- "readable-stream": "^4.4.2",
+ "readable-stream": "^4.5.2",
"stream-json": "1.8.0",
"string-to-stream": "^3.0.1",
- "typescript": "4.9.5"
+ "typescript": "~5.8.3"
},
"devDependencies": {
+ "@biomejs/biome": "^1.9.4",
"@tsconfig/node18": "^1.0.1",
"@types/command-line-args": "^5.2.0",
- "@types/command-line-usage": "^5.0.2",
+ "@types/command-line-usage": "^5.0.4",
"@types/graphql": "^0.11.7",
- "@types/lodash": "^4.14.197",
+ "@types/lodash": "^4.17.0",
"@types/semver": "^7.5.0",
- "@types/shelljs": "^0.8.12",
+ "@types/shelljs": "^0.8.15",
"@types/stream-json": "^1.7.3",
- "@types/urijs": "^1.19.19",
+ "@types/urijs": "^1.19.25",
+ "@types/wordwrap": "^1.0.3",
+ "@typescript-eslint/eslint-plugin": "^6.3.0",
+ "@typescript-eslint/parser": "^6.3.0",
"ajv": "^5.5.2",
- "deep-equal": "^2.2.2",
+ "deep-equal": "^2.2.3",
+ "esbuild": "^0.20.2",
"exit": "^0.1.2",
- "prettier": "^3.0.1",
"promise-timeout": "^1.3.0",
"semver": "^7.5.4",
"shelljs": "^0.8.5",
- "ts-node": "^10.9.1",
- "tslint": "^6.1.3",
+ "ts-node": "^10.9.2",
"watch": "^1.0.2"
},
- "files": [
- "dist"
- ],
+ "overrides": {
+ "cross-fetch": {
+ "node-fetch": {
+ "whatwg-url": "^13.0.0"
+ }
+ }
+ },
+ "files": ["dist"],
"bin": "dist/index.js"
}
diff --git a/packages/quicktype-core/env.sh b/packages/quicktype-core/env.sh
new file mode 100755
index 000000000..9d14844ae
--- /dev/null
+++ b/packages/quicktype-core/env.sh
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+
+if [[ $PUBLISH == true ]]; then
+ echo 'HAS PUBLISH, exit'
+ exit 0
+fi
+
+if [[ $CI ]]; then
+ if [[ "$OSTYPE" == "darwin"* ]]; then
+ grep -rl '$fetch' src | xargs sed -i '' -e 's/$fetch/$fetch.ci/g'
+ else
+ grep -rl '$fetch' src | xargs sed -i -e 's/$fetch/$fetch.ci/g'
+ fi
+fi
diff --git a/packages/quicktype-core/package.json b/packages/quicktype-core/package.json
index 1ca3eb970..769199b79 100644
--- a/packages/quicktype-core/package.json
+++ b/packages/quicktype-core/package.json
@@ -8,41 +8,45 @@
"repository": "https://github.com/quicktype/quicktype",
"scripts": {
"clean": "rm -rf dist node_modules *~",
- "build": "tsc",
- "tslint": "tslint --project ."
+ "build": "./env.sh && tsc"
},
"dependencies": {
- "@glideapps/ts-necessities": "2.1.3",
- "@types/urijs": "^1.19.19",
- "browser-or-node": "^2.1.1",
+ "@glideapps/ts-necessities": "2.2.3",
+ "browser-or-node": "^3.0.0",
"collection-utils": "^1.0.1",
- "is-url": "^1.2.4",
"cross-fetch": "^4.0.0",
- "js-base64": "^3.7.5",
+ "is-url": "^1.2.4",
+ "js-base64": "^3.7.7",
"lodash": "^4.17.21",
"pako": "^1.0.6",
"pluralize": "^8.0.0",
- "readable-stream": "4.4.2",
+ "readable-stream": "4.5.2",
"unicode-properties": "^1.4.1",
"urijs": "^1.19.1",
"wordwrap": "^1.0.0",
- "yaml": "^2.3.1"
+ "yaml": "^2.4.1"
},
"devDependencies": {
- "@types/browser-or-node": "^1.3.0",
- "@types/js-base64": "^3.3.1",
- "@types/node": "18.14.0",
+ "@types/browser-or-node": "^1.3.2",
+ "@types/is-url": "^1.2.32",
+ "@types/node": "~22.14.0",
"@types/pako": "^1.0.0",
"@types/pluralize": "0.0.30",
- "@types/readable-stream": "2.3.15",
+ "@types/readable-stream": "4.0.10",
"@types/unicode-properties": "^1.3.0",
- "@types/yaml": "^1.9.7",
- "tslint": "^6.1.3",
- "typescript": "4.9.5"
+ "@types/urijs": "^1.19.25",
+ "@types/wordwrap": "^1.0.3",
+ "command-line-args": "^5.2.1",
+ "typescript": "~5.8.3"
+ },
+ "overrides": {
+ "cross-fetch": {
+ "node-fetch": {
+ "whatwg-url": "^13.0.0"
+ }
+ }
},
- "files": [
- "dist"
- ],
+ "files": ["dist"],
"browser": {
"fs": false
}
diff --git a/packages/quicktype-core/src/Annotation.ts b/packages/quicktype-core/src/Annotation.ts
index 8a912f305..61431cde0 100644
--- a/packages/quicktype-core/src/Annotation.ts
+++ b/packages/quicktype-core/src/Annotation.ts
@@ -1,14 +1,15 @@
+// eslint-disable-next-line @typescript-eslint/no-extraneous-class
export class AnnotationData {}
export class IssueAnnotationData extends AnnotationData {
- constructor(readonly message: string) {
+ public constructor(public readonly message: string) {
super();
}
}
export const anyTypeIssueAnnotation = new IssueAnnotationData(
- "quicktype cannot infer this type because there is no data about it in the input."
+ "quicktype cannot infer this type because there is no data about it in the input.",
);
export const nullTypeIssueAnnotation = new IssueAnnotationData(
- "The only value for this in the input is null, which means you probably need a more complete input sample."
+ "The only value for this in the input is null, which means you probably need a more complete input sample.",
);
diff --git a/packages/quicktype-core/src/ConvenienceRenderer.ts b/packages/quicktype-core/src/ConvenienceRenderer.ts
index 774906783..41ae7e4dd 100644
--- a/packages/quicktype-core/src/ConvenienceRenderer.ts
+++ b/packages/quicktype-core/src/ConvenienceRenderer.ts
@@ -1,31 +1,84 @@
import {
- setUnion,
- setFilter,
iterableEnumerate,
iterableSome,
mapFilter,
- mapSortBy,
mapFilterMap,
- mapSome
+ mapSome,
+ mapSortBy,
+ setFilter,
+ setUnion,
} from "collection-utils";
+import _wordwrap from "wordwrap";
-import { Type, ClassType, EnumType, UnionType, TypeKind, ClassProperty, MapType, ObjectType } from "./Type";
-import { separateNamedTypes, nullableFromUnion, matchTypeExhaustive, isNamedType } from "./TypeUtils";
-import { Namespace, Name, Namer, FixedName, SimpleName, DependencyName, keywordNamespace } from "./Naming";
-import { Renderer, BlankLineConfig, RenderContext, ForEachPosition } from "./Renderer";
-import { defined, panic, nonNull, assert } from "./support/Support";
-import { trimEnd } from "./support/Strings";
-import { Sourcelike, sourcelikeToSource, serializeRenderResult } from "./Source";
-
-import { declarationsForGraph, DeclarationIR, cycleBreakerTypesForGraph, Declaration } from "./DeclarationIR";
-import { TypeAttributeStoreView } from "./TypeGraph";
+import {
+ enumCaseNames,
+ getAccessorName,
+ objectPropertyNames,
+ unionMemberName,
+} from "./attributes/AccessorNames";
+import {
+ descriptionTypeAttributeKind,
+ propertyDescriptionsTypeAttributeKind,
+} from "./attributes/Description";
import { TypeAttributeKind } from "./attributes/TypeAttributes";
-import { descriptionTypeAttributeKind, propertyDescriptionsTypeAttributeKind } from "./attributes/Description";
-import { enumCaseNames, objectPropertyNames, unionMemberName, getAccessorName } from "./attributes/AccessorNames";
-import { transformationForType, followTargetType, Transformation } from "./Transformers";
-import { TargetLanguage } from "./TargetLanguage";
+import {
+ type Declaration,
+ type DeclarationIR,
+ cycleBreakerTypesForGraph,
+ declarationsForGraph,
+} from "./DeclarationIR";
+import {
+ DependencyName,
+ FixedName,
+ type Name,
+ type Namer,
+ Namespace,
+ SimpleName,
+ keywordNamespace,
+} from "./Naming";
+import {
+ type BlankLineConfig,
+ type ForEachPosition,
+ type RenderContext,
+ Renderer,
+} from "./Renderer";
+import {
+ type Sourcelike,
+ serializeRenderResult,
+ sourcelikeToSource,
+} from "./Source";
+import {
+ type Comment,
+ type CommentOptions,
+ isStringComment,
+} from "./support/Comments";
+import { trimEnd } from "./support/Strings";
+import { assert, defined, nonNull, panic } from "./support/Support";
+import type { TargetLanguage } from "./TargetLanguage";
+import {
+ type Transformation,
+ followTargetType,
+ transformationForType,
+} from "./Transformers";
+import {
+ type ClassProperty,
+ ClassType,
+ EnumType,
+ MapType,
+ ObjectType,
+ type Type,
+ type TypeKind,
+ UnionType,
+} from "./Type";
+import { TypeAttributeStoreView } from "./Type/TypeGraph";
+import {
+ isNamedType,
+ matchTypeExhaustive,
+ nullableFromUnion,
+ separateNamedTypes,
+} from "./Type/TypeUtils";
-const wordWrap: (s: string) => string = require("wordwrap")(90);
+const wordWrap: (s: string) => string = _wordwrap(90);
export const topLevelNameOrder = 1;
@@ -40,55 +93,92 @@ const assignedEnumCaseNameOrder = 10;
const unionMemberNameOrder = 40;
-function splitDescription(descriptions: Iterable | undefined): string[] | undefined {
+function splitDescription(
+ descriptions: Iterable | undefined,
+): string[] | undefined {
if (descriptions === undefined) return undefined;
const description = Array.from(descriptions).join("\n\n").trim();
if (description === "") return undefined;
return wordWrap(description)
.split("\n")
- .map(l => l.trim());
+ .map((l) => l.trim());
}
-export type ForbiddenWordsInfo = { names: (Name | string)[]; includeGlobalForbidden: boolean };
+export interface ForbiddenWordsInfo {
+ includeGlobalForbidden: boolean;
+ names: Array;
+}
const assignedNameAttributeKind = new TypeAttributeKind("assignedName");
-const assignedPropertyNamesAttributeKind = new TypeAttributeKind>("assignedPropertyNames");
-const assignedMemberNamesAttributeKind = new TypeAttributeKind>("assignedMemberNames");
-const assignedCaseNamesAttributeKind = new TypeAttributeKind>("assignedCaseNames");
+const assignedPropertyNamesAttributeKind = new TypeAttributeKind<
+ ReadonlyMap
+>("assignedPropertyNames");
+const assignedMemberNamesAttributeKind = new TypeAttributeKind<
+ ReadonlyMap
+>("assignedMemberNames");
+const assignedCaseNamesAttributeKind = new TypeAttributeKind<
+ ReadonlyMap
+>("assignedCaseNames");
export abstract class ConvenienceRenderer extends Renderer {
private _globalForbiddenNamespace: Namespace | undefined;
+
private _otherForbiddenNamespaces: Map | undefined;
+
private _globalNamespace: Namespace | undefined;
+
private _nameStoreView: TypeAttributeStoreView | undefined;
- private _propertyNamesStoreView: TypeAttributeStoreView> | undefined;
- private _memberNamesStoreView: TypeAttributeStoreView> | undefined;
- private _caseNamesStoreView: TypeAttributeStoreView> | undefined;
+
+ private _propertyNamesStoreView:
+ | TypeAttributeStoreView>
+ | undefined;
+
+ private _memberNamesStoreView:
+ | TypeAttributeStoreView>
+ | undefined;
+
+ private _caseNamesStoreView:
+ | TypeAttributeStoreView>
+ | undefined;
+
private _namesForTransformations: Map | undefined;
private _namedTypeNamer: Namer | undefined;
- // @ts-ignore: FIXME: Make this `Namer | undefined`
+
+ // @ts-expect-error: FIXME: Make this `Namer | undefined`
private _unionMemberNamer: Namer | null;
- // @ts-ignore: FIXME: Make this `Namer | undefined`
+
+ // @ts-expect-error: FIXME: Make this `Namer | undefined`
private _enumCaseNamer: Namer | null;
private _declarationIR: DeclarationIR | undefined;
- private _namedTypes: ReadonlyArray | undefined;
+
+ private _namedTypes: readonly Type[] | undefined;
+
private _namedObjects: Set | undefined;
+
private _namedEnums: Set | undefined;
+
private _namedUnions: Set | undefined;
+
private _haveUnions: boolean | undefined;
+
private _haveMaps: boolean | undefined;
+
private _haveOptionalProperties: boolean | undefined;
+
private _cycleBreakerTypes?: Set | undefined;
private _alphabetizeProperties = false;
- constructor(targetLanguage: TargetLanguage, renderContext: RenderContext) {
+ public constructor(
+ targetLanguage: TargetLanguage,
+ renderContext: RenderContext,
+ ) {
super(targetLanguage, renderContext);
}
- get topLevels(): ReadonlyMap {
+ public get topLevels(): ReadonlyMap {
return this.typeGraph.topLevels;
}
@@ -99,7 +189,7 @@ export abstract class ConvenienceRenderer extends Renderer {
* that can conflict with that, such as reserved keywords or common type
* names.
*/
- protected forbiddenNamesForGlobalNamespace(): string[] {
+ protected forbiddenNamesForGlobalNamespace(): readonly string[] {
return [];
}
@@ -113,33 +203,54 @@ export abstract class ConvenienceRenderer extends Renderer {
* Note: That doesn't mean that the names in the global namespace will be
* forbidden, too!
*/
- protected forbiddenForObjectProperties(_o: ObjectType, _className: Name): ForbiddenWordsInfo {
+ protected forbiddenForObjectProperties(
+ _o: ObjectType,
+ _className: Name,
+ ): ForbiddenWordsInfo {
return { names: [], includeGlobalForbidden: false };
}
- protected forbiddenForUnionMembers(_u: UnionType, _unionName: Name): ForbiddenWordsInfo {
+ protected forbiddenForUnionMembers(
+ _u: UnionType,
+ _unionName: Name,
+ ): ForbiddenWordsInfo {
return { names: [], includeGlobalForbidden: false };
}
- protected forbiddenForEnumCases(_e: EnumType, _enumName: Name): ForbiddenWordsInfo {
+ protected forbiddenForEnumCases(
+ _e: EnumType,
+ _enumName: Name,
+ ): ForbiddenWordsInfo {
return { names: [], includeGlobalForbidden: false };
}
- protected makeTopLevelDependencyNames(_t: Type, _topLevelName: Name): DependencyName[] {
+ protected makeTopLevelDependencyNames(
+ _t: Type,
+ _topLevelName: Name,
+ ): DependencyName[] {
return [];
}
- protected makeNamedTypeDependencyNames(_t: Type, _name: Name): DependencyName[] {
+ protected makeNamedTypeDependencyNames(
+ _t: Type,
+ _name: Name,
+ ): DependencyName[] {
return [];
}
protected abstract makeNamedTypeNamer(): Namer;
- protected abstract namerForObjectProperty(o: ObjectType, p: ClassProperty): Namer | null;
+ protected abstract namerForObjectProperty(
+ o: ObjectType,
+ p: ClassProperty,
+ ): Namer | null;
protected abstract makeUnionMemberNamer(): Namer | null;
protected abstract makeEnumCaseNamer(): Namer | null;
protected abstract emitSourceStructure(givenOutputFilename: string): void;
- protected makeNameForTransformation(_xf: Transformation, _typeName: Name | undefined): Name | undefined {
+ protected makeNameForTransformation(
+ _xf: Transformation,
+ _typeName: Name | undefined,
+ ): Name | undefined {
return undefined;
}
@@ -147,6 +258,7 @@ export abstract class ConvenienceRenderer extends Renderer {
if (isNamedType(type)) {
return type;
}
+
return undefined;
}
@@ -163,7 +275,9 @@ export abstract class ConvenienceRenderer extends Renderer {
}
protected canBeForwardDeclared(_t: Type): boolean {
- return panic("If needsTypeDeclarationBeforeUse returns true, canBeForwardDeclared must be implemented");
+ return panic(
+ "If needsTypeDeclarationBeforeUse returns true, canBeForwardDeclared must be implemented",
+ );
}
protected unionNeedsName(u: UnionType): boolean {
@@ -179,29 +293,41 @@ export abstract class ConvenienceRenderer extends Renderer {
}
protected descriptionForType(t: Type): string[] | undefined {
- let description = this.typeGraph.attributeStore.tryGet(descriptionTypeAttributeKind, t);
+ const description = this.typeGraph.attributeStore.tryGet(
+ descriptionTypeAttributeKind,
+ t,
+ );
return splitDescription(description);
}
- protected descriptionForClassProperty(o: ObjectType, name: string): string[] | undefined {
- const descriptions = this.typeGraph.attributeStore.tryGet(propertyDescriptionsTypeAttributeKind, o);
+ protected descriptionForClassProperty(
+ o: ObjectType,
+ name: string,
+ ): string[] | undefined {
+ const descriptions = this.typeGraph.attributeStore.tryGet(
+ propertyDescriptionsTypeAttributeKind,
+ o,
+ );
if (descriptions === undefined) return undefined;
return splitDescription(descriptions.get(name));
}
protected setUpNaming(): ReadonlySet {
- this._nameStoreView = new TypeAttributeStoreView(this.typeGraph.attributeStore, assignedNameAttributeKind);
+ this._nameStoreView = new TypeAttributeStoreView(
+ this.typeGraph.attributeStore,
+ assignedNameAttributeKind,
+ );
this._propertyNamesStoreView = new TypeAttributeStoreView(
this.typeGraph.attributeStore,
- assignedPropertyNamesAttributeKind
+ assignedPropertyNamesAttributeKind,
);
this._memberNamesStoreView = new TypeAttributeStoreView(
this.typeGraph.attributeStore,
- assignedMemberNamesAttributeKind
+ assignedMemberNamesAttributeKind,
);
this._caseNamesStoreView = new TypeAttributeStoreView(
this.typeGraph.attributeStore,
- assignedCaseNamesAttributeKind
+ assignedCaseNamesAttributeKind,
);
this._namesForTransformations = new Map();
@@ -209,33 +335,49 @@ export abstract class ConvenienceRenderer extends Renderer {
this._unionMemberNamer = this.makeUnionMemberNamer();
this._enumCaseNamer = this.makeEnumCaseNamer();
- this._globalForbiddenNamespace = keywordNamespace("forbidden", this.forbiddenNamesForGlobalNamespace());
+ this._globalForbiddenNamespace = keywordNamespace(
+ "forbidden",
+ this.forbiddenNamesForGlobalNamespace(),
+ );
this._otherForbiddenNamespaces = new Map();
- this._globalNamespace = new Namespace("global", undefined, [this._globalForbiddenNamespace], []);
- const { objects, enums, unions } = this.typeGraph.allNamedTypesSeparated();
- const namedUnions = setFilter(unions, u => this.unionNeedsName(u));
+ this._globalNamespace = new Namespace(
+ "global",
+ undefined,
+ [this._globalForbiddenNamespace],
+ [],
+ );
+ const { objects, enums, unions } =
+ this.typeGraph.allNamedTypesSeparated();
+ const namedUnions = setFilter(unions, (u) => this.unionNeedsName(u));
for (const [name, t] of this.topLevels) {
- this.nameStoreView.setForTopLevel(name, this.addNameForTopLevel(t, name));
+ this.nameStoreView.setForTopLevel(
+ name,
+ this.addNameForTopLevel(t, name),
+ );
}
+
for (const o of objects) {
const name = this.addNameForNamedType(o);
this.addPropertyNames(o, name);
}
+
for (const e of enums) {
const name = this.addNameForNamedType(e);
this.addEnumCaseNames(e, name);
}
+
for (const u of namedUnions) {
const name = this.addNameForNamedType(u);
this.addUnionMemberNames(u, name);
}
+
for (const t of this.typeGraph.allTypesUnordered()) {
this.addNameForTransformation(t);
}
return setUnion(
[this._globalForbiddenNamespace, this._globalNamespace],
- this._otherForbiddenNamespaces.values()
+ this._otherForbiddenNamespaces.values(),
);
}
@@ -246,8 +388,16 @@ export abstract class ConvenienceRenderer extends Renderer {
}
}
- protected makeNameForTopLevel(_t: Type, givenName: string, _maybeNamedType: Type | undefined): Name {
- return new SimpleName([givenName], defined(this._namedTypeNamer), topLevelNameOrder);
+ protected makeNameForTopLevel(
+ _t: Type,
+ givenName: string,
+ _maybeNamedType: Type | undefined,
+ ): Name {
+ return new SimpleName(
+ [givenName],
+ defined(this._namedTypeNamer),
+ topLevelNameOrder,
+ );
}
private addNameForTopLevel(type: Type, givenName: string): Name {
@@ -267,14 +417,24 @@ export abstract class ConvenienceRenderer extends Renderer {
return name;
}
- private makeNameForType(t: Type, namer: Namer, givenOrder: number, inferredOrder: number): Name {
+ private makeNameForType(
+ t: Type,
+ namer: Namer,
+ givenOrder: number,
+ inferredOrder: number,
+ ): Name {
const names = t.getNames();
const order = names.areInferred ? inferredOrder : givenOrder;
return new SimpleName(names.proposedNames, namer, order);
}
protected makeNameForNamedType(t: Type): Name {
- return this.makeNameForType(t, defined(this._namedTypeNamer), givenNameOrder, inferredNameOrder);
+ return this.makeNameForType(
+ t,
+ defined(this._namedTypeNamer),
+ givenNameOrder,
+ inferredNameOrder,
+ );
}
private addNameForNamedType(type: Type): Name {
@@ -301,6 +461,7 @@ export abstract class ConvenienceRenderer extends Renderer {
if (name === undefined) {
return panic("No name for transformation");
}
+
return name;
}
@@ -310,10 +471,13 @@ export abstract class ConvenienceRenderer extends Renderer {
assert(
defined(this._namesForTransformations).get(t) === undefined,
- "Tried to give two names to the same transformation"
+ "Tried to give two names to the same transformation",
);
- const name = this.makeNameForTransformation(xf, this.nameStoreView.tryGet(xf.targetType));
+ const name = this.makeNameForTransformation(
+ xf,
+ this.nameStoreView.tryGet(xf.targetType),
+ );
if (name === undefined) return;
this.globalNamespace.add(name);
@@ -322,8 +486,11 @@ export abstract class ConvenienceRenderer extends Renderer {
private processForbiddenWordsInfo(
info: ForbiddenWordsInfo,
- namespaceName: string
- ): { forbiddenNames: ReadonlySet; forbiddenNamespaces: ReadonlySet } {
+ namespaceName: string,
+ ): {
+ forbiddenNames: ReadonlySet;
+ forbiddenNamespaces: ReadonlySet;
+ } {
const forbiddenNames: Name[] = [];
const forbiddenStrings: string[] = [];
for (const nameOrString of info.names) {
@@ -333,15 +500,24 @@ export abstract class ConvenienceRenderer extends Renderer {
forbiddenNames.push(nameOrString);
}
}
- let namespace = defined(this._otherForbiddenNamespaces).get(namespaceName);
+
+ let namespace = defined(this._otherForbiddenNamespaces).get(
+ namespaceName,
+ );
if (forbiddenStrings.length > 0 && namespace === undefined) {
namespace = keywordNamespace(namespaceName, forbiddenStrings);
- this._otherForbiddenNamespaces = defined(this._otherForbiddenNamespaces).set(namespaceName, namespace);
+ this._otherForbiddenNamespaces = defined(
+ this._otherForbiddenNamespaces,
+ ).set(namespaceName, namespace);
}
+
let forbiddenNamespaces = new Set();
if (info.includeGlobalForbidden) {
- forbiddenNamespaces = forbiddenNamespaces.add(defined(this._globalForbiddenNamespace));
+ forbiddenNamespaces = forbiddenNamespaces.add(
+ defined(this._globalForbiddenNamespace),
+ );
}
+
if (namespace !== undefined) {
forbiddenNamespaces = forbiddenNamespaces.add(namespace);
}
@@ -354,7 +530,7 @@ export abstract class ConvenienceRenderer extends Renderer {
_className: Name,
p: ClassProperty,
jsonName: string,
- assignedName: string | undefined
+ assignedName: string | undefined,
): Name | undefined {
const namer = this.namerForObjectProperty(o, p);
if (namer === null) return undefined;
@@ -368,8 +544,14 @@ export abstract class ConvenienceRenderer extends Renderer {
// maybe we'll need global properties for some weird language at
// some point.
const alternative = `${o.getCombinedName()}_${jsonName}`;
- const order = assignedName === undefined ? classPropertyNameOrder : assignedClassPropertyNameOrder;
- const names = assignedName === undefined ? [jsonName, alternative] : [assignedName];
+ const order =
+ assignedName === undefined
+ ? classPropertyNameOrder
+ : assignedClassPropertyNameOrder;
+ const names =
+ assignedName === undefined
+ ? [jsonName, alternative]
+ : [assignedName];
return new SimpleName(names, namer, order);
}
@@ -378,72 +560,121 @@ export abstract class ConvenienceRenderer extends Renderer {
_className: Name,
_p: ClassProperty,
_jsonName: string,
- _name: Name
+ _name: Name,
): Name[] {
return [];
}
private addPropertyNames(o: ObjectType, className: Name): void {
- const { forbiddenNames, forbiddenNamespaces } = this.processForbiddenWordsInfo(
- this.forbiddenForObjectProperties(o, className),
- "forbidden-for-properties"
- );
+ const { forbiddenNames, forbiddenNamespaces } =
+ this.processForbiddenWordsInfo(
+ this.forbiddenForObjectProperties(o, className),
+ "forbidden-for-properties",
+ );
let ns: Namespace | undefined;
const accessorNames = objectPropertyNames(o, this.targetLanguage.name);
const names = mapFilterMap(o.getSortedProperties(), (p, jsonName) => {
- const [assignedName, isFixed] = getAccessorName(accessorNames, jsonName);
+ const [assignedName, isFixed] = getAccessorName(
+ accessorNames,
+ jsonName,
+ );
let name: Name | undefined;
if (isFixed) {
name = new FixedName(defined(assignedName));
} else {
- name = this.makeNameForProperty(o, className, p, jsonName, assignedName);
+ name = this.makeNameForProperty(
+ o,
+ className,
+ p,
+ jsonName,
+ assignedName,
+ );
}
+
if (name === undefined) return undefined;
if (ns === undefined) {
- ns = new Namespace(o.getCombinedName(), this.globalNamespace, forbiddenNamespaces, forbiddenNames);
+ ns = new Namespace(
+ o.getCombinedName(),
+ this.globalNamespace,
+ forbiddenNamespaces,
+ forbiddenNames,
+ );
}
+
ns.add(name);
- for (const depName of this.makePropertyDependencyNames(o, className, p, jsonName, name)) {
+ for (const depName of this.makePropertyDependencyNames(
+ o,
+ className,
+ p,
+ jsonName,
+ name,
+ )) {
ns.add(depName);
}
+
return name;
});
defined(this._propertyNamesStoreView).set(o, names);
}
- protected makeNameForUnionMember(u: UnionType, unionName: Name, t: Type): Name {
- const [assignedName, isFixed] = unionMemberName(u, t, this.targetLanguage.name);
+ protected makeNameForUnionMember(
+ u: UnionType,
+ unionName: Name,
+ t: Type,
+ ): Name {
+ const [assignedName, isFixed] = unionMemberName(
+ u,
+ t,
+ this.targetLanguage.name,
+ );
if (isFixed) {
return new FixedName(defined(assignedName));
}
- return new DependencyName(nonNull(this._unionMemberNamer), unionMemberNameOrder, lookup => {
- if (assignedName !== undefined) return assignedName;
- return this.proposeUnionMemberName(u, unionName, t, lookup);
- });
+
+ return new DependencyName(
+ nonNull(this._unionMemberNamer),
+ unionMemberNameOrder,
+ (lookup) => {
+ if (assignedName !== undefined) return assignedName;
+ return this.proposeUnionMemberName(u, unionName, t, lookup);
+ },
+ );
}
private addUnionMemberNames(u: UnionType, unionName: Name): void {
const memberNamer = this._unionMemberNamer;
if (memberNamer === null) return;
- const { forbiddenNames, forbiddenNamespaces } = this.processForbiddenWordsInfo(
- this.forbiddenForUnionMembers(u, unionName),
- "forbidden-for-union-members"
- );
+ const { forbiddenNames, forbiddenNamespaces } =
+ this.processForbiddenWordsInfo(
+ this.forbiddenForUnionMembers(u, unionName),
+ "forbidden-for-union-members",
+ );
let ns: Namespace;
if (this.unionMembersInGlobalNamespace) {
ns = this.globalNamespace;
} else {
- ns = new Namespace(u.getCombinedName(), this.globalNamespace, forbiddenNamespaces, forbiddenNames);
+ ns = new Namespace(
+ u.getCombinedName(),
+ this.globalNamespace,
+ forbiddenNamespaces,
+ forbiddenNames,
+ );
}
- let names = new Map();
+
+ const names = new Map();
for (const t of u.members) {
- const name = this.makeNameForUnionMember(u, unionName, followTargetType(t));
+ const name = this.makeNameForUnionMember(
+ u,
+ unionName,
+ followTargetType(t),
+ );
names.set(t, ns.add(name));
}
+
defined(this._memberNamesStoreView).set(u, names);
}
@@ -451,13 +682,19 @@ export abstract class ConvenienceRenderer extends Renderer {
e: EnumType,
_enumName: Name,
caseName: string,
- assignedName: string | undefined
+ assignedName: string | undefined,
): Name {
// FIXME: See the FIXME in `makeNameForProperty`. We do have global
// enum cases, though (in Go), so this is actually useful already.
const alternative = `${e.getCombinedName()}_${caseName}`;
- const order = assignedName === undefined ? enumCaseNameOrder : assignedEnumCaseNameOrder;
- const names = assignedName === undefined ? [caseName, alternative] : [assignedName];
+ const order =
+ assignedName === undefined
+ ? enumCaseNameOrder
+ : assignedEnumCaseNameOrder;
+ const names =
+ assignedName === undefined
+ ? [caseName, alternative]
+ : [assignedName];
return new SimpleName(names, nonNull(this._enumCaseNamer), order);
}
@@ -465,29 +702,46 @@ export abstract class ConvenienceRenderer extends Renderer {
private addEnumCaseNames(e: EnumType, enumName: Name): void {
if (this._enumCaseNamer === null) return;
- const { forbiddenNames, forbiddenNamespaces } = this.processForbiddenWordsInfo(
- this.forbiddenForEnumCases(e, enumName),
- "forbidden-for-enum-cases"
- );
+ const { forbiddenNames, forbiddenNamespaces } =
+ this.processForbiddenWordsInfo(
+ this.forbiddenForEnumCases(e, enumName),
+ "forbidden-for-enum-cases",
+ );
let ns: Namespace;
if (this.enumCasesInGlobalNamespace) {
ns = this.globalNamespace;
} else {
- ns = new Namespace(e.getCombinedName(), this.globalNamespace, forbiddenNamespaces, forbiddenNames);
+ ns = new Namespace(
+ e.getCombinedName(),
+ this.globalNamespace,
+ forbiddenNamespaces,
+ forbiddenNames,
+ );
}
- let names = new Map();
+
+ const names = new Map();
const accessorNames = enumCaseNames(e, this.targetLanguage.name);
for (const caseName of e.cases) {
- const [assignedName, isFixed] = getAccessorName(accessorNames, caseName);
+ const [assignedName, isFixed] = getAccessorName(
+ accessorNames,
+ caseName,
+ );
let name: Name;
if (isFixed) {
name = new FixedName(defined(assignedName));
} else {
- name = this.makeNameForEnumCase(e, enumName, caseName, assignedName);
+ name = this.makeNameForEnumCase(
+ e,
+ enumName,
+ caseName,
+ assignedName,
+ );
}
+
names.set(caseName, ns.add(name));
}
+
defined(this._caseNamesStoreView).set(e, names);
}
@@ -499,9 +753,12 @@ export abstract class ConvenienceRenderer extends Renderer {
if (propertyNameds.get(n) === undefined) return undefined;
return p.type;
});
- const sortedMap = mapSortBy(filteredMap, (_, n) => defined(names.get(defined(propertyNameds.get(n)))));
+ const sortedMap = mapSortBy(filteredMap, (_, n) =>
+ defined(names.get(defined(propertyNameds.get(n)))),
+ );
return new Set(sortedMap.values());
}
+
return t.getChildren();
}
@@ -539,7 +796,9 @@ export abstract class ConvenienceRenderer extends Renderer {
return this.enums.size > 0;
}
- protected proposedUnionMemberNameForTypeKind(_kind: TypeKind): string | null {
+ protected proposedUnionMemberNameForTypeKind(
+ _kind: TypeKind,
+ ): string | null {
return null;
}
@@ -547,9 +806,11 @@ export abstract class ConvenienceRenderer extends Renderer {
_u: UnionType,
_unionName: Name,
fieldType: Type,
- lookup: (n: Name) => string
+ lookup: (n: Name) => string,
): string {
- const simpleName = this.proposedUnionMemberNameForTypeKind(fieldType.kind);
+ const simpleName = this.proposedUnionMemberNameForTypeKind(
+ fieldType.kind,
+ );
if (simpleName !== null) {
return simpleName;
}
@@ -557,28 +818,29 @@ export abstract class ConvenienceRenderer extends Renderer {
const typeNameForUnionMember = (t: Type): string =>
matchTypeExhaustive(
t,
- _noneType => {
+ (_noneType) => {
return panic("none type should have been replaced");
},
- _anyType => "anything",
- _nullType => "null",
- _boolType => "bool",
- _integerType => "integer",
- _doubleType => "double",
- _stringType => "string",
- arrayType => typeNameForUnionMember(arrayType.items) + "_array",
- classType => lookup(this.nameForNamedType(classType)),
- mapType => typeNameForUnionMember(mapType.values) + "_map",
- objectType => {
+ (_anyType) => "anything",
+ (_nullType) => "null",
+ (_boolType) => "bool",
+ (_integerType) => "integer",
+ (_doubleType) => "double",
+ (_stringType) => "string",
+ (arrayType) =>
+ typeNameForUnionMember(arrayType.items) + "_array",
+ (classType) => lookup(this.nameForNamedType(classType)),
+ (mapType) => typeNameForUnionMember(mapType.values) + "_map",
+ (objectType) => {
assert(
this.targetLanguage.supportsFullObjectType,
- "Object type should have been replaced in `replaceObjectType`"
+ "Object type should have been replaced in `replaceObjectType`",
);
return lookup(this.nameForNamedType(objectType));
},
- _enumType => "enum",
- _unionType => "union",
- transformedType => transformedType.kind.replace("-", "_")
+ (_enumType) => "enum",
+ (_unionType) => "union",
+ (transformedType) => transformedType.kind.replace("-", "_"),
);
return typeNameForUnionMember(fieldType);
@@ -593,7 +855,9 @@ export abstract class ConvenienceRenderer extends Renderer {
}
protected isImplicitCycleBreaker(_t: Type): boolean {
- return panic("A renderer that invokes isCycleBreakerType must implement isImplicitCycleBreaker");
+ return panic(
+ "A renderer that invokes isCycleBreakerType must implement isImplicitCycleBreaker",
+ );
}
protected canBreakCycles(_t: Type): boolean {
@@ -604,17 +868,18 @@ export abstract class ConvenienceRenderer extends Renderer {
if (this._cycleBreakerTypes === undefined) {
this._cycleBreakerTypes = cycleBreakerTypesForGraph(
this.typeGraph,
- s => this.isImplicitCycleBreaker(s),
- s => this.canBreakCycles(s)
+ (s) => this.isImplicitCycleBreaker(s),
+ (s) => this.canBreakCycles(s),
);
}
+
return this._cycleBreakerTypes.has(t);
}
protected forEachTopLevel(
blankLocations: BlankLineConfig,
f: (t: Type, name: Name, position: ForEachPosition) => void,
- predicate?: (t: Type) => boolean
+ predicate?: (t: Type) => boolean,
): boolean {
let topLevels: ReadonlyMap;
if (predicate !== undefined) {
@@ -622,23 +887,27 @@ export abstract class ConvenienceRenderer extends Renderer {
} else {
topLevels = this.topLevels;
}
- return this.forEachWithBlankLines(topLevels, blankLocations, (t, name, pos) =>
- f(t, this.nameStoreView.getForTopLevel(name), pos)
+
+ return this.forEachWithBlankLines(
+ topLevels,
+ blankLocations,
+ (t, name, pos) =>
+ f(t, this.nameStoreView.getForTopLevel(name), pos),
);
}
protected forEachDeclaration(
blankLocations: BlankLineConfig,
- f: (decl: Declaration, position: ForEachPosition) => void
- ) {
+ f: (decl: Declaration, position: ForEachPosition) => void,
+ ): void {
this.forEachWithBlankLines(
iterableEnumerate(defined(this._declarationIR).declarations),
blankLocations,
- (decl, _, pos) => f(decl, pos)
+ (decl, _, pos) => f(decl, pos),
);
}
- setAlphabetizeProperties(value: boolean): void {
+ public setAlphabetizeProperties(value: boolean): void {
this._alphabetizeProperties = value;
}
@@ -654,29 +923,44 @@ export abstract class ConvenienceRenderer extends Renderer {
protected sortClassProperties(
properties: ReadonlyMap,
- propertyNames: ReadonlyMap
+ propertyNames: ReadonlyMap,
): ReadonlyMap {
if (this._alphabetizeProperties) {
- return mapSortBy(properties, (_p: ClassProperty, jsonName: string) => {
- const name = defined(propertyNames.get(jsonName));
- return defined(this.names.get(name));
- });
- } else {
- return properties;
+ return mapSortBy(
+ properties,
+ (_p: ClassProperty, jsonName: string) => {
+ const name = defined(propertyNames.get(jsonName));
+ return defined(this.names.get(name));
+ },
+ );
}
+
+ return properties;
}
protected forEachClassProperty(
o: ObjectType,
blankLocations: BlankLineConfig,
- f: (name: Name, jsonName: string, p: ClassProperty, position: ForEachPosition) => void
+ f: (
+ name: Name,
+ jsonName: string,
+ p: ClassProperty,
+ position: ForEachPosition,
+ ) => void,
): void {
const propertyNames = defined(this._propertyNamesStoreView).get(o);
- const sortedProperties = this.sortClassProperties(o.getProperties(), propertyNames);
- this.forEachWithBlankLines(sortedProperties, blankLocations, (p, jsonName, pos) => {
- const name = defined(propertyNames.get(jsonName));
- f(name, jsonName, p, pos);
- });
+ const sortedProperties = this.sortClassProperties(
+ o.getProperties(),
+ propertyNames,
+ );
+ this.forEachWithBlankLines(
+ sortedProperties,
+ blankLocations,
+ (p, jsonName, pos) => {
+ const name = defined(propertyNames.get(jsonName));
+ f(name, jsonName, p, pos);
+ },
+ );
}
protected nameForUnionMember(u: UnionType, t: Type): Name {
@@ -693,13 +977,17 @@ export abstract class ConvenienceRenderer extends Renderer {
members: ReadonlySet | null,
blankLocations: BlankLineConfig,
sortOrder: ((n: Name, t: Type) => string) | null,
- f: (name: Name, t: Type, position: ForEachPosition) => void
+ f: (name: Name, t: Type, position: ForEachPosition) => void,
): void {
- const iterateMembers = members === null ? u.members : members;
+ const iterateMembers = members ?? u.members;
if (sortOrder === null) {
- sortOrder = n => defined(this.names.get(n));
+ sortOrder = (n): string => defined(this.names.get(n));
}
- const memberNames = mapFilter(defined(this._memberNamesStoreView).get(u), (_, t) => iterateMembers.has(t));
+
+ const memberNames = mapFilter(
+ defined(this._memberNamesStoreView).get(u),
+ (_, t) => iterateMembers.has(t),
+ );
const sortedMemberNames = mapSortBy(memberNames, sortOrder);
this.forEachWithBlankLines(sortedMemberNames, blankLocations, f);
}
@@ -707,56 +995,80 @@ export abstract class ConvenienceRenderer extends Renderer {
protected forEachEnumCase(
e: EnumType,
blankLocations: BlankLineConfig,
- f: (name: Name, jsonName: string, position: ForEachPosition) => void
+ f: (name: Name, jsonName: string, position: ForEachPosition) => void,
): void {
const caseNames = defined(this._caseNamesStoreView).get(e);
- const sortedCaseNames = mapSortBy(caseNames, n => defined(this.names.get(n)));
+ const sortedCaseNames = mapSortBy(caseNames, (n) =>
+ defined(this.names.get(n)),
+ );
this.forEachWithBlankLines(sortedCaseNames, blankLocations, f);
}
protected forEachTransformation(
blankLocations: BlankLineConfig,
- f: (n: Name, t: Type, position: ForEachPosition) => void
+ f: (n: Name, t: Type, position: ForEachPosition) => void,
): void {
- this.forEachWithBlankLines(defined(this._namesForTransformations), blankLocations, f);
+ this.forEachWithBlankLines(
+ defined(this._namesForTransformations),
+ blankLocations,
+ f,
+ );
}
protected forEachSpecificNamedType(
blankLocations: BlankLineConfig,
- types: Iterable<[any, T]>,
- f: (t: T, name: Name, position: ForEachPosition) => void
+ types: Iterable<[T, T]>,
+ f: (t: T, name: Name, position: ForEachPosition) => void,
): void {
- this.forEachWithBlankLines(types, blankLocations, (t, _, pos) => f(t, this.nameForNamedType(t), pos));
+ this.forEachWithBlankLines(types, blankLocations, (t, _, pos) =>
+ f(t, this.nameForNamedType(t), pos),
+ );
}
protected forEachObject(
blankLocations: BlankLineConfig,
f:
- | ((c: ClassType, className: Name, position: ForEachPosition) => void)
- | ((o: ObjectType, objectName: Name, position: ForEachPosition) => void)
+ | ((
+ c: ClassType,
+ className: Name,
+ position: ForEachPosition,
+ ) => void)
+ | ((
+ o: ObjectType,
+ objectName: Name,
+ position: ForEachPosition,
+ ) => void),
): void {
// FIXME: This is ugly.
- this.forEachSpecificNamedType(blankLocations, defined(this._namedObjects).entries(), f as any);
+ this.forEachSpecificNamedType(
+ blankLocations,
+ defined(this._namedObjects).entries(),
+ f,
+ );
}
protected forEachEnum(
blankLocations: BlankLineConfig,
- f: (u: EnumType, enumName: Name, position: ForEachPosition) => void
+ f: (u: EnumType, enumName: Name, position: ForEachPosition) => void,
): void {
this.forEachSpecificNamedType(blankLocations, this.enums.entries(), f);
}
protected forEachUnion(
blankLocations: BlankLineConfig,
- f: (u: UnionType, unionName: Name, position: ForEachPosition) => void
+ f: (u: UnionType, unionName: Name, position: ForEachPosition) => void,
): void {
- this.forEachSpecificNamedType(blankLocations, this.namedUnions.entries(), f);
+ this.forEachSpecificNamedType(
+ blankLocations,
+ this.namedUnions.entries(),
+ f,
+ );
}
protected forEachUniqueUnion(
blankLocations: BlankLineConfig,
uniqueValue: (u: UnionType) => T,
- f: (firstUnion: UnionType, value: T, position: ForEachPosition) => void
+ f: (firstUnion: UnionType, value: T, position: ForEachPosition) => void,
): void {
const firstUnionByValue = new Map();
for (const u of this.namedUnions) {
@@ -765,71 +1077,117 @@ export abstract class ConvenienceRenderer extends Renderer {
firstUnionByValue.set(v, u);
}
}
+
this.forEachWithBlankLines(firstUnionByValue, blankLocations, f);
}
protected forEachNamedType(
blankLocations: BlankLineConfig,
objectFunc:
- | ((c: ClassType, className: Name, position: ForEachPosition) => void)
- | ((o: ObjectType, objectName: Name, position: ForEachPosition) => void),
- enumFunc: (e: EnumType, enumName: Name, position: ForEachPosition) => void,
- unionFunc: (u: UnionType, unionName: Name, position: ForEachPosition) => void
+ | ((
+ c: ClassType,
+ className: Name,
+ position: ForEachPosition,
+ ) => void)
+ | ((
+ o: ObjectType,
+ objectName: Name,
+ position: ForEachPosition,
+ ) => void),
+ enumFunc: (
+ e: EnumType,
+ enumName: Name,
+ position: ForEachPosition,
+ ) => void,
+ unionFunc: (
+ u: UnionType,
+ unionName: Name,
+ position: ForEachPosition,
+ ) => void,
): void {
- this.forEachWithBlankLines(defined(this._namedTypes).entries(), blankLocations, (t, _, pos) => {
- const name = this.nameForNamedType(t);
- if (t instanceof ObjectType) {
- // FIXME: This is ugly. We can't runtime check that the function
- // takes full object types if we have them.
- (objectFunc as any)(t, name, pos);
- } else if (t instanceof EnumType) {
- enumFunc(t, name, pos);
- } else if (t instanceof UnionType) {
- unionFunc(t, name, pos);
- } else {
- return panic("Named type that's neither a class nor union");
- }
- });
+ this.forEachWithBlankLines(
+ defined(this._namedTypes).entries(),
+ blankLocations,
+ (t, _, pos) => {
+ const name = this.nameForNamedType(t);
+ if (t instanceof ObjectType) {
+ // FIXME: This is ugly. We can't runtime check that the function
+ // takes full object types if we have them.
+ objectFunc(t, name, pos);
+ } else if (t instanceof EnumType) {
+ enumFunc(t, name, pos);
+ } else if (t instanceof UnionType) {
+ unionFunc(t, name, pos);
+ } else {
+ return panic("Named type that's neither a class nor union");
+ }
+ },
+ );
}
// You should never have to use this to produce parts of your generated
// code. If you need to modify a Name, for example to change its casing,
// use `modifySource`.
protected sourcelikeToString(src: Sourcelike): string {
- return serializeRenderResult(sourcelikeToSource(src), this.names, "").lines.join("\n");
+ return serializeRenderResult(
+ sourcelikeToSource(src),
+ this.names,
+ "",
+ ).lines.join("\n");
}
protected get commentLineStart(): string {
return "// ";
}
+ protected emitComments(comments: Comment[]): void {
+ comments.forEach((comment) => {
+ if (isStringComment(comment)) {
+ this.emitCommentLines([comment]);
+ } else if ("lines" in comment) {
+ this.emitCommentLines(comment.lines);
+ } else if ("descriptionBlock" in comment) {
+ this.emitDescriptionBlock(comment.descriptionBlock);
+ } else {
+ this.emitCommentLines(comment.customLines, comment);
+ }
+
+ this.ensureBlankLine();
+ });
+ }
+
protected emitCommentLines(
lines: Sourcelike[],
- lineStart?: string,
- beforeLine?: string,
- afterLine?: string,
- firstLineStart?: string
+ {
+ lineStart = this.commentLineStart,
+ firstLineStart = lineStart,
+ lineEnd,
+ beforeComment,
+ afterComment,
+ }: CommentOptions = {},
): void {
- if (lineStart === undefined) {
- lineStart = this.commentLineStart;
- }
- if (firstLineStart === undefined) {
- firstLineStart = lineStart;
- }
- if (beforeLine !== undefined) {
- this.emitLine(beforeLine);
+ if (beforeComment !== undefined) {
+ this.emitLine(beforeComment);
}
+
let first = true;
for (const line of lines) {
let start = first ? firstLineStart : lineStart;
+ first = false;
+
if (this.sourcelikeToString(line) === "") {
start = trimEnd(start);
}
- this.emitLine(start, line);
- first = false;
+
+ if (lineEnd) {
+ this.emitLine(start, line, lineEnd);
+ } else {
+ this.emitLine(start, line);
+ }
}
- if (afterLine !== undefined) {
- this.emitLine(afterLine);
+
+ if (afterComment !== undefined) {
+ this.emitLine(afterComment);
}
}
@@ -845,10 +1203,14 @@ export abstract class ConvenienceRenderer extends Renderer {
protected emitPropertyTable(
c: ClassType,
- makePropertyRow: (name: Name, jsonName: string, p: ClassProperty) => Sourcelike[]
+ makePropertyRow: (
+ name: Name,
+ jsonName: string,
+ p: ClassProperty,
+ ) => Sourcelike[],
): void {
let table: Sourcelike[][] = [];
- const emitTable = () => {
+ const emitTable = (): void => {
if (table.length === 0) return;
this.emitTable(table);
table = [];
@@ -860,6 +1222,7 @@ export abstract class ConvenienceRenderer extends Renderer {
emitTable();
this.emitDescription(description);
}
+
table.push(makePropertyRow(name, jsonName, p));
});
emitTable();
@@ -868,22 +1231,32 @@ export abstract class ConvenienceRenderer extends Renderer {
private processGraph(): void {
this._declarationIR = declarationsForGraph(
this.typeGraph,
- this.needsTypeDeclarationBeforeUse ? t => this.canBeForwardDeclared(t) : undefined,
- t => this.childrenOfType(t),
- t => {
+ this.needsTypeDeclarationBeforeUse
+ ? (t): boolean => this.canBeForwardDeclared(t)
+ : undefined,
+ (t) => this.childrenOfType(t),
+ (t) => {
if (t instanceof UnionType) {
return this.unionNeedsName(t);
}
+
return isNamedType(t);
- }
+ },
);
const types = this.typeGraph.allTypesUnordered();
- this._haveUnions = iterableSome(types, t => t instanceof UnionType);
- this._haveMaps = iterableSome(types, t => t instanceof MapType);
- const classTypes = setFilter(types, t => t instanceof ClassType) as Set;
- this._haveOptionalProperties = iterableSome(classTypes, c => mapSome(c.getProperties(), p => p.isOptional));
- this._namedTypes = this._declarationIR.declarations.filter(d => d.kind === "define").map(d => d.type);
+ this._haveUnions = iterableSome(types, (t) => t instanceof UnionType);
+ this._haveMaps = iterableSome(types, (t) => t instanceof MapType);
+ const classTypes = setFilter(
+ types,
+ (t) => t instanceof ClassType,
+ ) as Set;
+ this._haveOptionalProperties = iterableSome(classTypes, (c) =>
+ mapSome(c.getProperties(), (p) => p.isOptional),
+ );
+ this._namedTypes = this._declarationIR.declarations
+ .filter((d) => d.kind === "define")
+ .map((d) => d.type);
const { objects, enums, unions } = separateNamedTypes(this._namedTypes);
this._namedObjects = new Set(objects);
this._namedEnums = new Set(enums);
@@ -895,16 +1268,19 @@ export abstract class ConvenienceRenderer extends Renderer {
this.emitSourceStructure(givenOutputFilename);
}
- protected forEachType(process: (t: Type) => TResult): Set {
+ protected forEachType(
+ process: (t: Type) => TResult,
+ ): Set {
const visitedTypes = new Set();
const processed = new Set();
const queue = Array.from(this.typeGraph.topLevels.values());
- function visit(t: Type) {
+ function visit(t: Type): void {
if (visitedTypes.has(t)) return;
for (const c of t.getChildren()) {
queue.push(c);
}
+
visitedTypes.add(t);
processed.add(process(t));
}
@@ -914,6 +1290,7 @@ export abstract class ConvenienceRenderer extends Renderer {
if (maybeType === undefined) {
break;
}
+
visit(maybeType);
}
diff --git a/packages/quicktype-core/src/CycleBreaker.ts b/packages/quicktype-core/src/CycleBreaker.ts
index d3eba6321..818b25c38 100644
--- a/packages/quicktype-core/src/CycleBreaker.ts
+++ b/packages/quicktype-core/src/CycleBreaker.ts
@@ -1,18 +1,22 @@
import { assert, panic } from "./support/Support";
-export function breakCycles(outEdges: number[][], chooseBreaker: (cycle: number[]) => [number, T]): [number, T][] {
+export function breakCycles(
+ outEdges: number[][],
+ chooseBreaker: (cycle: number[]) => [number, T],
+): Array<[number, T]> {
const numNodes = outEdges.length;
const inEdges: number[][] = [];
const inDegree: number[] = [];
const outDegree: number[] = [];
const done: boolean[] = [];
- const results: [number, T][] = [];
+ const results: Array<[number, T]> = [];
for (let i = 0; i < numNodes; i++) {
inEdges.push([]);
inDegree.push(0);
outDegree.push(outEdges[i].length);
done.push(false);
}
+
for (let i = 0; i < numNodes; i++) {
for (const n of outEdges[i]) {
inEdges[n].push(i);
@@ -54,7 +58,11 @@ export function breakCycles(outEdges: number[][], chooseBreaker: (cycle: numb
done[i] = true;
continue;
}
- assert(inDegree[i] === 0 || outDegree[i] === 0, "Can't have nodes in the worklist with in and out edges");
+
+ assert(
+ inDegree[i] === 0 || outDegree[i] === 0,
+ "Can't have nodes in the worklist with in and out edges",
+ );
removeNode(i);
continue;
@@ -78,10 +86,11 @@ export function breakCycles(outEdges: number[][], chooseBreaker: (cycle: numb
// We could count the number of reachable nodes for all nodes in the graph,
// and then pick one of the nodes with the lowest number, which would pick
// the dependee cycle.
- const maybeEdge = outEdges[n].find(x => !done[x]);
+ const maybeEdge = outEdges[n].find((x) => !done[x]);
if (maybeEdge === undefined) {
return panic("Presumed cycle is not a cycle");
}
+
const maybeFirst = path.indexOf(maybeEdge);
if (maybeFirst === undefined) {
// No cycle yet, continue
@@ -93,11 +102,12 @@ export function breakCycles(outEdges: number[][], chooseBreaker: (cycle: numb
// We found a cycle - break it
const cycle = path.slice(maybeFirst);
const [breakNode, info] = chooseBreaker(cycle);
- assert(cycle.indexOf(breakNode) >= 0, "Breaker chose an invalid node");
+ assert(cycle.includes(breakNode), "Breaker chose an invalid node");
removeNode(breakNode);
results.push([breakNode, info]);
break;
}
+
continue;
}
diff --git a/packages/quicktype-core/src/DateTime.ts b/packages/quicktype-core/src/DateTime.ts
index 20d0340b8..7c2f4b049 100644
--- a/packages/quicktype-core/src/DateTime.ts
+++ b/packages/quicktype-core/src/DateTime.ts
@@ -1,3 +1,4 @@
+/* eslint-disable */
// https://github.com/epoberezkin/ajv/blob/4d76c6fb813b136b6ec4fe74990bc97233d75dea/lib/compile/formats.js
/*
@@ -29,9 +30,9 @@ const DAYS = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
const TIME = /^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;
export interface DateTimeRecognizer {
- isDate(s: string): boolean;
- isTime(s: string): boolean;
- isDateTime(s: string): boolean;
+ isDate: (s: string) => boolean;
+ isDateTime: (s: string) => boolean;
+ isTime: (s: string) => boolean;
}
const DATE_TIME_SEPARATOR = /t|\s/i;
@@ -39,7 +40,7 @@ const DATE_TIME_SEPARATOR = /t|\s/i;
export class DefaultDateTimeRecognizer implements DateTimeRecognizer {
isDate(str: string) {
// full-date from http://tools.ietf.org/html/rfc3339#section-5.6
- const matches = str.match(DATE);
+ const matches = DATE.exec(str);
if (matches === null) return false;
const month = +matches[2];
@@ -48,7 +49,7 @@ export class DefaultDateTimeRecognizer implements DateTimeRecognizer {
}
isTime(str: string): boolean {
- const matches = str.match(TIME);
+ const matches = TIME.exec(str);
if (matches === null) return false;
const hour = +matches[1];
@@ -60,6 +61,10 @@ export class DefaultDateTimeRecognizer implements DateTimeRecognizer {
isDateTime(str: string): boolean {
// http://tools.ietf.org/html/rfc3339#section-5.6
const dateTime = str.split(DATE_TIME_SEPARATOR);
- return dateTime.length === 2 && this.isDate(dateTime[0]) && this.isTime(dateTime[1]);
+ return (
+ dateTime.length === 2 &&
+ this.isDate(dateTime[0]) &&
+ this.isTime(dateTime[1])
+ );
}
}
diff --git a/packages/quicktype-core/src/DeclarationIR.ts b/packages/quicktype-core/src/DeclarationIR.ts
index 8b36dbd51..8ee30c34f 100644
--- a/packages/quicktype-core/src/DeclarationIR.ts
+++ b/packages/quicktype-core/src/DeclarationIR.ts
@@ -1,10 +1,16 @@
-import { setUnionInto, setFilter, iterableFirst, setSubtract, setIntersect } from "collection-utils";
+import {
+ iterableFirst,
+ setFilter,
+ setIntersect,
+ setSubtract,
+ setUnionInto,
+} from "collection-utils";
-import { TypeGraph } from "./TypeGraph";
-import { Type } from "./Type";
-import { panic, defined, assert } from "./support/Support";
import { Graph } from "./Graph";
import { messageError } from "./Messages";
+import { assert, defined, panic } from "./support/Support";
+import type { Type } from "./Type/Type";
+import type { TypeGraph } from "./Type/TypeGraph";
export type DeclarationKind = "forward" | "define";
@@ -14,35 +20,40 @@ export interface Declaration {
}
export class DeclarationIR {
- readonly declarations: ReadonlyArray;
+ public readonly declarations: readonly Declaration[];
- constructor(declarations: Iterable, readonly forwardedTypes: Set) {
+ public constructor(
+ declarations: Iterable,
+ public readonly forwardedTypes: Set,
+ ) {
this.declarations = Array.from(declarations);
}
}
function findBreaker(
t: Type,
- path: ReadonlyArray,
- canBreak: ((t: Type) => boolean) | undefined
+ path: readonly Type[],
+ canBreak: ((t: Type) => boolean) | undefined,
): Type | undefined {
const index = path.indexOf(t);
if (index < 0) return undefined;
if (canBreak === undefined) {
return path[index];
}
+
const potentialBreakers = path.slice(0, index + 1).reverse();
const maybeBreaker = potentialBreakers.find(canBreak);
if (maybeBreaker === undefined) {
return panic("Found a cycle that cannot be broken");
}
+
return maybeBreaker;
}
export function cycleBreakerTypesForGraph(
graph: TypeGraph,
isImplicitCycleBreaker: (t: Type) => boolean,
- canBreakCycles: (t: Type) => boolean
+ canBreakCycles: (t: Type) => boolean,
): Set {
const visitedTypes = new Set();
const cycleBreakerTypes = new Set();
@@ -87,7 +98,7 @@ export function declarationsForGraph(
typeGraph: TypeGraph,
canBeForwardDeclared: ((t: Type) => boolean) | undefined,
childrenOfType: (t: Type) => ReadonlySet,
- needsDeclaration: (t: Type) => boolean
+ needsDeclaration: (t: Type) => boolean,
): DeclarationIR {
/*
function nodeTitle(t: Type): string {
@@ -121,7 +132,10 @@ export function declarationsForGraph(
// 1. Only one node in the cycle needs a declaration, in which
// case it's the breaker, and no forward declaration is necessary.
if (declarationNeeded.size === 1) {
- declarations.push({ kind: "define", type: defined(iterableFirst(declarationNeeded)) });
+ declarations.push({
+ kind: "define",
+ type: defined(iterableFirst(declarationNeeded)),
+ });
return;
}
@@ -136,7 +150,10 @@ export function declarationsForGraph(
// declaration, so we can pick any one. This is not a forward
// declaration, either.
if (declarationNeeded.size === 0) {
- declarations.push({ kind: "define", type: defined(iterableFirst(component)) });
+ declarations.push({
+ kind: "define",
+ type: defined(iterableFirst(component)),
+ });
return;
}
@@ -147,6 +164,7 @@ export function declarationsForGraph(
for (const t of declarationNeeded) {
declarations.push({ kind: "define", type: t });
}
+
return;
}
@@ -156,20 +174,28 @@ export function declarationsForGraph(
// there are none, we're stuck. If there are, we take them out of
// the component and try the whole thing again recursively. Then
// we declare the types we previously forward-declared.
- const forwardDeclarable = setFilter(component, canBeForwardDeclared);
+ const forwardDeclarable = setFilter(
+ component,
+ canBeForwardDeclared,
+ );
if (forwardDeclarable.size === 0) {
- return messageError("IRNoForwardDeclarableTypeInCycle", {});
+ messageError("IRNoForwardDeclarableTypeInCycle", {});
}
+
for (const t of forwardDeclarable) {
declarations.push({ kind: "forward", type: t });
}
+
setUnionInto(forwardedTypes, forwardDeclarable);
const rest = setSubtract(component, forwardDeclarable);
- const restGraph = new Graph(rest, true, t => setIntersect(childrenOfType(t), rest));
+ const restGraph = new Graph(rest, true, (t) =>
+ setIntersect(childrenOfType(t), rest),
+ );
processGraph(restGraph, false);
for (const t of forwardDeclarable) {
declarations.push({ kind: "define", type: t });
}
+
return;
}
diff --git a/packages/quicktype-core/src/GatherNames.ts b/packages/quicktype-core/src/GatherNames.ts
index 40d1f4b05..c99da4bfb 100644
--- a/packages/quicktype-core/src/GatherNames.ts
+++ b/packages/quicktype-core/src/GatherNames.ts
@@ -1,38 +1,46 @@
+import { setMap, setSortBy, setUnion } from "collection-utils";
import * as pluralize from "pluralize";
-import { setUnion, setMap, setSortBy } from "collection-utils";
-import { TypeGraph } from "./TypeGraph";
-import { Type, ObjectType } from "./Type";
-import { matchCompoundType, nullableFromUnion } from "./TypeUtils";
-import { TypeNames, namesTypeAttributeKind, TooManyTypeNames, tooManyNamesThreshold } from "./attributes/TypeNames";
-import { defined, panic, assert } from "./support/Support";
+import {
+ TooManyTypeNames,
+ TypeNames,
+ namesTypeAttributeKind,
+ tooManyNamesThreshold,
+} from "./attributes/TypeNames";
+import { assert, defined, panic } from "./support/Support";
import { transformationForType } from "./Transformers";
+import { ObjectType, type Type } from "./Type/Type";
+import type { TypeGraph } from "./Type/TypeGraph";
+import { matchCompoundType, nullableFromUnion } from "./Type/TypeUtils";
class UniqueQueue {
private readonly _present = new Set();
- private _queue: (T | undefined)[] = [];
+
+ private _queue: Array = [];
+
private _front = 0;
- get size(): number {
+ public get size(): number {
return this._queue.length - this._front;
}
- get isEmpty(): boolean {
+ public get isEmpty(): boolean {
return this.size <= 0;
}
- push(v: T): void {
+ public push(v: T): void {
if (this._present.has(v)) return;
this._queue.push(v);
this._present.add(v);
}
- unshift(): T {
+ public unshift(): T {
assert(!this.isEmpty, "Trying to unshift from an empty queue");
const v = this._queue[this._front];
if (v === undefined) {
return panic("Value should have been present in queue");
}
+
this._queue[this._front] = undefined;
this._front += 1;
this._present.delete(v);
@@ -82,7 +90,11 @@ class UniqueQueue {
// step 1, and its alternatives to a union of its direct and ancestor
// alternatives, gathered in steps 2 and 3.
-export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint: boolean): void {
+export function gatherNames(
+ graph: TypeGraph,
+ destructive: boolean,
+ debugPrint: boolean,
+): void {
function setNames(t: Type, tn: TypeNames): void {
graph.attributeStore.set(namesTypeAttributeKind, t, tn);
}
@@ -99,7 +111,7 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
// null means there are too many
const namesForType = new Map | null>();
- function addNames(t: Type, names: ReadonlySet | null) {
+ function addNames(t: Type, names: ReadonlySet | null): void {
// Always use the type's given names if it has some
if (t.hasNames) {
const originalNames = t.getNames();
@@ -123,6 +135,7 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
if (newNames !== null && newNames.size >= tooManyNamesThreshold) {
newNames = null;
}
+
namesForType.set(t, newNames);
const transformation = transformationForType(t);
@@ -157,23 +170,34 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
const values = t.getAdditionalProperties();
if (values !== undefined) {
- addNames(values, names === null ? null : setMap(names, pluralize.singular));
+ addNames(
+ values,
+ names === null ? null : setMap(names, pluralize.singular),
+ );
}
} else {
matchCompoundType(
t,
- arrayType => {
- addNames(arrayType.items, names === null ? null : setMap(names, pluralize.singular));
+ (arrayType) => {
+ addNames(
+ arrayType.items,
+ names === null
+ ? null
+ : setMap(names, pluralize.singular),
+ );
},
- _classType => panic("We handled this above"),
- _mapType => panic("We handled this above"),
- _objectType => panic("We handled this above"),
- unionType => {
- const members = setSortBy(unionType.members, member => member.kind);
+ (_classType) => panic("We handled this above"),
+ (_mapType) => panic("We handled this above"),
+ (_objectType) => panic("We handled this above"),
+ (unionType) => {
+ const members = setSortBy(
+ unionType.members,
+ (member) => member.kind,
+ );
for (const memberType of members) {
addNames(memberType, names);
}
- }
+ },
);
}
}
@@ -184,18 +208,26 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
if (names === undefined) return;
const index = t.index;
- console.log(`${index}: ${names === null ? "*** too many ***" : Array.from(names).join(" ")}`);
+ console.log(
+ `${index}: ${names === null ? "*** too many ***" : Array.from(names).join(" ")}`,
+ );
}
}
// null means there are too many
- const directAlternativesForType = new Map | null>();
- const ancestorAlternativesForType = new Map | null>();
+ const directAlternativesForType = new Map<
+ Type,
+ ReadonlySet | null
+ >();
+ const ancestorAlternativesForType = new Map<
+ Type,
+ ReadonlySet | null
+ >();
const pairsProcessed = new Map>();
function addAlternatives(
existing: ReadonlySet | undefined,
- alternatives: string[]
+ alternatives: string[],
): ReadonlySet | undefined | null {
if (alternatives.length === 0) {
return existing;
@@ -204,14 +236,20 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
if (existing === undefined) {
existing = new Set();
}
+
existing = setUnion(existing, alternatives);
if (existing.size < tooManyNamesThreshold) {
return existing;
}
+
return null;
}
- function processType(ancestor: Type | undefined, t: Type, alternativeSuffix: string | undefined) {
+ function processType(
+ ancestor: Type | undefined,
+ t: Type,
+ alternativeSuffix: string | undefined,
+ ): void {
const names = defined(namesForType.get(t));
let processedEntry = pairsProcessed.get(ancestor);
@@ -238,31 +276,49 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
} else if (ancestorNames !== undefined) {
const alternatives: string[] = [];
for (const name of names) {
- alternatives.push(...Array.from(ancestorNames).map(an => `${an}_${name}`));
+ alternatives.push(
+ ...Array.from(ancestorNames).map(
+ (an) => `${an}_${name}`,
+ ),
+ );
// FIXME: add alternatives with the suffix here, too?
- alternatives.push(...Array.from(ancestorNames).map(an => `${an}_${name}_${t.kind}`));
+ alternatives.push(
+ ...Array.from(ancestorNames).map(
+ (an) => `${an}_${name}_${t.kind}`,
+ ),
+ );
// FIXME: add alternatives with the suffix here, too?
}
- ancestorAlternatives = addAlternatives(ancestorAlternatives, alternatives);
+ ancestorAlternatives = addAlternatives(
+ ancestorAlternatives,
+ alternatives,
+ );
}
}
- if (alternativeSuffix !== undefined && directAlternatives !== null) {
+ if (
+ alternativeSuffix !== undefined &&
+ directAlternatives !== null
+ ) {
const alternatives: string[] = [];
for (const name of names) {
// FIXME: we should only add these for names we couldn't singularize
alternatives.push(`${name}_${alternativeSuffix}`);
}
- directAlternatives = addAlternatives(directAlternatives, alternatives);
+ directAlternatives = addAlternatives(
+ directAlternatives,
+ alternatives,
+ );
}
}
if (ancestorAlternatives !== undefined) {
ancestorAlternativesForType.set(t, ancestorAlternatives);
}
+
if (directAlternatives !== undefined) {
directAlternativesForType.set(t, directAlternatives);
}
@@ -275,26 +331,38 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
const values = t.getAdditionalProperties();
if (values !== undefined) {
- processType(properties.size === 0 ? ancestor : t, values, "value");
+ processType(
+ properties.size === 0 ? ancestor : t,
+ values,
+ "value",
+ );
}
} else {
matchCompoundType(
t,
- arrayType => {
+ (arrayType) => {
processType(ancestor, arrayType.items, "element");
},
- _classType => panic("We handled this above"),
- _mapType => panic("We handled this above"),
- _objectType => panic("We handled this above"),
- unionType => {
- const members = setSortBy(unionType.members, member => member.kind);
- const unionHasGivenName = unionType.hasNames && !unionType.getNames().areInferred;
- const unionIsAncestor = unionHasGivenName || nullableFromUnion(unionType) === null;
- const ancestorForMembers = unionIsAncestor ? unionType : ancestor;
+ (_classType) => panic("We handled this above"),
+ (_mapType) => panic("We handled this above"),
+ (_objectType) => panic("We handled this above"),
+ (unionType) => {
+ const members = setSortBy(
+ unionType.members,
+ (member) => member.kind,
+ );
+ const unionHasGivenName =
+ unionType.hasNames && !unionType.getNames().areInferred;
+ const unionIsAncestor =
+ unionHasGivenName ||
+ nullableFromUnion(unionType) === null;
+ const ancestorForMembers = unionIsAncestor
+ ? unionType
+ : ancestor;
for (const memberType of members) {
processType(ancestorForMembers, memberType, undefined);
}
- }
+ },
);
}
}
@@ -310,6 +378,7 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
directAlternativesForType.set(t, null);
continue;
}
+
let alternatives = directAlternativesForType.get(t);
if (alternatives === null) continue;
if (alternatives === undefined) {
@@ -318,7 +387,7 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
alternatives = setUnion(
alternatives,
- setMap(names, name => `${name}_${t.kind}`)
+ setMap(names, (name) => `${name}_${t.kind}`),
);
directAlternativesForType.set(t, alternatives);
}
@@ -338,17 +407,28 @@ export function gatherNames(graph: TypeGraph, destructive: boolean, debugPrint:
if (ancestorAlternatives === null && directAlternatives === null) {
alternatives = undefined;
} else {
- if (directAlternatives !== null && directAlternatives !== undefined) {
+ if (
+ directAlternatives !== null &&
+ directAlternatives !== undefined
+ ) {
alternatives = directAlternatives;
} else {
alternatives = new Set();
}
- if (ancestorAlternatives !== null && ancestorAlternatives !== undefined) {
+
+ if (
+ ancestorAlternatives !== null &&
+ ancestorAlternatives !== undefined
+ ) {
alternatives = setUnion(alternatives, ancestorAlternatives);
}
}
- typeNames = TypeNames.makeWithDistance(names, alternatives, destructive ? 1 : 10);
+ typeNames = TypeNames.makeWithDistance(
+ names,
+ alternatives,
+ destructive ? 1 : 10,
+ );
}
setNames(t, t.hasNames ? t.getNames().add([typeNames]) : typeNames);
diff --git a/packages/quicktype-core/src/Graph.ts b/packages/quicktype-core/src/Graph.ts
index fcff0a56a..16690398e 100644
--- a/packages/quicktype-core/src/Graph.ts
+++ b/packages/quicktype-core/src/Graph.ts
@@ -1,6 +1,6 @@
import { setMap } from "collection-utils";
-import { defined, repeated, assert, repeatedCall } from "./support/Support";
+import { assert, defined, repeated, repeatedCall } from "./support/Support";
function countComponentGraphNodes(components: number[][]): number {
if (components.length === 0) return 0;
@@ -64,6 +64,7 @@ function stronglyConnectedComponents(successors: number[][]): number[][] {
onStack[w] = false;
scc.push(w);
} while (w !== v);
+
sccs.push(scc);
}
}
@@ -74,28 +75,44 @@ function stronglyConnectedComponents(successors: number[][]): number[][] {
}
}
- assert(countComponentGraphNodes(sccs) === numNodes, "We didn't put all the nodes into SCCs");
+ assert(
+ countComponentGraphNodes(sccs) === numNodes,
+ "We didn't put all the nodes into SCCs",
+ );
return sccs;
}
-function buildComponentOfNodeMap(successors: number[][], components: number[][]): number[] {
+function buildComponentOfNodeMap(
+ successors: number[][],
+ components: number[][],
+): number[] {
const numComponents = components.length;
const numNodes = successors.length;
- assert(numNodes === countComponentGraphNodes(components), "Components don't match up with graph");
+ assert(
+ numNodes === countComponentGraphNodes(components),
+ "Components don't match up with graph",
+ );
const componentOfNode: number[] = repeated(numNodes, -1);
for (let c = 0; c < numComponents; c++) {
for (const n of components[c]) {
- assert(componentOfNode[n] < 0, "We have a node that's in two components");
+ assert(
+ componentOfNode[n] < 0,
+ "We have a node that's in two components",
+ );
componentOfNode[n] = c;
}
}
+
return componentOfNode;
}
-function buildMetaSuccessors(successors: number[][], components: number[][]): number[][] {
+function buildMetaSuccessors(
+ successors: number[][],
+ components: number[][],
+): number[][] {
const numComponents = components.length;
const componentOfNode = buildComponentOfNodeMap(successors, components);
const componentAdded: boolean[] = repeated(numComponents, false);
@@ -166,41 +183,58 @@ function findRoots(successors: number[][]): number[] {
}
export class Graph {
- private readonly _nodes: ReadonlyArray;
+ private readonly _nodes: readonly T[];
+
private readonly _indexByNode: ReadonlyMap;
+
private readonly _successors: number[][];
- constructor(nodes: Iterable, invertDirection: boolean, edges: number[][] | ((node: T) => ReadonlySet)) {
+ public constructor(
+ nodes: Iterable,
+ invertDirection: boolean,
+ edges: number[][] | ((node: T) => ReadonlySet),
+ ) {
this._nodes = Array.from(nodes);
- this._indexByNode = new Map(this._nodes.map((n, i): [T, number] => [n, i]));
+ this._indexByNode = new Map(
+ this._nodes.map((n, i): [T, number] => [n, i]),
+ );
let edgesArray: number[][];
if (Array.isArray(edges)) {
edgesArray = edges;
} else {
- edgesArray = this._nodes.map(n => Array.from(edges(n)).map(s => defined(this._indexByNode.get(s))));
+ edgesArray = this._nodes.map((n) =>
+ Array.from(edges(n)).map((s) =>
+ defined(this._indexByNode.get(s)),
+ ),
+ );
}
if (invertDirection) {
edgesArray = invertEdges(edgesArray);
}
+
this._successors = edgesArray;
}
- get size(): number {
+ public get size(): number {
return this._nodes.length;
}
- get nodes(): ReadonlyArray {
+ public get nodes(): readonly T[] {
return this._nodes;
}
- findRoots(): ReadonlySet {
+ public findRoots(): ReadonlySet {
const roots = findRoots(this._successors);
- return new Set(roots.map(n => this._nodes[n]));
+ return new Set(roots.map((n) => this._nodes[n]));
}
// The subgraph starting at `root` must be acyclic.
- dfsTraversal(root: T, preOrder: boolean, process: (node: T) => void): void {
+ public dfsTraversal(
+ root: T,
+ preOrder: boolean,
+ process: (node: T) => void,
+ ): void {
const visited = repeated(this.size, false);
const visit = (v: number): void => {
@@ -223,17 +257,23 @@ export class Graph {
visit(defined(this._indexByNode.get(root)));
}
- stronglyConnectedComponents(): Graph> {
+ public stronglyConnectedComponents(): Graph> {
const components = stronglyConnectedComponents(this._successors);
- const componentSuccessors = buildMetaSuccessors(this._successors, components);
+ const componentSuccessors = buildMetaSuccessors(
+ this._successors,
+ components,
+ );
return new Graph(
- components.map(ns => setMap(ns, n => this._nodes[n])),
+ components.map((ns) => setMap(ns, (n) => this._nodes[n])),
false,
- componentSuccessors
+ componentSuccessors,
);
}
- makeDot(includeNode: (n: T) => boolean, nodeLabel: (n: T) => string): string {
+ public makeDot(
+ includeNode: (n: T) => boolean,
+ nodeLabel: (n: T) => string,
+ ): string {
const lines: string[] = [];
lines.push("digraph G {");
lines.push(" ordering = out;");
diff --git a/packages/quicktype-core/src/GraphRewriting.ts b/packages/quicktype-core/src/GraphRewriting.ts
index b3610ad80..71cb44a8a 100644
--- a/packages/quicktype-core/src/GraphRewriting.ts
+++ b/packages/quicktype-core/src/GraphRewriting.ts
@@ -1,35 +1,53 @@
-import { mapMap, EqualityMap } from "collection-utils";
+import { EqualityMap, mapMap } from "collection-utils";
-import { PrimitiveTypeKind, Type, ClassProperty, MaybeTypeIdentity } from "./Type";
-import { combineTypeAttributesOfTypes } from "./TypeUtils";
import {
- TypeGraph,
- TypeRef,
+ type TypeAttributes,
+ combineTypeAttributes,
+ emptyTypeAttributes,
+} from "./attributes/TypeAttributes";
+import { assert, indentationString, panic } from "./support/Support";
+import type {
+ ClassProperty,
+ MaybeTypeIdentity,
+ PrimitiveTypeKind,
+ Type,
+} from "./Type";
+import { TypeBuilder } from "./Type/TypeBuilder";
+import type { StringTypeMapping } from "./Type/TypeBuilderUtils";
+import type { TypeGraph } from "./Type/TypeGraph";
+import {
+ type TypeRef,
+ assertTypeRefGraph,
derefTypeRef,
+ isTypeRef,
typeAndAttributesForTypeRef,
- assertTypeRefGraph,
typeRefIndex,
- isTypeRef
-} from "./TypeGraph";
-import { TypeAttributes, emptyTypeAttributes, combineTypeAttributes } from "./attributes/TypeAttributes";
-import { assert, panic, indentationString } from "./support/Support";
-import { TypeBuilder, StringTypeMapping } from "./TypeBuilder";
+} from "./Type/TypeRef";
+import { combineTypeAttributesOfTypes } from "./Type/TypeUtils";
export interface TypeLookerUp {
- lookupTypeRefs(typeRefs: TypeRef[], forwardingRef?: TypeRef): TypeRef | undefined;
- reconstituteTypeRef(typeRef: TypeRef, attributes?: TypeAttributes, forwardingRef?: TypeRef): TypeRef;
+ lookupTypeRefs: (
+ typeRefs: TypeRef[],
+ forwardingRef?: TypeRef,
+ ) => TypeRef | undefined;
+ reconstituteTypeRef: (
+ typeRef: TypeRef,
+ attributes?: TypeAttributes,
+ forwardingRef?: TypeRef,
+ ) => TypeRef;
}
export class TypeReconstituter {
private _wasUsed = false;
+
private _typeRef: TypeRef | undefined = undefined;
- constructor(
+ public constructor(
private readonly _typeBuilder: TBuilder,
private readonly _makeClassUnique: boolean,
private readonly _typeAttributes: TypeAttributes,
private readonly _forwardingRef: TypeRef | undefined,
- private readonly _register: (tref: TypeRef) => void
+ private readonly _register: (tref: TypeRef) => void,
) {}
private builderForNewType(): TBuilder {
@@ -39,14 +57,18 @@ export class TypeReconstituter {
}
private builderForSetting(): TBuilder {
- assert(this._wasUsed && this._typeRef !== undefined, "Can't set type members before constructing a type");
+ assert(
+ this._wasUsed && this._typeRef !== undefined,
+ "Can't set type members before constructing a type",
+ );
return this._typeBuilder;
}
- getResult(): TypeRef {
+ public getResult(): TypeRef {
if (this._typeRef === undefined) {
return panic("Type was not reconstituted");
}
+
return this._typeRef;
}
@@ -62,176 +84,282 @@ export class TypeReconstituter {
this.register(tref);
}
- lookup(tref: TypeRef): TypeRef | undefined;
- lookup(trefs: Iterable): ReadonlyArray | undefined;
- lookup(trefs: TypeRef | Iterable): TypeRef | ReadonlyArray | undefined {
- assert(!this._wasUsed, "Cannot lookup constituents after building type");
+ public lookup(tref: TypeRef): TypeRef | undefined;
+ public lookup(trefs: Iterable): readonly TypeRef[] | undefined;
+ public lookup(
+ trefs: TypeRef | Iterable,
+ ): TypeRef | readonly TypeRef[] | undefined {
+ assert(
+ !this._wasUsed,
+ "Cannot lookup constituents after building type",
+ );
if (isTypeRef(trefs)) {
return this._typeBuilder.lookupTypeRefs([trefs], undefined, false);
- } else {
- const maybeRefs = Array.from(trefs).map(tref => this._typeBuilder.lookupTypeRefs([tref], undefined, false));
- if (maybeRefs.some(tref => tref === undefined)) return undefined;
- return maybeRefs as ReadonlyArray;
}
+
+ const maybeRefs = Array.from(trefs).map((tref) =>
+ this._typeBuilder.lookupTypeRefs([tref], undefined, false),
+ );
+ if (maybeRefs.some((tref) => tref === undefined)) {
+ return undefined;
+ }
+
+ return maybeRefs as readonly TypeRef[];
}
- lookupMap(trefs: ReadonlyMap): ReadonlyMap | undefined {
+ public lookupMap(
+ trefs: ReadonlyMap,
+ ): ReadonlyMap | undefined {
const resultValues = this.lookup(trefs.values());
if (resultValues === undefined) return undefined;
- assert(resultValues.length === trefs.size, "Didn't get back the correct number of types");
+ assert(
+ resultValues.length === trefs.size,
+ "Didn't get back the correct number of types",
+ );
const result = new Map();
let i = 0;
for (const k of trefs.keys()) {
result.set(k, resultValues[i]);
i += 1;
}
+
return result;
}
- reconstitute(tref: TypeRef): TypeRef;
- reconstitute(trefs: Iterable): ReadonlyArray;
- reconstitute(trefs: TypeRef | Iterable): TypeRef | ReadonlyArray {
- assert(this._wasUsed, "Cannot reconstitute constituents before building type");
+ public reconstitute(tref: TypeRef): TypeRef;
+ public reconstitute(trefs: Iterable): readonly TypeRef[];
+ public reconstitute(
+ trefs: TypeRef | Iterable,
+ ): TypeRef | readonly TypeRef[] {
+ assert(
+ this._wasUsed,
+ "Cannot reconstitute constituents before building type",
+ );
if (isTypeRef(trefs)) {
return this._typeBuilder.reconstituteTypeRef(trefs);
- } else {
- return Array.from(trefs).map(tref => this._typeBuilder.reconstituteTypeRef(tref));
}
+
+ return Array.from(trefs).map((tref) =>
+ this._typeBuilder.reconstituteTypeRef(tref),
+ );
}
- reconstituteMap(trefs: ReadonlyMap): ReadonlyMap {
- return mapMap(trefs, tref => this._typeBuilder.reconstituteTypeRef(tref));
+ public reconstituteMap(
+ trefs: ReadonlyMap,
+ ): ReadonlyMap {
+ return mapMap(trefs, (tref) =>
+ this._typeBuilder.reconstituteTypeRef(tref),
+ );
}
- getPrimitiveType(kind: PrimitiveTypeKind): void {
- this.register(this.builderForNewType().getPrimitiveType(kind, this._typeAttributes, this._forwardingRef));
+ public getPrimitiveType(kind: PrimitiveTypeKind): void {
+ this.register(
+ this.builderForNewType().getPrimitiveType(
+ kind,
+ this._typeAttributes,
+ this._forwardingRef,
+ ),
+ );
}
- getEnumType(cases: ReadonlySet): void {
- this.register(this.builderForNewType().getEnumType(this._typeAttributes, cases, this._forwardingRef));
+ public getEnumType(cases: ReadonlySet): void {
+ this.register(
+ this.builderForNewType().getEnumType(
+ this._typeAttributes,
+ cases,
+ this._forwardingRef,
+ ),
+ );
}
- getUniqueMapType(): void {
- this.registerAndAddAttributes(this.builderForNewType().getUniqueMapType(this._forwardingRef));
+ public getUniqueMapType(): void {
+ this.registerAndAddAttributes(
+ this.builderForNewType().getUniqueMapType(this._forwardingRef),
+ );
}
- getMapType(values: TypeRef): void {
- this.register(this.builderForNewType().getMapType(this._typeAttributes, values, this._forwardingRef));
+ public getMapType(values: TypeRef): void {
+ this.register(
+ this.builderForNewType().getMapType(
+ this._typeAttributes,
+ values,
+ this._forwardingRef,
+ ),
+ );
}
- getUniqueArrayType(): void {
- this.registerAndAddAttributes(this.builderForNewType().getUniqueArrayType(this._forwardingRef));
+ public getUniqueArrayType(): void {
+ this.registerAndAddAttributes(
+ this.builderForNewType().getUniqueArrayType(this._forwardingRef),
+ );
}
- getArrayType(items: TypeRef): void {
- this.register(this.builderForNewType().getArrayType(this._typeAttributes, items, this._forwardingRef));
+ public getArrayType(items: TypeRef): void {
+ this.register(
+ this.builderForNewType().getArrayType(
+ this._typeAttributes,
+ items,
+ this._forwardingRef,
+ ),
+ );
}
- setArrayItems(items: TypeRef): void {
+ public setArrayItems(items: TypeRef): void {
this.builderForSetting().setArrayItems(this.getResult(), items);
}
- makeClassProperty(tref: TypeRef, isOptional: boolean): ClassProperty {
+ public makeClassProperty(
+ tref: TypeRef,
+ isOptional: boolean,
+ ): ClassProperty {
return this._typeBuilder.makeClassProperty(tref, isOptional);
}
- getObjectType(properties: ReadonlyMap, additionalProperties: TypeRef | undefined): void {
+ public getObjectType(
+ properties: ReadonlyMap,
+ additionalProperties: TypeRef | undefined,
+ ): void {
this.register(
this.builderForNewType().getUniqueObjectType(
this._typeAttributes,
properties,
additionalProperties,
- this._forwardingRef
- )
+ this._forwardingRef,
+ ),
);
}
- getUniqueObjectType(
+ public getUniqueObjectType(
properties: ReadonlyMap | undefined,
- additionalProperties: TypeRef | undefined
+ additionalProperties: TypeRef | undefined,
): void {
this.register(
this.builderForNewType().getUniqueObjectType(
this._typeAttributes,
properties,
additionalProperties,
- this._forwardingRef
- )
+ this._forwardingRef,
+ ),
);
}
- getClassType(properties: ReadonlyMap): void {
+ public getClassType(properties: ReadonlyMap): void {
if (this._makeClassUnique) {
this.getUniqueClassType(false, properties);
return;
}
- this.register(this.builderForNewType().getClassType(this._typeAttributes, properties, this._forwardingRef));
+
+ this.register(
+ this.builderForNewType().getClassType(
+ this._typeAttributes,
+ properties,
+ this._forwardingRef,
+ ),
+ );
}
- getUniqueClassType(isFixed: boolean, properties: ReadonlyMap | undefined): void {
+ public getUniqueClassType(
+ isFixed: boolean,
+ properties: ReadonlyMap | undefined,
+ ): void {
this.register(
- this.builderForNewType().getUniqueClassType(this._typeAttributes, isFixed, properties, this._forwardingRef)
+ this.builderForNewType().getUniqueClassType(
+ this._typeAttributes,
+ isFixed,
+ properties,
+ this._forwardingRef,
+ ),
);
}
- setObjectProperties(
+ public setObjectProperties(
properties: ReadonlyMap,
- additionalProperties: TypeRef | undefined
+ additionalProperties: TypeRef | undefined,
): void {
- this.builderForSetting().setObjectProperties(this.getResult(), properties, additionalProperties);
+ this.builderForSetting().setObjectProperties(
+ this.getResult(),
+ properties,
+ additionalProperties,
+ );
}
- getUnionType(members: ReadonlySet): void {
- this.register(this.builderForNewType().getUnionType(this._typeAttributes, members, this._forwardingRef));
+ public getUnionType(members: ReadonlySet): void {
+ this.register(
+ this.builderForNewType().getUnionType(
+ this._typeAttributes,
+ members,
+ this._forwardingRef,
+ ),
+ );
}
- getUniqueUnionType(): void {
+ public getUniqueUnionType(): void {
this.register(
- this.builderForNewType().getUniqueUnionType(this._typeAttributes, undefined, this._forwardingRef)
+ this.builderForNewType().getUniqueUnionType(
+ this._typeAttributes,
+ undefined,
+ this._forwardingRef,
+ ),
);
}
- getIntersectionType(members: ReadonlySet): void {
- this.register(this.builderForNewType().getIntersectionType(this._typeAttributes, members, this._forwardingRef));
+ public getIntersectionType(members: ReadonlySet): void {
+ this.register(
+ this.builderForNewType().getIntersectionType(
+ this._typeAttributes,
+ members,
+ this._forwardingRef,
+ ),
+ );
}
- getUniqueIntersectionType(members?: ReadonlySet): void {
+ public getUniqueIntersectionType(members?: ReadonlySet): void {
this.register(
- this.builderForNewType().getUniqueIntersectionType(this._typeAttributes, members, this._forwardingRef)
+ this.builderForNewType().getUniqueIntersectionType(
+ this._typeAttributes,
+ members,
+ this._forwardingRef,
+ ),
);
}
- setSetOperationMembers(members: ReadonlySet): void {
- this.builderForSetting().setSetOperationMembers(this.getResult(), members);
+ public setSetOperationMembers(members: ReadonlySet): void {
+ this.builderForSetting().setSetOperationMembers(
+ this.getResult(),
+ members,
+ );
}
}
-export abstract class BaseGraphRewriteBuilder extends TypeBuilder implements TypeLookerUp {
+export abstract class BaseGraphRewriteBuilder
+ extends TypeBuilder
+ implements TypeLookerUp
+{
protected readonly reconstitutedTypes: Map = new Map();
private _lostTypeAttributes = false;
+
private _printIndent = 0;
- constructor(
- readonly originalGraph: TypeGraph,
+ public constructor(
+ public readonly originalGraph: TypeGraph,
stringTypeMapping: StringTypeMapping,
alphabetizeProperties: boolean,
graphHasProvenanceAttributes: boolean,
- protected readonly debugPrint: boolean
+ protected readonly debugPrint: boolean,
) {
super(
- originalGraph.serial + 1,
stringTypeMapping,
alphabetizeProperties,
false,
false,
- graphHasProvenanceAttributes
+ graphHasProvenanceAttributes,
);
}
- withForwardingRef(
+ public withForwardingRef(
maybeForwardingRef: TypeRef | undefined,
- typeCreator: (forwardingRef: TypeRef) => TypeRef
+ typeCreator: (forwardingRef: TypeRef) => TypeRef,
): TypeRef {
if (maybeForwardingRef !== undefined) {
return typeCreator(maybeForwardingRef);
@@ -239,41 +367,71 @@ export abstract class BaseGraphRewriteBuilder extends TypeBuilder implements Typ
const forwardingRef = this.reserveTypeRef();
const actualRef = typeCreator(forwardingRef);
- assert(actualRef === forwardingRef, "Type creator didn't return its forwarding ref");
+ assert(
+ actualRef === forwardingRef,
+ "Type creator didn't return its forwarding ref",
+ );
return actualRef;
}
- reconstituteType(t: Type, attributes?: TypeAttributes, forwardingRef?: TypeRef): TypeRef {
+ public reconstituteType(
+ t: Type,
+ attributes?: TypeAttributes,
+ forwardingRef?: TypeRef,
+ ): TypeRef {
return this.reconstituteTypeRef(t.typeRef, attributes, forwardingRef);
}
- abstract lookupTypeRefs(typeRefs: TypeRef[], forwardingRef?: TypeRef, replaceSet?: boolean): TypeRef | undefined;
+ public abstract lookupTypeRefs(
+ typeRefs: TypeRef[],
+ forwardingRef?: TypeRef,
+ replaceSet?: boolean,
+ ): TypeRef | undefined;
protected abstract forceReconstituteTypeRef(
originalRef: TypeRef,
attributes?: TypeAttributes,
- maybeForwardingRef?: TypeRef
+ maybeForwardingRef?: TypeRef,
): TypeRef;
- reconstituteTypeRef(originalRef: TypeRef, attributes?: TypeAttributes, maybeForwardingRef?: TypeRef): TypeRef {
+ public reconstituteTypeRef(
+ originalRef: TypeRef,
+ attributes?: TypeAttributes,
+ maybeForwardingRef?: TypeRef,
+ ): TypeRef {
const maybeRef = this.lookupTypeRefs([originalRef], maybeForwardingRef);
if (maybeRef !== undefined) {
if (attributes !== undefined) {
this.addAttributes(maybeRef, attributes);
}
+
return maybeRef;
}
- return this.forceReconstituteTypeRef(originalRef, attributes, maybeForwardingRef);
+
+ return this.forceReconstituteTypeRef(
+ originalRef,
+ attributes,
+ maybeForwardingRef,
+ );
}
- reconstituteTypeAttributes(attributes: TypeAttributes): TypeAttributes {
+ public reconstituteTypeAttributes(
+ attributes: TypeAttributes,
+ ): TypeAttributes {
return mapMap(attributes, (v, a) => a.reconstitute(this, v));
}
- protected assertTypeRefsToReconstitute(typeRefs: TypeRef[], forwardingRef?: TypeRef): void {
- assert(typeRefs.length > 0, "Must have at least one type to reconstitute");
+ protected assertTypeRefsToReconstitute(
+ typeRefs: TypeRef[],
+ forwardingRef?: TypeRef,
+ ): void {
+ assert(
+ typeRefs.length > 0,
+ "Must have at least one type to reconstitute",
+ );
for (const originalRef of typeRefs) {
assertTypeRefGraph(originalRef, this.originalGraph);
}
+
if (forwardingRef !== undefined) {
assertTypeRefGraph(forwardingRef, this.typeGraph);
}
@@ -287,18 +445,19 @@ export abstract class BaseGraphRewriteBuilder extends TypeBuilder implements Typ
return indentationString(this._printIndent);
}
- finish(): TypeGraph {
+ public finish(): TypeGraph {
for (const [name, t] of this.originalGraph.topLevels) {
this.addTopLevel(name, this.reconstituteType(t));
}
+
return super.finish();
}
- setLostTypeAttributes(): void {
+ public setLostTypeAttributes(): void {
this._lostTypeAttributes = true;
}
- get lostTypeAttributes(): boolean {
+ public get lostTypeAttributes(): boolean {
return this._lostTypeAttributes;
}
}
@@ -306,20 +465,20 @@ export abstract class BaseGraphRewriteBuilder extends TypeBuilder implements Typ
export class GraphRemapBuilder extends BaseGraphRewriteBuilder {
private readonly _attributeSources: Map = new Map();
- constructor(
+ public constructor(
originalGraph: TypeGraph,
stringTypeMapping: StringTypeMapping,
alphabetizeProperties: boolean,
graphHasProvenanceAttributes: boolean,
private readonly _map: ReadonlyMap,
- debugPrintRemapping: boolean
+ debugPrintRemapping: boolean,
) {
super(
originalGraph,
stringTypeMapping,
alphabetizeProperties,
graphHasProvenanceAttributes,
- debugPrintRemapping
+ debugPrintRemapping,
);
for (const [source, target] of _map) {
@@ -328,6 +487,7 @@ export class GraphRemapBuilder extends BaseGraphRewriteBuilder {
maybeSources = [target];
this._attributeSources.set(target, maybeSources);
}
+
maybeSources.push(source);
}
}
@@ -339,24 +499,42 @@ export class GraphRemapBuilder extends BaseGraphRewriteBuilder {
private getMapTarget(tref: TypeRef): TypeRef {
const maybeType = this._map.get(derefTypeRef(tref, this.originalGraph));
if (maybeType === undefined) return tref;
- assert(this._map.get(maybeType) === undefined, "We have a type that's remapped to a remapped type");
+ assert(
+ this._map.get(maybeType) === undefined,
+ "We have a type that's remapped to a remapped type",
+ );
return maybeType.typeRef;
}
- protected addForwardingIntersection(_forwardingRef: TypeRef, _tref: TypeRef): TypeRef {
- return panic("We can't add forwarding intersections when we're removing forwarding intersections");
+ protected addForwardingIntersection(
+ _forwardingRef: TypeRef,
+ _tref: TypeRef,
+ ): TypeRef {
+ return panic(
+ "We can't add forwarding intersections when we're removing forwarding intersections",
+ );
}
- lookupTypeRefs(typeRefs: TypeRef[], forwardingRef?: TypeRef): TypeRef | undefined {
- assert(forwardingRef === undefined, "We can't have a forwarding ref when we remap");
+ public lookupTypeRefs(
+ typeRefs: TypeRef[],
+ forwardingRef?: TypeRef,
+ ): TypeRef | undefined {
+ assert(
+ forwardingRef === undefined,
+ "We can't have a forwarding ref when we remap",
+ );
this.assertTypeRefsToReconstitute(typeRefs, forwardingRef);
- const first = this.reconstitutedTypes.get(typeRefIndex(this.getMapTarget(typeRefs[0])));
+ const first = this.reconstitutedTypes.get(
+ typeRefIndex(this.getMapTarget(typeRefs[0])),
+ );
if (first === undefined) return undefined;
for (let i = 1; i < typeRefs.length; i++) {
- const other = this.reconstitutedTypes.get(typeRefIndex(this.getMapTarget(typeRefs[i])));
+ const other = this.reconstitutedTypes.get(
+ typeRefIndex(this.getMapTarget(typeRefs[i])),
+ );
if (first !== other) return undefined;
}
@@ -366,42 +544,55 @@ export class GraphRemapBuilder extends BaseGraphRewriteBuilder {
protected forceReconstituteTypeRef(
originalRef: TypeRef,
attributes?: TypeAttributes,
- maybeForwardingRef?: TypeRef
+ maybeForwardingRef?: TypeRef,
): TypeRef {
originalRef = this.getMapTarget(originalRef);
const index = typeRefIndex(originalRef);
- assert(this.reconstitutedTypes.get(index) === undefined, "Type has already been reconstituted");
+ assert(
+ this.reconstitutedTypes.get(index) === undefined,
+ "Type has already been reconstituted",
+ );
- assert(maybeForwardingRef === undefined, "We can't have a forwarding ref when we remap");
+ assert(
+ maybeForwardingRef === undefined,
+ "We can't have a forwarding ref when we remap",
+ );
- return this.withForwardingRef(undefined, forwardingRef => {
+ return this.withForwardingRef(undefined, (forwardingRef) => {
this.reconstitutedTypes.set(index, forwardingRef);
if (this.debugPrint) {
- console.log(`${this.debugPrintIndentation}reconstituting ${index} as ${typeRefIndex(forwardingRef)}`);
+ console.log(
+ `${this.debugPrintIndentation}reconstituting ${index} as ${typeRefIndex(forwardingRef)}`,
+ );
this.changeDebugPrintIndent(1);
}
- const [originalType, originalAttributes] = typeAndAttributesForTypeRef(originalRef, this.originalGraph);
+ const [originalType, originalAttributes] =
+ typeAndAttributesForTypeRef(originalRef, this.originalGraph);
const attributeSources = this._attributeSources.get(originalType);
if (attributes === undefined) {
attributes = emptyTypeAttributes;
}
+
if (attributeSources === undefined) {
attributes = combineTypeAttributes(
"union",
attributes,
- this.reconstituteTypeAttributes(originalAttributes)
+ this.reconstituteTypeAttributes(originalAttributes),
);
} else {
attributes = combineTypeAttributes(
"union",
attributes,
- this.reconstituteTypeAttributes(combineTypeAttributesOfTypes("union", attributeSources))
+ this.reconstituteTypeAttributes(
+ combineTypeAttributesOfTypes("union", attributeSources),
+ ),
);
}
+
const newAttributes = attributes;
const reconstituter = new TypeReconstituter(
@@ -409,13 +600,18 @@ export class GraphRemapBuilder extends BaseGraphRewriteBuilder {
this.canonicalOrder,
newAttributes,
forwardingRef,
- tref => {
- assert(tref === forwardingRef, "Reconstituted type as a different ref");
+ (tref) => {
+ assert(
+ tref === forwardingRef,
+ "Reconstituted type as a different ref",
+ );
if (this.debugPrint) {
this.changeDebugPrintIndent(-1);
- console.log(`${this.debugPrintIndentation}reconstituted ${index} as ${typeRefIndex(tref)}`);
+ console.log(
+ `${this.debugPrintIndentation}reconstituted ${index} as ${typeRefIndex(tref)}`,
+ );
}
- }
+ },
);
originalType.reconstitute(reconstituter, this.canonicalOrder);
return reconstituter.getResult();
@@ -423,11 +619,15 @@ export class GraphRemapBuilder extends BaseGraphRewriteBuilder {
}
}
-export class GraphRewriteBuilder extends BaseGraphRewriteBuilder {
+export class GraphRewriteBuilder<
+ T extends Type,
+> extends BaseGraphRewriteBuilder {
private readonly _setsToReplaceByMember: Map>;
- private readonly _reconstitutedUnions: EqualityMap, TypeRef> = new EqualityMap();
- constructor(
+ private readonly _reconstitutedUnions: EqualityMap, TypeRef> =
+ new EqualityMap();
+
+ public constructor(
originalGraph: TypeGraph,
stringTypeMapping: StringTypeMapping,
alphabetizeProperties: boolean,
@@ -437,15 +637,15 @@ export class GraphRewriteBuilder extends BaseGraphRewriteBuilder
private readonly _replacer: (
typesToReplace: ReadonlySet,
builder: GraphRewriteBuilder,
- forwardingRef: TypeRef
- ) => TypeRef
+ forwardingRef: TypeRef,
+ ) => TypeRef,
) {
super(
originalGraph,
stringTypeMapping,
alphabetizeProperties,
graphHasProvenanceAttributes,
- debugPrintReconstitution
+ debugPrintReconstitution,
);
this._setsToReplaceByMember = new Map();
@@ -453,25 +653,36 @@ export class GraphRewriteBuilder extends BaseGraphRewriteBuilder
const set = new Set(types);
for (const t of set) {
const index = t.index;
- assert(!this._setsToReplaceByMember.has(index), "A type is member of more than one set to be replaced");
+ assert(
+ !this._setsToReplaceByMember.has(index),
+ "A type is member of more than one set to be replaced",
+ );
this._setsToReplaceByMember.set(index, set);
}
}
}
- registerUnion(typeRefs: TypeRef[], reconstituted: TypeRef): void {
+ public registerUnion(typeRefs: TypeRef[], reconstituted: TypeRef): void {
const set = new Set(typeRefs);
- assert(!this._reconstitutedUnions.has(set), "Cannot register reconstituted set twice");
+ assert(
+ !this._reconstitutedUnions.has(set),
+ "Cannot register reconstituted set twice",
+ );
this._reconstitutedUnions.set(set, reconstituted);
}
- private replaceSet(typesToReplace: ReadonlySet, maybeForwardingRef: TypeRef | undefined): TypeRef {
- return this.withForwardingRef(maybeForwardingRef, forwardingRef => {
+ private replaceSet(
+ typesToReplace: ReadonlySet,
+ maybeForwardingRef: TypeRef | undefined,
+ ): TypeRef {
+ return this.withForwardingRef(maybeForwardingRef, (forwardingRef) => {
if (this.debugPrint) {
console.log(
- `${this.debugPrintIndentation}replacing set ${Array.from(typesToReplace)
- .map(t => t.index.toString())
- .join(",")} as ${typeRefIndex(forwardingRef)}`
+ `${this.debugPrintIndentation}replacing set ${Array.from(
+ typesToReplace,
+ )
+ .map((t) => t.index.toString())
+ .join(",")} as ${typeRefIndex(forwardingRef)}`,
);
this.changeDebugPrintIndent(1);
}
@@ -482,15 +693,21 @@ export class GraphRewriteBuilder extends BaseGraphRewriteBuilder
this.reconstitutedTypes.set(index, forwardingRef);
this._setsToReplaceByMember.delete(index);
}
+
const result = this._replacer(typesToReplace, this, forwardingRef);
- assert(result === forwardingRef, "The forwarding ref got lost when replacing");
+ assert(
+ result === forwardingRef,
+ "The forwarding ref got lost when replacing",
+ );
if (this.debugPrint) {
this.changeDebugPrintIndent(-1);
console.log(
- `${this.debugPrintIndentation}replaced set ${Array.from(typesToReplace)
- .map(t => t.index.toString())
- .join(",")} as ${typeRefIndex(forwardingRef)}`
+ `${this.debugPrintIndentation}replaced set ${Array.from(
+ typesToReplace,
+ )
+ .map((t) => t.index.toString())
+ .join(",")} as ${typeRefIndex(forwardingRef)}`,
);
}
@@ -501,9 +718,12 @@ export class GraphRewriteBuilder extends BaseGraphRewriteBuilder
protected forceReconstituteTypeRef(
originalRef: TypeRef,
attributes?: TypeAttributes,
- maybeForwardingRef?: TypeRef
+ maybeForwardingRef?: TypeRef,
): TypeRef {
- const [originalType, originalAttributes] = typeAndAttributesForTypeRef(originalRef, this.originalGraph);
+ const [originalType, originalAttributes] = typeAndAttributesForTypeRef(
+ originalRef,
+ this.originalGraph,
+ );
const index = typeRefIndex(originalRef);
if (this.debugPrint) {
@@ -517,33 +737,48 @@ export class GraphRewriteBuilder extends BaseGraphRewriteBuilder
attributes = combineTypeAttributes(
"union",
attributes,
- this.reconstituteTypeAttributes(originalAttributes)
+ this.reconstituteTypeAttributes(originalAttributes),
);
}
- const reconstituter = new TypeReconstituter(this, this.canonicalOrder, attributes, maybeForwardingRef, tref => {
- if (this.debugPrint) {
- this.changeDebugPrintIndent(-1);
- console.log(`${this.debugPrintIndentation}reconstituted ${index} as ${typeRefIndex(tref)}`);
- }
+ const reconstituter = new TypeReconstituter(
+ this,
+ this.canonicalOrder,
+ attributes,
+ maybeForwardingRef,
+ (tref) => {
+ if (this.debugPrint) {
+ this.changeDebugPrintIndent(-1);
+ console.log(
+ `${this.debugPrintIndentation}reconstituted ${index} as ${typeRefIndex(tref)}`,
+ );
+ }
- if (maybeForwardingRef !== undefined) {
- assert(tref === maybeForwardingRef, "We didn't pass the forwarding ref");
- }
+ if (maybeForwardingRef !== undefined) {
+ assert(
+ tref === maybeForwardingRef,
+ "We didn't pass the forwarding ref",
+ );
+ }
- const alreadyReconstitutedType = this.reconstitutedTypes.get(index);
- if (alreadyReconstitutedType === undefined) {
- this.reconstitutedTypes.set(index, tref);
- } else {
- assert(tref === alreadyReconstitutedType, "We reconstituted a type twice differently");
- }
- });
+ const alreadyReconstitutedType =
+ this.reconstitutedTypes.get(index);
+ if (alreadyReconstitutedType === undefined) {
+ this.reconstitutedTypes.set(index, tref);
+ } else {
+ assert(
+ tref === alreadyReconstitutedType,
+ "We reconstituted a type twice differently",
+ );
+ }
+ },
+ );
originalType.reconstitute(reconstituter, this.canonicalOrder);
return reconstituter.getResult();
}
/*
- reconstituteTypeUnmodified(originalType: Type): TypeRef {
+ public reconstituteTypeUnmodified(originalType: Type): TypeRef {
const reconstituter = new TypeReconstituter(
this,
this.alphabetizeProperties,
@@ -558,7 +793,11 @@ export class GraphRewriteBuilder extends BaseGraphRewriteBuilder
// If the union of these type refs have been, or are supposed to be, reconstituted to
// one target type, return it. Otherwise return undefined.
- lookupTypeRefs(typeRefs: TypeRef[], forwardingRef?: TypeRef, replaceSet = true): TypeRef | undefined {
+ public lookupTypeRefs(
+ typeRefs: TypeRef[],
+ forwardingRef?: TypeRef,
+ replaceSet = true,
+ ): TypeRef | undefined {
this.assertTypeRefsToReconstitute(typeRefs, forwardingRef);
// Check whether we have already reconstituted them. That means ensuring
@@ -567,11 +806,15 @@ export class GraphRewriteBuilder extends BaseGraphRewriteBuilder
if (maybeRef !== undefined && maybeRef !== forwardingRef) {
let allEqual = true;
for (let i = 1; i < typeRefs.length; i++) {
- if (this.reconstitutedTypes.get(typeRefIndex(typeRefs[i])) !== maybeRef) {
+ if (
+ this.reconstitutedTypes.get(typeRefIndex(typeRefs[i])) !==
+ maybeRef
+ ) {
allEqual = false;
break;
}
}
+
if (allEqual) {
return this.forwardIfNecessary(forwardingRef, maybeRef);
}
@@ -584,15 +827,22 @@ export class GraphRewriteBuilder extends BaseGraphRewriteBuilder
}
// Is this set requested to be replaced? If not, we're out of options.
- const maybeSet = this._setsToReplaceByMember.get(typeRefIndex(typeRefs[0]));
+ const maybeSet = this._setsToReplaceByMember.get(
+ typeRefIndex(typeRefs[0]),
+ );
if (maybeSet === undefined) {
return undefined;
}
+
for (let i = 1; i < typeRefs.length; i++) {
- if (this._setsToReplaceByMember.get(typeRefIndex(typeRefs[i])) !== maybeSet) {
+ if (
+ this._setsToReplaceByMember.get(typeRefIndex(typeRefs[i])) !==
+ maybeSet
+ ) {
return undefined;
}
}
+
// Yes, this set is requested to be replaced, so do it.
if (!replaceSet) return undefined;
return this.replaceSet(maybeSet, forwardingRef);
diff --git a/packages/quicktype-core/src/Inference.ts b/packages/quicktype-core/src/Inference.ts
new file mode 100644
index 000000000..94bf2e829
--- /dev/null
+++ b/packages/quicktype-core/src/Inference.ts
@@ -0,0 +1,97 @@
+import type { TransformedStringTypeKind } from "./Type";
+
+export interface InferenceFlag {
+ description: string;
+ explanation: string;
+ negationDescription: string;
+ order: number;
+ stringType?: TransformedStringTypeKind;
+}
+
+export const inferenceFlagsObject = {
+ /** Whether to infer map types from JSON data */
+ inferMaps: {
+ description: "Detect maps",
+ negationDescription: "Don't infer maps, always use classes",
+ explanation: "Infer maps when object keys look like map keys.",
+ order: 1,
+ },
+ /** Whether to infer enum types from JSON data */
+ inferEnums: {
+ description: "Detect enums",
+ negationDescription: "Don't infer enums, always use strings",
+ explanation:
+ "If string values occur within a relatively small domain,\ninfer them as enum values.",
+ order: 2,
+ },
+ /** Whether to convert UUID strings to UUID objects */
+ inferUuids: {
+ description: "Detect UUIDs",
+ negationDescription: "Don't convert UUIDs to UUID objects",
+ explanation:
+ "Detect UUIDs like '123e4567-e89b-12d3-a456-426655440000' (partial support).",
+ stringType: "uuid" as TransformedStringTypeKind,
+ order: 3,
+ },
+ /** Whether to assume that JSON strings that look like dates are dates */
+ inferDateTimes: {
+ description: "Detect dates & times",
+ negationDescription: "Don't infer dates or times",
+ explanation: "Infer dates from strings (partial support).",
+ stringType: "date-time" as TransformedStringTypeKind,
+ order: 4,
+ },
+ /** Whether to convert stringified integers to integers */
+ inferIntegerStrings: {
+ description: "Detect integers in strings",
+ negationDescription: "Don't convert stringified integers to integers",
+ explanation:
+ 'Automatically convert stringified integers to integers.\nFor example, "1" is converted to 1.',
+ stringType: "integer-string" as TransformedStringTypeKind,
+ order: 5,
+ },
+ /** Whether to convert stringified booleans to boolean values */
+ inferBooleanStrings: {
+ description: "Detect booleans in strings",
+ negationDescription: "Don't convert stringified booleans to booleans",
+ explanation:
+ 'Automatically convert stringified booleans to booleans.\nFor example, "true" is converted to true.',
+ stringType: "bool-string" as TransformedStringTypeKind,
+ order: 6,
+ },
+ /** Combine similar classes. This doesn't apply to classes from a schema, only from inference. */
+ combineClasses: {
+ description: "Merge similar classes",
+ negationDescription: "Don't combine similar classes",
+ explanation:
+ "Combine classes with significantly overlapping properties,\ntreating contingent properties as nullable.",
+ order: 7,
+ },
+ /** Whether to treat $ref as references within JSON */
+ ignoreJsonRefs: {
+ description: "Don't treat $ref as a reference in JSON",
+ negationDescription: "Treat $ref as a reference in JSON",
+ explanation:
+ "Like in JSON Schema, allow objects like\n'{ $ref: \"#/foo/bar\" }' to refer\nto another part of the input.",
+ order: 8,
+ },
+};
+export type InferenceFlagName = keyof typeof inferenceFlagsObject;
+export const inferenceFlagNames = Object.getOwnPropertyNames(
+ inferenceFlagsObject,
+) as InferenceFlagName[];
+export const inferenceFlags: { [F in InferenceFlagName]: InferenceFlag } =
+ inferenceFlagsObject;
+
+export type InferenceFlags = { [F in InferenceFlagName]: boolean };
+
+function makeDefaultInferenceFlags(): InferenceFlags {
+ const flags = {} as InferenceFlags;
+ for (const flag of inferenceFlagNames) {
+ flags[flag] = true;
+ }
+
+ return flags;
+}
+
+export const defaultInferenceFlags = makeDefaultInferenceFlags();
diff --git a/packages/quicktype-core/src/MakeTransformations.ts b/packages/quicktype-core/src/MakeTransformations.ts
index 4e44d89f5..9707357a3 100644
--- a/packages/quicktype-core/src/MakeTransformations.ts
+++ b/packages/quicktype-core/src/MakeTransformations.ts
@@ -1,54 +1,76 @@
-import { setFilter, iterableFirst, mapMapEntries, withDefault, iterableSome, arraySortByInto } from "collection-utils";
+import {
+ arraySortByInto,
+ iterableFirst,
+ iterableSome,
+ mapMapEntries,
+ setFilter,
+ withDefault,
+} from "collection-utils";
-import { TypeGraph, TypeRef, typeRefIndex } from "./TypeGraph";
-import { TargetLanguage } from "./TargetLanguage";
import {
- UnionType,
- TypeKind,
- EnumType,
- Type,
- ArrayType,
- PrimitiveType,
- isNumberTypeKind,
- isPrimitiveStringTypeKind,
- targetTypeKindForTransformedStringTypeKind,
- PrimitiveStringTypeKind
-} from "./Type";
-import { GraphRewriteBuilder } from "./GraphRewriting";
-import { defined, assert, panic } from "./support/Support";
+ minMaxLengthForType,
+ minMaxValueForType,
+} from "./attributes/Constraints";
+import { StringTypes } from "./attributes/StringTypes";
import {
- UnionInstantiationTransformer,
- DecodingChoiceTransformer,
- Transformation,
- transformationTypeAttributeKind,
- StringMatchTransformer,
- StringProducerTransformer,
+ type TypeAttributes,
+ combineTypeAttributes,
+ emptyTypeAttributes,
+} from "./attributes/TypeAttributes";
+import type { GraphRewriteBuilder } from "./GraphRewriting";
+import type { RunContext } from "./Run";
+import { assert, defined, panic } from "./support/Support";
+import type { TargetLanguage } from "./TargetLanguage";
+import {
+ ArrayDecodingTransformer,
ChoiceTransformer,
- Transformer,
+ DecodingChoiceTransformer,
DecodingTransformer,
- ParseStringTransformer,
- ArrayDecodingTransformer,
MinMaxLengthCheckTransformer,
- MinMaxValueTransformer
+ MinMaxValueTransformer,
+ ParseStringTransformer,
+ StringMatchTransformer,
+ StringProducerTransformer,
+ Transformation,
+ type Transformer,
+ UnionInstantiationTransformer,
+ transformationTypeAttributeKind,
} from "./Transformers";
-import { TypeAttributes, emptyTypeAttributes, combineTypeAttributes } from "./attributes/TypeAttributes";
-import { StringTypes } from "./attributes/StringTypes";
-import { RunContext } from "./Run";
-import { minMaxLengthForType, minMaxValueForType } from "./attributes/Constraints";
+import {
+ ArrayType,
+ EnumType,
+ type PrimitiveStringTypeKind,
+ type PrimitiveType,
+ type Type,
+ type TypeKind,
+ UnionType,
+ isNumberTypeKind,
+ isPrimitiveStringTypeKind,
+ targetTypeKindForTransformedStringTypeKind,
+} from "./Type";
+import type { TypeGraph } from "./Type/TypeGraph";
+import { type TypeRef, typeRefIndex } from "./Type/TypeRef";
function transformationAttributes(
graph: TypeGraph,
reconstitutedTargetType: TypeRef,
transformer: Transformer,
- debugPrintTransformations: boolean
+ debugPrintTransformations: boolean,
): TypeAttributes {
- const transformation = new Transformation(graph, reconstitutedTargetType, transformer);
+ const transformation = new Transformation(
+ graph,
+ reconstitutedTargetType,
+ transformer,
+ );
if (debugPrintTransformations) {
- console.log(`transformation for ${typeRefIndex(reconstitutedTargetType)}:`);
+ console.log(
+ `transformation for ${typeRefIndex(reconstitutedTargetType)}:`,
+ );
transformation.debugPrint();
- console.log(`reverse:`);
+ console.log("reverse:");
transformation.reverse.debugPrint();
}
+
return transformationTypeAttributeKind.makeAttributes(transformation);
}
@@ -56,17 +78,22 @@ function makeEnumTransformer(
graph: TypeGraph,
enumType: EnumType,
stringType: TypeRef,
- continuation?: Transformer
+ continuation?: Transformer,
): Transformer {
const sortedCases = Array.from(enumType.cases).sort();
const caseTransformers = sortedCases.map(
- c =>
+ (c) =>
new StringMatchTransformer(
graph,
stringType,
- new StringProducerTransformer(graph, stringType, continuation, c),
- c
- )
+ new StringProducerTransformer(
+ graph,
+ stringType,
+ continuation,
+ c,
+ ),
+ c,
+ ),
);
return new ChoiceTransformer(graph, stringType, caseTransformers);
}
@@ -76,7 +103,7 @@ function replaceUnion(
builder: GraphRewriteBuilder,
forwardingRef: TypeRef,
transformedTypes: Set,
- debugPrintTransformations: boolean
+ debugPrintTransformations: boolean,
): TypeRef {
const graph = builder.typeGraph;
@@ -90,20 +117,31 @@ function replaceUnion(
// the union must be the target type, so if one already exists, use that
// one, otherwise make a new one.
if (isPrimitiveStringTypeKind(t.kind)) {
- const targetTypeKind = targetTypeKindForTransformedStringTypeKind(t.kind);
+ const targetTypeKind = targetTypeKindForTransformedStringTypeKind(
+ t.kind,
+ );
if (targetTypeKind !== undefined) {
const targetTypeMember = union.findMember(targetTypeKind);
- additionalAttributes = combineTypeAttributes("union", additionalAttributes, t.getAttributes());
+ additionalAttributes = combineTypeAttributes(
+ "union",
+ additionalAttributes,
+ t.getAttributes(),
+ );
if (targetTypeMember !== undefined) {
return builder.reconstituteType(targetTypeMember);
}
+
return builder.getPrimitiveType(targetTypeKind);
}
}
+
return builder.reconstituteType(t);
}
- const reconstitutedMembersByKind = mapMapEntries(union.members.entries(), m => [m.kind, reconstituteMember(m)]);
+ const reconstitutedMembersByKind = mapMapEntries(
+ union.members.entries(),
+ (m) => [m.kind, reconstituteMember(m)],
+ );
const reconstitutedMemberSet = new Set(reconstitutedMembersByKind.values());
const haveUnion = reconstitutedMemberSet.size > 1;
@@ -115,7 +153,7 @@ function replaceUnion(
? builder.getUnionType(union.getAttributes(), reconstitutedMemberSet)
: defined(iterableFirst(reconstitutedMemberSet));
- function memberForKind(kind: TypeKind) {
+ function memberForKind(kind: TypeKind): number {
return defined(reconstitutedMembersByKind.get(kind));
}
@@ -124,18 +162,28 @@ function replaceUnion(
return new UnionInstantiationTransformer(graph, memberTypeRef);
}
- function transformerForKind(kind: TypeKind) {
+ function transformerForKind(
+ kind: TypeKind,
+ ): DecodingTransformer | undefined {
const member = union.findMember(kind);
if (member === undefined) return undefined;
const memberTypeRef = memberForKind(kind);
- return new DecodingTransformer(graph, memberTypeRef, consumer(memberTypeRef));
+ return new DecodingTransformer(
+ graph,
+ memberTypeRef,
+ consumer(memberTypeRef),
+ );
}
let maybeStringType: TypeRef | undefined = undefined;
function getStringType(): TypeRef {
if (maybeStringType === undefined) {
- maybeStringType = builder.getStringType(emptyTypeAttributes, StringTypes.unrestricted);
+ maybeStringType = builder.getStringType(
+ emptyTypeAttributes,
+ StringTypes.unrestricted,
+ );
}
+
return maybeStringType;
}
@@ -146,22 +194,46 @@ function replaceUnion(
if (minMax === undefined) {
return consumer(memberRef);
}
+
const [min, max] = minMax;
- return new MinMaxLengthCheckTransformer(graph, getStringType(), consumer(memberRef), min, max);
- } else if (t instanceof EnumType && transformedTypes.has(t)) {
- return makeEnumTransformer(graph, t, getStringType(), consumer(memberRef));
- } else {
- return new ParseStringTransformer(graph, getStringType(), consumer(memberRef));
+ return new MinMaxLengthCheckTransformer(
+ graph,
+ getStringType(),
+ consumer(memberRef),
+ min,
+ max,
+ );
+ }
+ if (t instanceof EnumType && transformedTypes.has(t)) {
+ return makeEnumTransformer(
+ graph,
+ t,
+ getStringType(),
+ consumer(memberRef),
+ );
}
+
+ return new ParseStringTransformer(
+ graph,
+ getStringType(),
+ consumer(memberRef),
+ );
}
- const stringTypes = arraySortByInto(Array.from(union.stringTypeMembers), t => t.kind);
+ const stringTypes = arraySortByInto(
+ Array.from(union.stringTypeMembers),
+ (t) => t.kind,
+ );
let transformerForString: Transformer | undefined;
if (stringTypes.length === 0) {
transformerForString = undefined;
} else if (stringTypes.length === 1) {
const t = stringTypes[0];
- transformerForString = new DecodingTransformer(graph, getStringType(), transformerForStringType(t));
+ transformerForString = new DecodingTransformer(
+ graph,
+ getStringType(),
+ transformerForStringType(t),
+ );
} else {
transformerForString = new DecodingTransformer(
graph,
@@ -169,8 +241,8 @@ function replaceUnion(
new ChoiceTransformer(
graph,
getStringType(),
- stringTypes.map(t => defined(transformerForStringType(t)))
- )
+ stringTypes.map((t) => defined(transformerForStringType(t))),
+ ),
);
}
@@ -178,9 +250,9 @@ function replaceUnion(
const transformerForMap = transformerForKind("map");
assert(
transformerForClass === undefined || transformerForMap === undefined,
- "Can't have both class and map in a transformed union"
+ "Can't have both class and map in a transformed union",
);
- const transformerForObject = transformerForClass !== undefined ? transformerForClass : transformerForMap;
+ const transformerForObject = transformerForClass ?? transformerForMap;
const transformer = new DecodingChoiceTransformer(
graph,
@@ -191,13 +263,18 @@ function replaceUnion(
transformerForKind("bool"),
transformerForString,
transformerForKind("array"),
- transformerForObject
+ transformerForObject,
+ );
+ const attributes = transformationAttributes(
+ graph,
+ reconstitutedTargetType,
+ transformer,
+ debugPrintTransformations,
);
- const attributes = transformationAttributes(graph, reconstitutedTargetType, transformer, debugPrintTransformations);
return builder.getPrimitiveType(
"any",
combineTypeAttributes("union", attributes, additionalAttributes),
- forwardingRef
+ forwardingRef,
);
}
@@ -205,7 +282,7 @@ function replaceArray(
arrayType: ArrayType,
builder: GraphRewriteBuilder,
forwardingRef: TypeRef,
- debugPrintTransformations: boolean
+ debugPrintTransformations: boolean,
): TypeRef {
const anyType = builder.getPrimitiveType("any");
const anyArrayType = builder.getArrayType(emptyTypeAttributes, anyType);
@@ -215,19 +292,19 @@ function replaceArray(
anyArrayType,
undefined,
reconstitutedItems,
- new DecodingTransformer(builder.typeGraph, anyType, undefined)
+ new DecodingTransformer(builder.typeGraph, anyType, undefined),
);
const reconstitutedArray = builder.getArrayType(
builder.reconstituteTypeAttributes(arrayType.getAttributes()),
- reconstitutedItems
+ reconstitutedItems,
);
const attributes = transformationAttributes(
builder.typeGraph,
reconstitutedArray,
transformer,
- debugPrintTransformations
+ debugPrintTransformations,
);
return builder.getArrayType(attributes, anyType, forwardingRef);
@@ -237,43 +314,64 @@ function replaceEnum(
enumType: EnumType,
builder: GraphRewriteBuilder,
forwardingRef: TypeRef,
- debugPrintTransformations: boolean
+ debugPrintTransformations: boolean,
): TypeRef {
- const stringType = builder.getStringType(emptyTypeAttributes, StringTypes.unrestricted);
+ const stringType = builder.getStringType(
+ emptyTypeAttributes,
+ StringTypes.unrestricted,
+ );
const transformer = new DecodingTransformer(
builder.typeGraph,
stringType,
- makeEnumTransformer(builder.typeGraph, enumType, stringType)
+ makeEnumTransformer(builder.typeGraph, enumType, stringType),
+ );
+ const reconstitutedEnum = builder.getEnumType(
+ enumType.getAttributes(),
+ enumType.cases,
);
- const reconstitutedEnum = builder.getEnumType(enumType.getAttributes(), enumType.cases);
const attributes = transformationAttributes(
builder.typeGraph,
reconstitutedEnum,
transformer,
- debugPrintTransformations
+ debugPrintTransformations,
+ );
+ return builder.getStringType(
+ attributes,
+ StringTypes.unrestricted,
+ forwardingRef,
);
- return builder.getStringType(attributes, StringTypes.unrestricted, forwardingRef);
}
function replaceNumber(
t: PrimitiveType,
builder: GraphRewriteBuilder,
forwardingRef: TypeRef,
- debugPrintTransformations: boolean
+ debugPrintTransformations: boolean,
): TypeRef {
- const stringType = builder.getStringType(emptyTypeAttributes, StringTypes.unrestricted);
+ const stringType = builder.getStringType(
+ emptyTypeAttributes,
+ StringTypes.unrestricted,
+ );
const [min, max] = defined(minMaxValueForType(t));
const transformer = new DecodingTransformer(
builder.typeGraph,
stringType,
- new MinMaxValueTransformer(builder.typeGraph, stringType, undefined, min, max)
+ new MinMaxValueTransformer(
+ builder.typeGraph,
+ stringType,
+ undefined,
+ min,
+ max,
+ ),
+ );
+ const reconstitutedAttributes = builder.reconstituteTypeAttributes(
+ t.getAttributes(),
);
- const reconstitutedAttributes = builder.reconstituteTypeAttributes(t.getAttributes());
const attributes = transformationAttributes(
builder.typeGraph,
builder.getPrimitiveType("double", reconstitutedAttributes, undefined),
transformer,
- debugPrintTransformations
+ debugPrintTransformations,
);
return builder.getPrimitiveType("double", attributes, forwardingRef);
}
@@ -282,23 +380,38 @@ function replaceString(
t: PrimitiveType,
builder: GraphRewriteBuilder,
forwardingRef: TypeRef,
- debugPrintTransformations: boolean
+ debugPrintTransformations: boolean,
): TypeRef {
const [min, max] = defined(minMaxLengthForType(t));
- const reconstitutedAttributes = builder.reconstituteTypeAttributes(t.getAttributes());
- const stringType = builder.getStringType(emptyTypeAttributes, StringTypes.unrestricted);
+ const reconstitutedAttributes = builder.reconstituteTypeAttributes(
+ t.getAttributes(),
+ );
+ const stringType = builder.getStringType(
+ emptyTypeAttributes,
+ StringTypes.unrestricted,
+ );
const transformer = new DecodingTransformer(
builder.typeGraph,
stringType,
- new MinMaxLengthCheckTransformer(builder.typeGraph, stringType, undefined, min, max)
+ new MinMaxLengthCheckTransformer(
+ builder.typeGraph,
+ stringType,
+ undefined,
+ min,
+ max,
+ ),
);
const attributes = transformationAttributes(
builder.typeGraph,
builder.getStringType(reconstitutedAttributes, undefined),
transformer,
- debugPrintTransformations
+ debugPrintTransformations,
+ );
+ return builder.getStringType(
+ attributes,
+ StringTypes.unrestricted,
+ forwardingRef,
);
- return builder.getStringType(attributes, StringTypes.unrestricted, forwardingRef);
}
function replaceTransformedStringType(
@@ -306,74 +419,124 @@ function replaceTransformedStringType(
kind: PrimitiveStringTypeKind,
builder: GraphRewriteBuilder,
forwardingRef: TypeRef,
- debugPrintTransformations: boolean
+ debugPrintTransformations: boolean,
): TypeRef {
- const reconstitutedAttributes = builder.reconstituteTypeAttributes(t.getAttributes());
- const targetTypeKind = withDefault(targetTypeKindForTransformedStringTypeKind(kind), kind);
- const stringType = builder.getStringType(emptyTypeAttributes, StringTypes.unrestricted);
+ const reconstitutedAttributes = builder.reconstituteTypeAttributes(
+ t.getAttributes(),
+ );
+ const targetTypeKind = withDefault(
+ targetTypeKindForTransformedStringTypeKind(kind),
+ kind,
+ );
+ const stringType = builder.getStringType(
+ emptyTypeAttributes,
+ StringTypes.unrestricted,
+ );
const transformer = new DecodingTransformer(
builder.typeGraph,
stringType,
- new ParseStringTransformer(builder.typeGraph, stringType, undefined)
+ new ParseStringTransformer(builder.typeGraph, stringType, undefined),
);
const attributes = transformationAttributes(
builder.typeGraph,
builder.getPrimitiveType(targetTypeKind, reconstitutedAttributes),
transformer,
- debugPrintTransformations
+ debugPrintTransformations,
+ );
+ return builder.getStringType(
+ attributes,
+ StringTypes.unrestricted,
+ forwardingRef,
);
- return builder.getStringType(attributes, StringTypes.unrestricted, forwardingRef);
}
-export function makeTransformations(ctx: RunContext, graph: TypeGraph, targetLanguage: TargetLanguage): TypeGraph {
- const transformedTypes = setFilter(graph.allTypesUnordered(), t => {
+export function makeTransformations(
+ ctx: RunContext,
+ graph: TypeGraph,
+ targetLanguage: TargetLanguage,
+): TypeGraph {
+ const transformedTypes = setFilter(graph.allTypesUnordered(), (t) => {
if (targetLanguage.needsTransformerForType(t)) return true;
if (!(t instanceof UnionType)) return false;
const stringMembers = t.stringTypeMembers;
if (stringMembers.size <= 1) return false;
- return iterableSome(stringMembers, m => targetLanguage.needsTransformerForType(m));
+ return iterableSome(stringMembers, (m) =>
+ targetLanguage.needsTransformerForType(m),
+ );
});
function replace(
setOfOneUnion: ReadonlySet,
builder: GraphRewriteBuilder,
- forwardingRef: TypeRef
+ forwardingRef: TypeRef,
): TypeRef {
const t = defined(iterableFirst(setOfOneUnion));
if (t instanceof UnionType) {
- return replaceUnion(t, builder, forwardingRef, transformedTypes, ctx.debugPrintTransformations);
+ return replaceUnion(
+ t,
+ builder,
+ forwardingRef,
+ transformedTypes,
+ ctx.debugPrintTransformations,
+ );
}
+
if (t instanceof ArrayType) {
- return replaceArray(t, builder, forwardingRef, ctx.debugPrintTransformations);
+ return replaceArray(
+ t,
+ builder,
+ forwardingRef,
+ ctx.debugPrintTransformations,
+ );
}
+
if (t instanceof EnumType) {
- return replaceEnum(t, builder, forwardingRef, ctx.debugPrintTransformations);
+ return replaceEnum(
+ t,
+ builder,
+ forwardingRef,
+ ctx.debugPrintTransformations,
+ );
}
+
if (t.kind === "string") {
- return replaceString(t as PrimitiveType, builder, forwardingRef, ctx.debugPrintTransformations);
+ return replaceString(
+ t as PrimitiveType,
+ builder,
+ forwardingRef,
+ ctx.debugPrintTransformations,
+ );
}
+
if (isNumberTypeKind(t.kind)) {
- return replaceNumber(t as PrimitiveType, builder, forwardingRef, ctx.debugPrintTransformations);
+ return replaceNumber(
+ t as PrimitiveType,
+ builder,
+ forwardingRef,
+ ctx.debugPrintTransformations,
+ );
}
+
if (isPrimitiveStringTypeKind(t.kind)) {
return replaceTransformedStringType(
t as PrimitiveType,
t.kind,
builder,
forwardingRef,
- ctx.debugPrintTransformations
+ ctx.debugPrintTransformations,
);
}
+
return panic(`Cannot make transformation for type ${t.kind}`);
}
- const groups = Array.from(transformedTypes).map(t => [t]);
+ const groups = Array.from(transformedTypes).map((t) => [t]);
return graph.rewrite(
"make-transformations",
ctx.stringTypeMapping,
false,
groups,
ctx.debugPrintReconstitution,
- replace
+ replace,
);
}
diff --git a/packages/quicktype-core/src/MarkovChain.ts b/packages/quicktype-core/src/MarkovChain.ts
index 1c1b730a6..cd36d4b56 100644
--- a/packages/quicktype-core/src/MarkovChain.ts
+++ b/packages/quicktype-core/src/MarkovChain.ts
@@ -1,23 +1,24 @@
-import { panic, assert, inflateBase64 } from "./support/Support";
import { encodedMarkovChain } from "./EncodedMarkovChain";
+import { assert, inflateBase64, panic } from "./support/Support";
// This must be null, not undefined, because we read it from JSON.
export type SubTrie = number | null | Trie;
-export type Trie = {
- count: number;
+export interface Trie {
arr: SubTrie[];
-};
+ count: number;
+}
-export type MarkovChain = {
- trie: Trie;
+export interface MarkovChain {
depth: number;
-};
+ trie: Trie;
+}
function makeTrie(): Trie {
const arr: SubTrie[] = [];
for (let i = 0; i < 128; i++) {
arr.push(null);
}
+
return { count: 0, arr };
}
@@ -35,6 +36,7 @@ function lookup(t: Trie, seq: string, i: number): Trie | number | undefined {
if (n === null) {
return undefined;
}
+
if (typeof n === "object") {
return lookup(n, seq, i + 1);
} else {
@@ -52,12 +54,14 @@ function increment(t: Trie, seq: string, i: number): void {
if (typeof t !== "object") {
return panic("Malformed trie");
}
+
let n = t.arr[first];
if (n === null) {
n = 0;
} else if (typeof n === "object") {
return panic("Malformed trie");
}
+
t.arr[first] = n + 1;
t.count += 1;
return;
@@ -67,10 +71,12 @@ function increment(t: Trie, seq: string, i: number): void {
if (st === null) {
t.arr[first] = st = makeTrie();
}
+
if (typeof st !== "object") {
return panic("Malformed trie");
}
- return increment(st, seq, i + 1);
+
+ increment(st, seq, i + 1);
}
export function train(lines: string[], depth: number): MarkovChain {
@@ -88,11 +94,15 @@ export function load(): MarkovChain {
return JSON.parse(inflateBase64(encodedMarkovChain));
}
-export function evaluateFull(mc: MarkovChain, word: string): [number, number[]] {
+export function evaluateFull(
+ mc: MarkovChain,
+ word: string,
+): [number, number[]] {
const { trie, depth } = mc;
if (word.length < depth) {
return [1, []];
}
+
let p = 1;
const scores: number[] = [];
for (let i = depth; i <= word.length; i++) {
@@ -100,12 +110,15 @@ export function evaluateFull(mc: MarkovChain, word: string): [number, number[]]
if (typeof cp === "object") {
return panic("Did we mess up the depth?");
}
+
if (cp === undefined) {
cp = 0.0001;
}
+
scores.push(cp);
p = p * cp;
}
+
return [Math.pow(p, 1 / (word.length - depth + 1)), scores];
}
@@ -113,25 +126,37 @@ export function evaluate(mc: MarkovChain, word: string): number {
return evaluateFull(mc, word)[0];
}
-function randomInt(lower: number, upper: number) {
+function randomInt(lower: number, upper: number): number {
const range = upper - lower;
return lower + Math.floor(Math.random() * range);
}
-export function generate(mc: MarkovChain, state: string, unseenWeight: number): string {
- assert(state.length === mc.depth - 1, "State and chain length don't match up");
+export function generate(
+ mc: MarkovChain,
+ state: string,
+ unseenWeight: number,
+): string {
+ assert(
+ state.length === mc.depth - 1,
+ "State and chain length don't match up",
+ );
const t = lookup(mc.trie, state, 0);
if (typeof t === "number") {
return panic("Wrong depth?");
}
+
if (t === undefined) {
return String.fromCharCode(randomInt(32, 127));
}
- const counts = t.arr.map((x, i) => (x === null ? (i === 0 ? 0 : unseenWeight) : (x as number)));
+
+ const counts = t.arr.map((x, i) =>
+ x === null ? (i === 0 ? 0 : unseenWeight) : (x as number),
+ );
let n = 0;
for (const c of counts) {
n += c;
}
+
const r = randomInt(0, n);
let sum = 0;
for (let i = 0; i < counts.length; i++) {
@@ -140,6 +165,7 @@ export function generate(mc: MarkovChain, state: string, unseenWeight: number):
return String.fromCharCode(i);
}
}
+
return panic("We screwed up bookkeeping, or randomInt");
}
@@ -171,6 +197,6 @@ export function test(): void {
testWord(
mc,
- "\ud83d\udebe \ud83c\udd92 \ud83c\udd93 \ud83c\udd95 \ud83c\udd96 \ud83c\udd97 \ud83c\udd99 \ud83c\udfe7"
+ "\ud83d\udebe \ud83c\udd92 \ud83c\udd93 \ud83c\udd95 \ud83c\udd96 \ud83c\udd97 \ud83c\udd99 \ud83c\udfe7",
);
}
diff --git a/packages/quicktype-core/src/Messages.ts b/packages/quicktype-core/src/Messages.ts
index d740163ec..285207c76 100644
--- a/packages/quicktype-core/src/Messages.ts
+++ b/packages/quicktype-core/src/Messages.ts
@@ -1,5 +1,6 @@
-import { StringMap } from "./support/Support";
-import { Ref } from "./input/JSONSchemaInput";
+/* eslint-disable @typescript-eslint/no-explicit-any */
+import type { Ref } from "./input/JSONSchemaInput";
+import type { StringMap } from "./support/Support";
export type ErrorProperties =
| { kind: "InternalError"; properties: { message: string } }
@@ -7,41 +8,89 @@ export type ErrorProperties =
// Misc
| {
kind: "MiscJSONParseError";
- properties: { description: string; address: string; message: string };
+ properties: { address: string; description: string; message: string };
+ }
+ | {
+ kind: "MiscReadError";
+ properties: { fileOrURL: string; message: string };
}
- | { kind: "MiscReadError"; properties: { fileOrURL: string; message: string } }
| { kind: "MiscUnicodeHighSurrogateWithoutLowSurrogate"; properties: {} }
- | { kind: "MiscInvalidMinMaxConstraint"; properties: { min: number; max: number } }
+ | {
+ kind: "MiscInvalidMinMaxConstraint";
+ properties: { max: number; min: number };
+ }
// Inference
- | { kind: "InferenceJSONReferenceNotRooted"; properties: { reference: string } }
- | { kind: "InferenceJSONReferenceToUnion"; properties: { reference: string } }
- | { kind: "InferenceJSONReferenceWrongProperty"; properties: { reference: string } }
- | { kind: "InferenceJSONReferenceInvalidArrayIndex"; properties: { reference: string } }
+ | {
+ kind: "InferenceJSONReferenceNotRooted";
+ properties: { reference: string };
+ }
+ | {
+ kind: "InferenceJSONReferenceToUnion";
+ properties: { reference: string };
+ }
+ | {
+ kind: "InferenceJSONReferenceWrongProperty";
+ properties: { reference: string };
+ }
+ | {
+ kind: "InferenceJSONReferenceInvalidArrayIndex";
+ properties: { reference: string };
+ }
// JSON Schema input
| { kind: "SchemaArrayIsInvalidSchema"; properties: { ref: Ref } }
| { kind: "SchemaNullIsInvalidSchema"; properties: { ref: Ref } }
- | { kind: "SchemaRefMustBeString"; properties: { actual: string; ref: Ref } }
+ | {
+ kind: "SchemaRefMustBeString";
+ properties: { actual: string; ref: Ref };
+ }
| { kind: "SchemaAdditionalTypesForbidRequired"; properties: { ref: Ref } }
| { kind: "SchemaNoTypeSpecified"; properties: { ref: Ref } }
- | { kind: "SchemaInvalidType"; properties: { type: string; ref: Ref } }
+ | { kind: "SchemaInvalidType"; properties: { ref: Ref; type: string } }
| { kind: "SchemaFalseNotSupported"; properties: { ref: Ref } }
- | { kind: "SchemaInvalidJSONSchemaType"; properties: { type: string; ref: Ref } }
- | { kind: "SchemaRequiredMustBeStringOrStringArray"; properties: { actual: any; ref: Ref } }
- | { kind: "SchemaRequiredElementMustBeString"; properties: { element: any; ref: Ref } }
- | { kind: "SchemaTypeMustBeStringOrStringArray"; properties: { actual: any } }
- | { kind: "SchemaTypeElementMustBeString"; properties: { element: any; ref: Ref } }
- | { kind: "SchemaArrayItemsMustBeStringOrArray"; properties: { actual: any; ref: Ref } }
+ | {
+ kind: "SchemaInvalidJSONSchemaType";
+ properties: { ref: Ref; type: string };
+ }
+ | {
+ kind: "SchemaRequiredMustBeStringOrStringArray";
+ properties: { actual: any; ref: Ref };
+ }
+ | {
+ kind: "SchemaRequiredElementMustBeString";
+ properties: { element: any; ref: Ref };
+ }
+ | {
+ kind: "SchemaTypeMustBeStringOrStringArray";
+ properties: { actual: any };
+ }
+ | {
+ kind: "SchemaTypeElementMustBeString";
+ properties: { element: any; ref: Ref };
+ }
+ | {
+ kind: "SchemaArrayItemsMustBeStringOrArray";
+ properties: { actual: any; ref: Ref };
+ }
| { kind: "SchemaIDMustHaveAddress"; properties: { id: string; ref: Ref } }
- | { kind: "SchemaWrongAccessorEntryArrayLength"; properties: { operation: string; ref: Ref } }
+ | {
+ kind: "SchemaWrongAccessorEntryArrayLength";
+ properties: { operation: string; ref: Ref };
+ }
| {
kind: "SchemaSetOperationCasesIsNotArray";
- properties: { operation: string; cases: any; ref: Ref };
+ properties: { cases: any; operation: string; ref: Ref };
+ }
+ | {
+ kind: "SchemaMoreThanOneUnionMemberName";
+ properties: { names: string[] };
}
- | { kind: "SchemaMoreThanOneUnionMemberName"; properties: { names: string[] } }
| { kind: "SchemaCannotGetTypesFromBoolean"; properties: { ref: string } }
- | { kind: "SchemaCannotIndexArrayWithNonNumber"; properties: { actual: string; ref: Ref } }
+ | {
+ kind: "SchemaCannotIndexArrayWithNonNumber";
+ properties: { actual: string; ref: Ref };
+ }
| { kind: "SchemaIndexNotInArray"; properties: { index: number; ref: Ref } }
| { kind: "SchemaKeyNotInObject"; properties: { key: string; ref: Ref } }
| { kind: "SchemaFetchError"; properties: { address: string; base: Ref } }
@@ -58,11 +107,17 @@ export type ErrorProperties =
| { kind: "DriverCannotInferNameForSchema"; properties: { uri: string } }
| { kind: "DriverNoGraphQLQueryGiven"; properties: {} }
| { kind: "DriverNoGraphQLSchemaInDir"; properties: { dir: string } }
- | { kind: "DriverMoreThanOneGraphQLSchemaInDir"; properties: { dir: string } }
+ | {
+ kind: "DriverMoreThanOneGraphQLSchemaInDir";
+ properties: { dir: string };
+ }
| { kind: "DriverSourceLangMustBeGraphQL"; properties: {} }
| { kind: "DriverGraphQLSchemaNeeded"; properties: {} }
| { kind: "DriverInputFileDoesNotExist"; properties: { filename: string } }
- | { kind: "DriverCannotMixJSONWithOtherSamples"; properties: { dir: string } }
+ | {
+ kind: "DriverCannotMixJSONWithOtherSamples";
+ properties: { dir: string };
+ }
| { kind: "DriverCannotMixNonJSONInputs"; properties: { dir: string } }
| { kind: "DriverUnknownDebugOption"; properties: { option: string } }
| { kind: "DriverNoLanguageOrExtension"; properties: {} }
@@ -70,16 +125,22 @@ export type ErrorProperties =
// IR
| { kind: "IRNoForwardDeclarableTypeInCycle"; properties: {} }
- | { kind: "IRTypeAttributesNotPropagated"; properties: { count: number; indexes: number[] } }
+ | {
+ kind: "IRTypeAttributesNotPropagated";
+ properties: { count: number; indexes: number[] };
+ }
| { kind: "IRNoEmptyUnions"; properties: {} }
// Rendering
- | { kind: "RendererUnknownOptionValue"; properties: { value: string; name: string } }
+ | {
+ kind: "RendererUnknownOptionValue";
+ properties: { name: string; value: string };
+ }
// TypeScript input
| { kind: "TypeScriptCompilerError"; properties: { message: string } };
-export type ErrorKinds = ErrorProperties extends { kind: infer K } ? K : never;
+export type ErrorKinds = ErrorProperties["kind"];
type ErrorMessages = { readonly [K in ErrorKinds]: string };
@@ -87,45 +148,62 @@ const errorMessages: ErrorMessages = {
InternalError: "Internal error: ${message}",
// Misc
- MiscJSONParseError: "Syntax error in ${description} JSON ${address}: ${message}",
+ MiscJSONParseError:
+ "Syntax error in ${description} JSON ${address}: ${message}",
MiscReadError: "Cannot read from file or URL ${fileOrURL}: ${message}",
- MiscUnicodeHighSurrogateWithoutLowSurrogate: "Malformed unicode: High surrogate not followed by low surrogate",
+ MiscUnicodeHighSurrogateWithoutLowSurrogate:
+ "Malformed unicode: High surrogate not followed by low surrogate",
MiscInvalidMinMaxConstraint: "Invalid min-max constraint: ${min}-${max}",
// Inference
- InferenceJSONReferenceNotRooted: "JSON reference doesn't start with '#/': ${reference}",
- InferenceJSONReferenceToUnion: "JSON reference points to a union type: ${reference}",
- InferenceJSONReferenceWrongProperty: "JSON reference points to a non-existant property: ${reference}",
- InferenceJSONReferenceInvalidArrayIndex: "JSON reference uses invalid array index: ${reference}",
+ InferenceJSONReferenceNotRooted:
+ "JSON reference doesn't start with '#/': ${reference}",
+ InferenceJSONReferenceToUnion:
+ "JSON reference points to a union type: ${reference}",
+ InferenceJSONReferenceWrongProperty:
+ "JSON reference points to a non-existant property: ${reference}",
+ InferenceJSONReferenceInvalidArrayIndex:
+ "JSON reference uses invalid array index: ${reference}",
// JSON Schema input
SchemaArrayIsInvalidSchema: "An array is not a valid JSON Schema at ${ref}",
SchemaNullIsInvalidSchema: "null is not a valid JSON Schema at ${ref}",
- SchemaRefMustBeString: "$ref must be a string, but is an ${actual} at ${ref}",
+ SchemaRefMustBeString:
+ "$ref must be a string, but is an ${actual} at ${ref}",
SchemaAdditionalTypesForbidRequired:
"Can't have non-specified required properties but forbidden additionalTypes at ${ref}",
- SchemaNoTypeSpecified: "JSON Schema must specify at least one type at ${ref}",
+ SchemaNoTypeSpecified:
+ "JSON Schema must specify at least one type at ${ref}",
SchemaInvalidType: "Invalid type ${type} in JSON Schema at ${ref}",
SchemaFalseNotSupported: 'Schema "false" is not supported at ${ref}',
- SchemaInvalidJSONSchemaType: "Value of type ${type} is not valid JSON Schema at ${ref}",
+ SchemaInvalidJSONSchemaType:
+ "Value of type ${type} is not valid JSON Schema at ${ref}",
SchemaRequiredMustBeStringOrStringArray:
"`required` must be string or array of strings, but is ${actual} at ${ref}",
- SchemaRequiredElementMustBeString: "`required` must contain only strings, but it has ${element}, at ${ref}",
- SchemaTypeMustBeStringOrStringArray: "`type` must be string or array of strings, but is ${actual}",
- SchemaTypeElementMustBeString: "`type` must contain only strings, but it has ${element}",
- SchemaArrayItemsMustBeStringOrArray: "Array items must be an array or an object, but is ${actual}",
+ SchemaRequiredElementMustBeString:
+ "`required` must contain only strings, but it has ${element}, at ${ref}",
+ SchemaTypeMustBeStringOrStringArray:
+ "`type` must be string or array of strings, but is ${actual}",
+ SchemaTypeElementMustBeString:
+ "`type` must contain only strings, but it has ${element}",
+ SchemaArrayItemsMustBeStringOrArray:
+ "Array items must be an array or an object, but is ${actual}",
SchemaIDMustHaveAddress: "$id ${id} doesn't have an address at ${ref}",
SchemaWrongAccessorEntryArrayLength:
"Accessor entry array must have the same number of entries as the ${operation} at ${ref}",
- SchemaSetOperationCasesIsNotArray: "${operation} cases must be an array, but is ${cases}, at ${ref}",
- SchemaMoreThanOneUnionMemberName: "More than one name given for union member: ${names}",
+ SchemaSetOperationCasesIsNotArray:
+ "${operation} cases must be an array, but is ${cases}, at ${ref}",
+ SchemaMoreThanOneUnionMemberName:
+ "More than one name given for union member: ${names}",
SchemaCannotGetTypesFromBoolean:
"Schema value to get top-level types from must be an object, but is boolean, at ${ref}",
SchemaCannotIndexArrayWithNonNumber:
"Trying to index array in schema with key that is not a number, but is ${actual} at ${ref}",
- SchemaIndexNotInArray: "Index ${index} out of range of schema array at ${ref}",
+ SchemaIndexNotInArray:
+ "Index ${index} out of range of schema array at ${ref}",
SchemaKeyNotInObject: "Key ${key} not in schema object at ${ref}",
- SchemaFetchError: "Could not fetch schema ${address}, referred to from ${base}",
+ SchemaFetchError:
+ "Could not fetch schema ${address}, referred to from ${base}",
SchemaFetchErrorTopLevel: "Could not fetch top-level schema ${address}",
SchemaFetchErrorAdditional: "Could not fetch additional schema ${address}",
@@ -135,19 +213,26 @@ const errorMessages: ErrorMessages = {
// Driver
DriverUnknownSourceLanguage: "Unknown source language ${lang}",
DriverUnknownOutputLanguage: "Unknown output language ${lang}",
- DriverMoreThanOneInputGiven: "More than one input given for top-level ${topLevel}",
+ DriverMoreThanOneInputGiven:
+ "More than one input given for top-level ${topLevel}",
DriverCannotInferNameForSchema: "Cannot infer name for schema ${uri}",
- DriverNoGraphQLQueryGiven: "Please specify at least one GraphQL query as input",
+ DriverNoGraphQLQueryGiven:
+ "Please specify at least one GraphQL query as input",
DriverNoGraphQLSchemaInDir: "No GraphQL schema in ${dir}",
- DriverMoreThanOneGraphQLSchemaInDir: "More than one GraphQL schema in ${dir}",
- DriverSourceLangMustBeGraphQL: "If a GraphQL schema is specified, the source language must be GraphQL",
- DriverGraphQLSchemaNeeded: "Please specify a GraphQL schema with --graphql-schema or --graphql-introspect",
+ DriverMoreThanOneGraphQLSchemaInDir:
+ "More than one GraphQL schema in ${dir}",
+ DriverSourceLangMustBeGraphQL:
+ "If a GraphQL schema is specified, the source language must be GraphQL",
+ DriverGraphQLSchemaNeeded:
+ "Please specify a GraphQL schema with --graphql-schema or --graphql-introspect",
DriverInputFileDoesNotExist: "Input file ${filename} does not exist",
DriverCannotMixJSONWithOtherSamples:
"Cannot mix JSON samples with JSON Schems, GraphQL, or TypeScript in input subdirectory ${dir}",
- DriverCannotMixNonJSONInputs: "Cannot mix JSON Schema, GraphQL, and TypeScript in an input subdirectory ${dir}",
+ DriverCannotMixNonJSONInputs:
+ "Cannot mix JSON Schema, GraphQL, and TypeScript in an input subdirectory ${dir}",
DriverUnknownDebugOption: "Unknown debug option ${option}",
- DriverNoLanguageOrExtension: "Please specify a language (--lang) or an output file extension",
+ DriverNoLanguageOrExtension:
+ "Please specify a language (--lang) or an output file extension",
DriverCLIOptionParsingFailed: "Option parsing failed: ${message}",
// IR
@@ -155,54 +240,69 @@ const errorMessages: ErrorMessages = {
"Cannot resolve cycle because it doesn't contain types that can be forward declared",
IRTypeAttributesNotPropagated:
"Type attributes for ${count} types were not carried over to the new graph: ${indexes}",
- IRNoEmptyUnions: "Trying to make an empty union - do you have an impossible type in your schema?",
+ IRNoEmptyUnions:
+ "Trying to make an empty union - do you have an impossible type in your schema?",
// Rendering
RendererUnknownOptionValue: "Unknown value ${value} for option ${name}",
// TypeScript input
- TypeScriptCompilerError: "TypeScript error: ${message}"
+ TypeScriptCompilerError: "TypeScript error: ${message}",
};
-export type ErrorPropertiesForName = Extract extends { properties: infer P }
+export type ErrorPropertiesForKind = Extract<
+ ErrorProperties,
+ { kind: K }
+> extends { properties: infer P }
? P
: never;
export class QuickTypeError extends Error {
- constructor(
- readonly errorMessage: string,
- readonly messageName: string,
- userMessage: string,
- readonly properties: StringMap
+ public constructor(
+ public readonly errorMessage: string,
+ public readonly messageName: string,
+ public userMessage: string,
+ public readonly properties: StringMap,
) {
super(userMessage);
}
}
-export function messageError(kind: N, properties: ErrorPropertiesForName): never {
+export function messageError(
+ kind: Kind,
+ properties: ErrorPropertiesForKind,
+): never {
const message = errorMessages[kind];
let userMessage: string = message;
- const propertiesMap = properties as StringMap;
-
- for (const name of Object.getOwnPropertyNames(propertiesMap)) {
- let value = propertiesMap[name];
- if (typeof value === "object" && typeof value.toString === "function") {
- value = value.toString();
- } else if (typeof value.message === "string") {
- value = value.message;
+
+ for (const [name, value] of Object.entries(properties as StringMap)) {
+ let valueString = "";
+ if (
+ typeof value === "object" &&
+ typeof value?.toString === "function"
+ ) {
+ valueString = value.toString();
+ } else if (typeof value?.message === "string") {
+ valueString = value.message;
} else if (typeof value !== "string") {
- value = JSON.stringify(value);
+ valueString = JSON.stringify(value);
}
- userMessage = userMessage.replace("${" + name + "}", value);
+
+ userMessage = userMessage.replace("${" + name + "}", valueString);
}
- throw new QuickTypeError(message, kind, userMessage, propertiesMap);
+ throw new QuickTypeError(
+ message,
+ kind,
+ userMessage,
+ properties as StringMap,
+ );
}
-export function messageAssert(
+export function messageAssert(
assertion: boolean,
- kind: N,
- properties: ErrorPropertiesForName
+ kind: Kind,
+ properties: ErrorPropertiesForKind,
): void {
if (assertion) return;
return messageError(kind, properties);
diff --git a/packages/quicktype-core/src/Naming.ts b/packages/quicktype-core/src/Naming.ts
index a8508ca51..73df1ed72 100644
--- a/packages/quicktype-core/src/Naming.ts
+++ b/packages/quicktype-core/src/Naming.ts
@@ -1,31 +1,34 @@
import {
- setUnion,
- setUnionInto,
- setMap,
- setFilter,
+ iterableEvery,
iterableFind,
- iterableSome,
+ iterableFirst,
iterableMinBy,
- setGroupBy,
+ iterableSome,
+ mapMergeInto,
+ setFilter,
setFilterMap,
- iterableFirst,
- iterableEvery,
- mapMergeInto
+ setGroupBy,
+ setMap,
+ setUnion,
+ setUnionInto,
} from "collection-utils";
-import { defined, assert, panic } from "./support/Support";
+import { assert, defined, panic } from "./support/Support";
export class Namespace {
- readonly forbiddenNamespaces: ReadonlySet;
- readonly additionalForbidden: ReadonlySet;
+ public readonly forbiddenNamespaces: ReadonlySet;
+
+ public readonly additionalForbidden: ReadonlySet;
+
private readonly _children = new Set();
+
private readonly _members = new Set();
- constructor(
+ public constructor(
_name: string,
parent: Namespace | undefined,
forbiddenNamespaces: Iterable,
- additionalForbidden: Iterable
+ additionalForbidden: Iterable,
) {
this.forbiddenNamespaces = new Set(forbiddenNamespaces);
this.additionalForbidden = new Set(additionalForbidden);
@@ -38,20 +41,23 @@ export class Namespace {
this._children.add(child);
}
- get children(): ReadonlySet {
+ public get children(): ReadonlySet {
return this._children;
}
- get members(): ReadonlySet {
+ public get members(): ReadonlySet {
return this._members;
}
- get forbiddenNameds(): ReadonlySet {
+ public get forbiddenNameds(): ReadonlySet {
// FIXME: cache
- return setUnion(this.additionalForbidden, ...Array.from(this.forbiddenNamespaces).map(ns => ns.members));
+ return setUnion(
+ this.additionalForbidden,
+ ...Array.from(this.forbiddenNamespaces).map((ns) => ns.members),
+ );
}
- add(named: TName): TName {
+ public add(named: TName): TName {
this._members.add(named);
return named;
}
@@ -77,25 +83,32 @@ export type NameStyle = (rawName: string) => string;
export class Namer {
private readonly _prefixes: ReadonlySet;
- constructor(readonly name: string, readonly nameStyle: NameStyle, prefixes: string[]) {
+ public constructor(
+ public readonly name: string,
+ public readonly nameStyle: NameStyle,
+ public prefixes: string[],
+ ) {
this._prefixes = new Set(prefixes);
}
// The namesIterable comes directly out of the context and will
// be modified if we assign
- assignNames(
+ public assignNames(
names: ReadonlyMap,
forbiddenNamesIterable: Iterable,
- namesToAssignIterable: Iterable
+ namesToAssignIterable: Iterable,
): ReadonlyMap {
const forbiddenNames = new Set(forbiddenNamesIterable);
const namesToAssign = Array.from(namesToAssignIterable);
- assert(namesToAssign.length > 0, "Number of names can't be less than 1");
+ assert(
+ namesToAssign.length > 0,
+ "Number of names can't be less than 1",
+ );
const allAssignedNames = new Map();
- let namesToPrefix: Name[] = [];
+ const namesToPrefix: Name[] = [];
for (const name of namesToAssign) {
const proposedNames = name.proposeUnstyledNames(names);
const namingFunction = name.namingFunction;
@@ -103,13 +116,20 @@ export class Namer {
// any of the other names and that isn't already forbidden.
const maybeUniqueName = iterableFind(
proposedNames,
- proposed =>
+ (proposed) =>
!forbiddenNames.has(namingFunction.nameStyle(proposed)) &&
- namesToAssign.every(n => n === name || !n.proposeUnstyledNames(names).has(proposed))
+ namesToAssign.every(
+ (n) =>
+ n === name ||
+ !n.proposeUnstyledNames(names).has(proposed),
+ ),
);
if (maybeUniqueName !== undefined) {
const styledName = namingFunction.nameStyle(maybeUniqueName);
- const assigned = name.nameAssignments(forbiddenNames, styledName);
+ const assigned = name.nameAssignments(
+ forbiddenNames,
+ styledName,
+ );
if (assigned !== null) {
mapMergeInto(allAssignedNames, assigned);
setUnionInto(forbiddenNames, assigned.values());
@@ -122,10 +142,12 @@ export class Namer {
namesToPrefix.push(name);
}
- let prefixes = this._prefixes.values();
+ const prefixes = this._prefixes.values();
let suffixNumber = 1;
for (const name of namesToPrefix) {
- const originalName: string = defined(iterableFirst(name.proposeUnstyledNames(names)));
+ const originalName: string = defined(
+ iterableFirst(name.proposeUnstyledNames(names)),
+ );
for (;;) {
let nameToTry: string;
const { done, value: prefix } = prefixes.next();
@@ -135,8 +157,12 @@ export class Namer {
nameToTry = `${originalName}_${suffixNumber.toString()}`;
suffixNumber++;
}
+
const styledName = name.namingFunction.nameStyle(nameToTry);
- const assigned = name.nameAssignments(forbiddenNames, styledName);
+ const assigned = name.nameAssignments(
+ forbiddenNames,
+ styledName,
+ );
if (assigned === null) continue;
mapMergeInto(allAssignedNames, assigned);
setUnionInto(forbiddenNames, assigned.values());
@@ -161,7 +187,7 @@ const funPrefixes = [
"Magenta",
"Frisky",
"Mischievous",
- "Braggadocious"
+ "Braggadocious",
];
export function funPrefixNamer(name: string, nameStyle: NameStyle): Namer {
@@ -177,30 +203,38 @@ export abstract class Name {
private readonly _associates = new Set();
// If a Named is fixed, the namingFunction is undefined.
- constructor(private readonly _namingFunction: Namer | undefined, readonly order: number) {}
+ public constructor(
+ private readonly _namingFunction: Namer | undefined,
+ public readonly order: number,
+ ) {}
- addAssociate(associate: AssociatedName): void {
+ public addAssociate(associate: AssociatedName): void {
this._associates.add(associate);
}
- abstract get dependencies(): ReadonlyArray;
+ public abstract get dependencies(): readonly Name[];
- isFixed(): this is FixedName {
+ public isFixed(): this is FixedName {
return this instanceof FixedName;
}
- get namingFunction(): Namer {
+ public get namingFunction(): Namer {
return defined(this._namingFunction);
}
// Must return at least one proposal. The proposals are considered in order.
- abstract proposeUnstyledNames(names: ReadonlyMap): ReadonlySet;
+ public abstract proposeUnstyledNames(
+ names: ReadonlyMap,
+ ): ReadonlySet;
- firstProposedName(names: ReadonlyMap): string {
+ public firstProposedName(names: ReadonlyMap): string {
return defined(iterableFirst(this.proposeUnstyledNames(names)));
}
- nameAssignments(forbiddenNames: ReadonlySet, assignedName: string): ReadonlyMap | null {
+ public nameAssignments(
+ forbiddenNames: ReadonlySet,
+ assignedName: string,
+ ): ReadonlyMap | null {
if (forbiddenNames.has(assignedName)) return null;
const assignments = new Map([[this, assignedName]]);
for (const an of this._associates) {
@@ -208,31 +242,35 @@ export abstract class Name {
if (forbiddenNames.has(associatedAssignedName)) {
return null;
}
+
assignments.set(an, associatedAssignedName);
}
+
return assignments;
}
}
// FIXME: FixedNameds should optionally be user-configurable
export class FixedName extends Name {
- constructor(private readonly _fixedName: string) {
+ public constructor(private readonly _fixedName: string) {
super(undefined, 0);
}
- get dependencies(): ReadonlyArray {
+ public get dependencies(): readonly Name[] {
return [];
}
- addAssociate(_: AssociatedName): never {
+ public addAssociate(_: AssociatedName): never {
return panic("Cannot add associates to fixed names");
}
- get fixedName(): string {
+ public get fixedName(): string {
return this._fixedName;
}
- proposeUnstyledNames(_?: ReadonlyMap): ReadonlySet {
+ public proposeUnstyledNames(
+ _?: ReadonlyMap,
+ ): ReadonlySet {
return panic("Only fixedName should be called on FixedName.");
}
}
@@ -240,30 +278,40 @@ export class FixedName extends Name {
export class SimpleName extends Name {
private readonly _unstyledNames: ReadonlySet;
- constructor(unstyledNames: Iterable, namingFunction: Namer, order: number) {
+ public constructor(
+ unstyledNames: Iterable,
+ namingFunction: Namer,
+ order: number,
+ ) {
super(namingFunction, order);
this._unstyledNames = new Set(unstyledNames);
}
- get dependencies(): ReadonlyArray {
+ public get dependencies(): readonly Name[] {
return [];
}
- proposeUnstyledNames(_?: ReadonlyMap): ReadonlySet {
+ public proposeUnstyledNames(
+ _?: ReadonlyMap,
+ ): ReadonlySet {
return this._unstyledNames;
}
}
export class AssociatedName extends Name {
- constructor(private readonly _sponsor: Name, order: number, readonly getName: (sponsorName: string) => string) {
+ public constructor(
+ private readonly _sponsor: Name,
+ order: number,
+ public readonly getName: (sponsorName: string) => string,
+ ) {
super(undefined, order);
}
- get dependencies(): ReadonlyArray {
+ public get dependencies(): readonly Name[] {
return [this._sponsor];
}
- proposeUnstyledNames(_?: ReadonlyMap): never {
+ public proposeUnstyledNames(_?: ReadonlyMap): never {
return panic("AssociatedName must be assigned via its sponsor");
}
}
@@ -271,96 +319,128 @@ export class AssociatedName extends Name {
export class DependencyName extends Name {
private readonly _dependencies: ReadonlySet;
- constructor(
+ public constructor(
namingFunction: Namer | undefined,
order: number,
- private readonly _proposeUnstyledName: (lookup: (n: Name) => string) => string
+ private readonly _proposeUnstyledName: (
+ lookup: (n: Name) => string,
+ ) => string,
) {
super(namingFunction, order);
const dependencies: Name[] = [];
- _proposeUnstyledName(n => {
+ _proposeUnstyledName((n) => {
dependencies.push(n);
return "0xDEADBEEF";
});
this._dependencies = new Set(dependencies);
}
- get dependencies(): ReadonlyArray {
+ public get dependencies(): readonly Name[] {
return Array.from(this._dependencies);
}
- proposeUnstyledNames(names: ReadonlyMap): ReadonlySet {
+ public proposeUnstyledNames(
+ names: ReadonlyMap,
+ ): ReadonlySet {
return new Set([
- this._proposeUnstyledName(n => {
- assert(this._dependencies.has(n), "DependencyName proposer is not pure");
+ this._proposeUnstyledName((n) => {
+ assert(
+ this._dependencies.has(n),
+ "DependencyName proposer is not pure",
+ );
return defined(names.get(n));
- })
+ }),
]);
}
}
-export function keywordNamespace(name: string, keywords: string[]) {
+export function keywordNamespace(
+ name: string,
+ keywords: readonly string[],
+): Namespace {
const ns = new Namespace(name, undefined, [], []);
for (const kw of keywords) {
ns.add(new FixedName(kw));
}
+
return ns;
}
-function allNamespacesRecursively(namespaces: Iterable): ReadonlySet {
- return setUnion(namespaces, ...Array.from(setMap(namespaces, ns => allNamespacesRecursively(ns.children))));
+function allNamespacesRecursively(
+ namespaces: Iterable,
+): ReadonlySet {
+ return setUnion(
+ namespaces,
+ ...Array.from(
+ setMap(namespaces, (ns) => allNamespacesRecursively(ns.children)),
+ ),
+ );
}
class NamingContext {
private readonly _names: Map = new Map();
+
private readonly _namedsForName: Map> = new Map();
- readonly namespaces: ReadonlySet;
- constructor(rootNamespaces: Iterable) {
+ public readonly namespaces: ReadonlySet;
+
+ public constructor(rootNamespaces: Iterable