@azure-tools/typespec-python 0.29.0 → 0.30.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scripts/eng/format.d.ts +2 -0
- package/dist/scripts/eng/format.d.ts.map +1 -0
- package/dist/scripts/eng/format.js +4 -0
- package/dist/scripts/eng/format.js.map +1 -0
- package/dist/scripts/eng/lint.d.ts +5 -0
- package/dist/scripts/eng/lint.d.ts.map +1 -0
- package/dist/scripts/eng/lint.js +66 -0
- package/dist/scripts/eng/lint.js.map +1 -0
- package/dist/scripts/{regenerate.d.ts.map → eng/regenerate.d.ts.map} +1 -1
- package/dist/scripts/{regenerate.js → eng/regenerate.js} +27 -23
- package/dist/scripts/eng/regenerate.js.map +1 -0
- package/dist/scripts/{run-tests.d.ts.map → eng/run-tests.d.ts.map} +1 -1
- package/dist/scripts/{run-tests.js → eng/run-tests.js} +26 -5
- package/dist/scripts/eng/run-tests.js.map +1 -0
- package/dist/scripts/eng/utils.d.ts +3 -0
- package/dist/scripts/eng/utils.d.ts.map +1 -0
- package/dist/scripts/eng/utils.js +39 -0
- package/dist/scripts/eng/utils.js.map +1 -0
- package/dist/src/code-model.d.ts.map +1 -1
- package/dist/src/code-model.js +4 -1
- package/dist/src/code-model.js.map +1 -1
- package/dist/src/emitter.d.ts.map +1 -1
- package/dist/src/emitter.js +14 -3
- package/dist/src/emitter.js.map +1 -1
- package/dist/src/http.js +14 -8
- package/dist/src/http.js.map +1 -1
- package/dist/src/lib.d.ts +1 -0
- package/dist/src/lib.d.ts.map +1 -1
- package/dist/src/lib.js +1 -0
- package/dist/src/lib.js.map +1 -1
- package/dist/src/types.d.ts +1 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js +5 -5
- package/dist/src/types.js.map +1 -1
- package/dist/src/utils.d.ts +2 -2
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +5 -5
- package/dist/src/utils.js.map +1 -1
- package/generator/pygen/black.py +2 -3
- package/generator/pygen/codegen/models/combined_type.py +1 -1
- package/generator/pygen/codegen/models/credential_types.py +7 -14
- package/generator/pygen/codegen/models/enum_type.py +1 -1
- package/generator/pygen/codegen/models/lro_operation.py +0 -1
- package/generator/pygen/codegen/models/lro_paging_operation.py +1 -1
- package/generator/pygen/codegen/models/model_type.py +5 -7
- package/generator/pygen/codegen/models/paging_operation.py +0 -1
- package/generator/pygen/codegen/models/parameter_list.py +2 -5
- package/generator/pygen/codegen/models/primitive_types.py +9 -3
- package/generator/pygen/codegen/serializers/__init__.py +1 -1
- package/generator/pygen/codegen/serializers/builder_serializer.py +10 -11
- package/generator/pygen/codegen/serializers/general_serializer.py +2 -1
- package/generator/pygen/codegen/serializers/sample_serializer.py +1 -3
- package/generator/pygen/codegen/templates/model_base.py.jinja2 +6 -0
- package/generator/pygen/m2r.py +1 -1
- package/generator/pygen/postprocess/__init__.py +2 -2
- package/generator/pygen/postprocess/venvtools.py +1 -3
- package/generator/pygen/preprocess/__init__.py +1 -1
- package/generator/pygen/utils.py +1 -3
- package/generator/setup.py +1 -1
- package/package.json +10 -8
- package/scripts/__pycache__/venvtools.cpython-310.pyc +0 -0
- package/scripts/eng/format.ts +5 -0
- package/scripts/eng/lint.ts +75 -0
- package/scripts/eng/mypy.ini +38 -0
- package/scripts/eng/pylintrc +58 -0
- package/scripts/eng/pyrightconfig.json +6 -0
- package/scripts/{regenerate.ts → eng/regenerate.ts} +40 -27
- package/scripts/{run-tests.ts → eng/run-tests.ts} +29 -6
- package/scripts/eng/utils.ts +38 -0
- package/scripts/run_tsp.py +7 -5
- package/dist/scripts/regenerate.js.map +0 -1
- package/dist/scripts/run-tests.js.map +0 -1
- /package/dist/scripts/{regenerate.d.ts → eng/regenerate.d.ts} +0 -0
- /package/dist/scripts/{run-tests.d.ts → eng/run-tests.d.ts} +0 -0
|
@@ -163,7 +163,7 @@ def has_multi_part_content_type(yaml_data: Dict[str, Any]) -> bool:
|
|
|
163
163
|
return any(ct for ct in yaml_data.get("contentTypes", []) if ct == "multipart/form-data")
|
|
164
164
|
|
|
165
165
|
|
|
166
|
-
class PreProcessPlugin(YamlUpdatePlugin):
|
|
166
|
+
class PreProcessPlugin(YamlUpdatePlugin):
|
|
167
167
|
"""Add Python naming information."""
|
|
168
168
|
|
|
169
169
|
@property
|
package/generator/pygen/utils.py
CHANGED
|
@@ -82,9 +82,7 @@ def parse_args(
|
|
|
82
82
|
return value
|
|
83
83
|
|
|
84
84
|
unknown_args_ret = {
|
|
85
|
-
ua.strip("--").split("=", maxsplit=1)[0]: _get_value(
|
|
86
|
-
ua.strip("--").split("=", maxsplit=1)[1] # pylint: disable=bad-str-strip-call
|
|
87
|
-
)
|
|
85
|
+
ua.strip("--").split("=", maxsplit=1)[0]: _get_value(ua.strip("--").split("=", maxsplit=1)[1])
|
|
88
86
|
for ua in unknown_args
|
|
89
87
|
}
|
|
90
88
|
return args, unknown_args_ret
|
package/generator/setup.py
CHANGED
|
@@ -15,7 +15,7 @@ from setuptools import setup, find_packages
|
|
|
15
15
|
|
|
16
16
|
# Version extraction inspired from 'requests'
|
|
17
17
|
with open(os.path.join("pygen", "_version.py"), "r") as fd:
|
|
18
|
-
version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE).group(1)
|
|
18
|
+
version = re.search(r'^VERSION\s*=\s*[\'"]([^\'"]*)[\'"]', fd.read(), re.MULTILINE).group(1) # type: ignore
|
|
19
19
|
|
|
20
20
|
if not version:
|
|
21
21
|
raise RuntimeError("Cannot find version information")
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure-tools/typespec-python",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"author": "Microsoft Corporation",
|
|
5
5
|
"description": "TypeSpec emitter for Python SDKs",
|
|
6
6
|
"homepage": "https://github.com/Azure/autorest.python",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"@azure-tools/typespec-azure-core": ">=0.45.0 <1.0.0",
|
|
37
37
|
"@azure-tools/typespec-azure-resource-manager": ">=0.45.0 <1.0.0",
|
|
38
38
|
"@azure-tools/typespec-autorest": ">=0.45.0 <1.0.0",
|
|
39
|
-
"@azure-tools/typespec-client-generator-core": ">=0.45.
|
|
39
|
+
"@azure-tools/typespec-client-generator-core": ">=0.45.4 <1.0.0",
|
|
40
40
|
"@azure-tools/typespec-azure-rulesets": ">=0.45.0 <3.0.0",
|
|
41
41
|
"@typespec/compiler": ">=0.59.1 <1.0.0",
|
|
42
42
|
"@typespec/http": ">=0.59.0 <1.0.0",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"@azure-tools/typespec-azure-resource-manager": "~0.45.0",
|
|
55
55
|
"@azure-tools/typespec-autorest": "~0.45.0",
|
|
56
56
|
"@azure-tools/cadl-ranch-expect": "~0.15.1",
|
|
57
|
-
"@azure-tools/cadl-ranch-specs": "~0.
|
|
57
|
+
"@azure-tools/cadl-ranch-specs": "~0.36.1",
|
|
58
58
|
"@types/js-yaml": "~4.0.5",
|
|
59
59
|
"@types/node": "^18.16.3",
|
|
60
60
|
"@types/yargs": "17.0.32",
|
|
@@ -65,22 +65,24 @@
|
|
|
65
65
|
"rimraf": "~5.0.0",
|
|
66
66
|
"typescript": "~5.1.3",
|
|
67
67
|
"@azure-tools/typespec-azure-core": "~0.45.0",
|
|
68
|
-
"@azure-tools/typespec-client-generator-core": "0.45.
|
|
68
|
+
"@azure-tools/typespec-client-generator-core": "0.45.4",
|
|
69
69
|
"@typespec/compiler": "~0.59.1",
|
|
70
70
|
"@typespec/http": "~0.59.0",
|
|
71
71
|
"@typespec/rest": "~0.59.0",
|
|
72
72
|
"@typespec/versioning": "~0.59.0",
|
|
73
73
|
"@azure-tools/typespec-azure-rulesets": "0.45.0",
|
|
74
|
-
"yargs": "~17.2.1"
|
|
74
|
+
"yargs": "~17.2.1",
|
|
75
|
+
"chalk": "5.3.0"
|
|
75
76
|
},
|
|
76
77
|
"scripts": {
|
|
77
78
|
"clean": "rimraf ./dist ./temp ./venv ./node_modules",
|
|
78
79
|
"build": "tsc -p .",
|
|
79
80
|
"watch": "tsc -p . --watch",
|
|
80
|
-
"lint": "
|
|
81
|
+
"lint": "tsx ./scripts/eng/lint.ts",
|
|
81
82
|
"lint:fix": "eslint . --fix --ext .ts",
|
|
83
|
+
"format": "npx prettier **/*.ts --write && tsx ./scripts/eng/format.ts",
|
|
82
84
|
"install": "tsx ./scripts/run-python3.ts ./scripts/install.py",
|
|
83
|
-
"regenerate": "tsx ./scripts/regenerate.ts",
|
|
84
|
-
"test": "tsx ./scripts/run-tests.ts"
|
|
85
|
+
"regenerate": "tsx ./scripts/eng/regenerate.ts",
|
|
86
|
+
"test": "tsx ./scripts/eng/run-tests.ts"
|
|
85
87
|
}
|
|
86
88
|
}
|
|
Binary file
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import yargs from "yargs";
|
|
3
|
+
import { hideBin } from "yargs/helpers";
|
|
4
|
+
import { runCommand, executeCommand } from "./utils.js";
|
|
5
|
+
|
|
6
|
+
interface Arguments {
|
|
7
|
+
folderName: string;
|
|
8
|
+
command?: "pylint" | "mypy" | "pyright" | "eslint";
|
|
9
|
+
skipWarning?: boolean;
|
|
10
|
+
skipEslint?: boolean;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const validCommands = ["pylint", "mypy", "pyright", "eslint"];
|
|
14
|
+
|
|
15
|
+
// PARSE INPUT ARGUMENTS
|
|
16
|
+
const argv = yargs(hideBin(process.argv))
|
|
17
|
+
.option("folderName", {
|
|
18
|
+
type: "string",
|
|
19
|
+
choices: ["generator", "autorest"],
|
|
20
|
+
description: "Specify the flavor",
|
|
21
|
+
default: "generator",
|
|
22
|
+
})
|
|
23
|
+
.option("command", {
|
|
24
|
+
alias: "c",
|
|
25
|
+
type: "string",
|
|
26
|
+
choices: validCommands,
|
|
27
|
+
description: "Specify the command to run",
|
|
28
|
+
})
|
|
29
|
+
.option("skipWarning", {
|
|
30
|
+
alias: "s",
|
|
31
|
+
type: "boolean",
|
|
32
|
+
description: "Skip to check warnings",
|
|
33
|
+
})
|
|
34
|
+
.option("skipEslint", {
|
|
35
|
+
alias: "e",
|
|
36
|
+
type: "boolean",
|
|
37
|
+
description: "Skip to check eslint",
|
|
38
|
+
}).argv as Arguments;
|
|
39
|
+
|
|
40
|
+
export function pylint() {
|
|
41
|
+
runCommand(`pylint ${argv.folderName}/ --rcfile ./scripts/eng/pylintrc`, "pylint");
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export function mypy() {
|
|
45
|
+
runCommand(`mypy ${argv.folderName}/ --config-file ./scripts/eng/mypy.ini`, "mypy");
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export function pyright() {
|
|
49
|
+
runCommand(`pyright ${argv.folderName}/ -p ./scripts/eng/pyrightconfig.json`, "pyright");
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export function eslint() {
|
|
53
|
+
// const checkWarning = argv.skipWarning ? "" : "--max-warnings=0";
|
|
54
|
+
const checkWarning = "";
|
|
55
|
+
executeCommand(`npx eslint . --ext .ts ${checkWarning} `, "eslint");
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (argv.command === "pylint") {
|
|
59
|
+
pylint();
|
|
60
|
+
} else if (argv.command === "mypy") {
|
|
61
|
+
mypy();
|
|
62
|
+
} else if (argv.command === "pyright") {
|
|
63
|
+
pyright();
|
|
64
|
+
} else if (argv.command === "eslint") {
|
|
65
|
+
if (!argv.skipEslint) {
|
|
66
|
+
eslint();
|
|
67
|
+
}
|
|
68
|
+
} else {
|
|
69
|
+
pylint();
|
|
70
|
+
mypy();
|
|
71
|
+
pyright();
|
|
72
|
+
if (!argv.skipEslint) {
|
|
73
|
+
eslint();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# global configurations
|
|
2
|
+
[mypy]
|
|
3
|
+
python_version = 3.8
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# module level configuratiohns
|
|
7
|
+
[mypy-jsonrpc.*]
|
|
8
|
+
ignore_missing_imports = True
|
|
9
|
+
|
|
10
|
+
[mypy-ptvsd.*]
|
|
11
|
+
ignore_missing_imports = True
|
|
12
|
+
|
|
13
|
+
[mypy-debugpy.*]
|
|
14
|
+
ignore_missing_imports = True
|
|
15
|
+
|
|
16
|
+
[mypy-m2r2.*]
|
|
17
|
+
ignore_missing_imports = True
|
|
18
|
+
|
|
19
|
+
[mypy-autorest.common.utils.*]
|
|
20
|
+
ignore_missing_imports = True
|
|
21
|
+
|
|
22
|
+
[mypy-autorest.common.python_mappings.*]
|
|
23
|
+
ignore_missing_imports = True
|
|
24
|
+
|
|
25
|
+
[mypy-pygen.codegen.models.*]
|
|
26
|
+
ignore_missing_imports = True
|
|
27
|
+
|
|
28
|
+
[mypy-setuptools]
|
|
29
|
+
ignore_missing_imports = True
|
|
30
|
+
|
|
31
|
+
[mypy-*._patch]
|
|
32
|
+
ignore_missing_imports = True
|
|
33
|
+
|
|
34
|
+
[mypy-pygen.*]
|
|
35
|
+
ignore_missing_imports = True
|
|
36
|
+
|
|
37
|
+
[mypy-yaml.*]
|
|
38
|
+
ignore_missing_imports = True
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
[MASTER]
|
|
2
|
+
py-version=3.8
|
|
3
|
+
ignore-patterns=test_*,conftest,setup
|
|
4
|
+
reports=no
|
|
5
|
+
|
|
6
|
+
# PYLINT DIRECTORY BLACKLIST.
|
|
7
|
+
ignore=_generated,samples,examples,test,tests,doc,.tox,generated_samples
|
|
8
|
+
|
|
9
|
+
[MESSAGES CONTROL]
|
|
10
|
+
|
|
11
|
+
# Add enable for useless disables
|
|
12
|
+
enable=useless-suppression
|
|
13
|
+
|
|
14
|
+
# For all codes, run 'pylint --list-msgs' or go to 'https://pylint.readthedocs.io/en/latest/reference_guide/features.html'
|
|
15
|
+
# locally-disabled: Warning locally suppressed using disable-msg
|
|
16
|
+
# cyclic-import: because of https://github.com/PyCQA/pylint/issues/850
|
|
17
|
+
# too-many-arguments: Due to the nature of the CLI many commands have large arguments set which reflect in large arguments set in corresponding methods.
|
|
18
|
+
# Let's black deal with bad-continuation
|
|
19
|
+
disable=useless-object-inheritance,missing-docstring,locally-disabled,fixme,cyclic-import,too-many-arguments,invalid-name,duplicate-code,too-few-public-methods,consider-using-f-string,super-with-arguments,redefined-builtin,import-outside-toplevel,client-suffix-needed,unnecessary-dunder-call,unnecessary-ellipsis,disallowed-name,consider-using-max-builtin
|
|
20
|
+
|
|
21
|
+
[FORMAT]
|
|
22
|
+
max-line-length=120
|
|
23
|
+
|
|
24
|
+
[VARIABLES]
|
|
25
|
+
# Tells whether we should check for unused import in __init__ files.
|
|
26
|
+
init-import=yes
|
|
27
|
+
|
|
28
|
+
[DESIGN]
|
|
29
|
+
# Maximum number of locals for function / method body
|
|
30
|
+
max-locals=25
|
|
31
|
+
# Maximum number of branch for function / method body
|
|
32
|
+
max-branches=20
|
|
33
|
+
# Maximum number of instance attributes for class
|
|
34
|
+
max-attributes=10
|
|
35
|
+
# Maximum number of ancestors
|
|
36
|
+
max-parents=15
|
|
37
|
+
|
|
38
|
+
[SIMILARITIES]
|
|
39
|
+
min-similarity-lines=10
|
|
40
|
+
|
|
41
|
+
[BASIC]
|
|
42
|
+
# Naming hints based on PEP 8 (https://www.python.org/dev/peps/pep-0008/#naming-conventions).
|
|
43
|
+
# Consider these guidelines and not hard rules. Read PEP 8 for more details.
|
|
44
|
+
|
|
45
|
+
# The invalid-name checker must be **enabled** for these hints to be used.
|
|
46
|
+
include-naming-hint=yes
|
|
47
|
+
|
|
48
|
+
# keep short; underscores are discouraged
|
|
49
|
+
module-naming-style=snake_case
|
|
50
|
+
const-naming-style=UPPER_CASE
|
|
51
|
+
class-naming-style=PascalCase
|
|
52
|
+
class-attribute-naming-style=snake_case
|
|
53
|
+
attr-naming-style=snake_case
|
|
54
|
+
method-naming-style=snake_case
|
|
55
|
+
function-naming-style=snake_case
|
|
56
|
+
argument-naming-style=snake_case
|
|
57
|
+
variable-naming-style=snake_case
|
|
58
|
+
inlinevar-naming-style=snake_case
|
|
@@ -4,15 +4,19 @@ import { promisify } from "util";
|
|
|
4
4
|
import yargs from "yargs";
|
|
5
5
|
import { hideBin } from "yargs/helpers";
|
|
6
6
|
import { dirname, join, relative, resolve } from "path";
|
|
7
|
-
import { promises } from "fs";
|
|
7
|
+
import { promises, rmSync } from "fs";
|
|
8
8
|
import { fileURLToPath } from "url";
|
|
9
9
|
|
|
10
10
|
// Promisify the exec function
|
|
11
11
|
const exec = promisify(execCallback);
|
|
12
12
|
|
|
13
13
|
// Get the directory of the current file
|
|
14
|
-
const PLUGIN_DIR = resolve(fileURLToPath(import.meta.url), "
|
|
14
|
+
const PLUGIN_DIR = resolve(fileURLToPath(import.meta.url), "../../../");
|
|
15
15
|
const CADL_RANCH_DIR = resolve(PLUGIN_DIR, "node_modules/@azure-tools/cadl-ranch-specs/http");
|
|
16
|
+
interface TspCommand {
|
|
17
|
+
outputDir: string;
|
|
18
|
+
command: string;
|
|
19
|
+
}
|
|
16
20
|
|
|
17
21
|
const EMITTER_OPTIONS: Record<string, Record<string, string> | Record<string, string>[]> = {
|
|
18
22
|
"resiliency/srv-driven/old.tsp": {
|
|
@@ -117,9 +121,15 @@ function getEmitterOption(spec: string): Record<string, string>[] {
|
|
|
117
121
|
}
|
|
118
122
|
|
|
119
123
|
// Function to execute CLI commands asynchronously
|
|
120
|
-
async function executeCommand(
|
|
124
|
+
async function executeCommand(tspCommand: TspCommand): Promise<void> {
|
|
121
125
|
try {
|
|
122
|
-
|
|
126
|
+
rmSync(tspCommand.outputDir, { recursive: true, force: true });
|
|
127
|
+
} catch (error) {
|
|
128
|
+
console.error(`rm error: ${error}`);
|
|
129
|
+
}
|
|
130
|
+
try {
|
|
131
|
+
console.log(`exec: ${tspCommand.command}`);
|
|
132
|
+
const { stdout, stderr } = await exec(tspCommand.command);
|
|
123
133
|
if (stdout) console.log(`stdout: ${stdout}`);
|
|
124
134
|
if (stderr) console.error(`stderr: ${stderr}`);
|
|
125
135
|
} catch (error) {
|
|
@@ -206,8 +216,13 @@ function defaultPackageName(spec: string): string {
|
|
|
206
216
|
.toLowerCase();
|
|
207
217
|
}
|
|
208
218
|
|
|
209
|
-
|
|
210
|
-
|
|
219
|
+
interface EmitterConfig {
|
|
220
|
+
optionsStr: string;
|
|
221
|
+
outputDir: string;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
function addOptions(spec: string, generatedFolder: string, flags: RegenerateFlags): EmitterConfig[] {
|
|
225
|
+
const emitterConfigs: EmitterConfig[] = [];
|
|
211
226
|
for (const config of getEmitterOption(spec)) {
|
|
212
227
|
const options: Record<string, string> = { ...config };
|
|
213
228
|
options["flavor"] = flags.flavor;
|
|
@@ -224,41 +239,39 @@ function addOptions(spec: string, generatedFolder: string, flags: RegenerateFlag
|
|
|
224
239
|
if (flags.flavor === "unbranded") {
|
|
225
240
|
options["company-name"] = "Unbranded";
|
|
226
241
|
}
|
|
227
|
-
options["examples-
|
|
242
|
+
options["examples-dir"] = toPosix(join(dirname(spec), "examples"));
|
|
228
243
|
const configs = Object.entries(options).flatMap(([k, v]) => {
|
|
229
244
|
return `--option @azure-tools/typespec-python.${k}=${v}`;
|
|
230
245
|
});
|
|
231
|
-
emitterConfigs.push(
|
|
246
|
+
emitterConfigs.push({
|
|
247
|
+
optionsStr: configs.join(" "),
|
|
248
|
+
outputDir: options["emitter-output-dir"],
|
|
249
|
+
});
|
|
232
250
|
}
|
|
233
251
|
return emitterConfigs;
|
|
234
252
|
}
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
console.log(command);
|
|
242
|
-
return executeCommand(command);
|
|
253
|
+
function _getCmdList(spec: string, flags: RegenerateFlags): TspCommand[] {
|
|
254
|
+
return addOptions(spec, PLUGIN_DIR, flags).map((option) => {
|
|
255
|
+
return {
|
|
256
|
+
outputDir: option.outputDir,
|
|
257
|
+
command: `tsp compile ${spec} --emit=${toPosix(PLUGIN_DIR)} ${option.optionsStr}`,
|
|
258
|
+
};
|
|
243
259
|
});
|
|
244
|
-
await Promise.all(commandPromises);
|
|
245
260
|
}
|
|
246
261
|
|
|
247
|
-
async function regenerate(flags: RegenerateFlagsInput): Promise<
|
|
262
|
+
async function regenerate(flags: RegenerateFlagsInput): Promise<void> {
|
|
248
263
|
if (flags.flavor === undefined) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
return azureGeneration && unbrandedGeneration;
|
|
264
|
+
await regenerate({ ...flags, flavor: "azure" });
|
|
265
|
+
await regenerate({ ...flags, flavor: "unbranded" });
|
|
252
266
|
} else {
|
|
253
267
|
const flagsResolved = { debug: false, flavor: flags.flavor, ...flags };
|
|
254
268
|
const CADL_RANCH_DIR = resolve(PLUGIN_DIR, "node_modules/@azure-tools/cadl-ranch-specs/http");
|
|
255
269
|
const subdirectories = await getSubdirectories(CADL_RANCH_DIR, flagsResolved);
|
|
256
|
-
const
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
await Promise.all(
|
|
261
|
-
return true;
|
|
270
|
+
const cmdList: TspCommand[] = subdirectories.flatMap((subdirectory) =>
|
|
271
|
+
_getCmdList(subdirectory, flagsResolved),
|
|
272
|
+
);
|
|
273
|
+
const PromiseCommands = cmdList.map((tspCommand) => executeCommand(tspCommand));
|
|
274
|
+
await Promise.all(PromiseCommands);
|
|
262
275
|
}
|
|
263
276
|
}
|
|
264
277
|
|
|
@@ -1,23 +1,30 @@
|
|
|
1
1
|
/* eslint-disable no-console */
|
|
2
2
|
import { execSync } from "child_process";
|
|
3
|
+
import { readFileSync } from "fs";
|
|
4
|
+
import { join } from "path";
|
|
3
5
|
import yargs from "yargs";
|
|
4
6
|
import { hideBin } from "yargs/helpers";
|
|
7
|
+
import { fileURLToPath } from "url";
|
|
5
8
|
|
|
6
9
|
interface Arguments {
|
|
10
|
+
validFolders: string[];
|
|
7
11
|
folder?: string;
|
|
8
12
|
command?: string;
|
|
9
13
|
}
|
|
10
14
|
|
|
11
|
-
const validFolders = ["azure", "unbranded"];
|
|
12
|
-
|
|
13
15
|
const validCommands = ["ci", "lint", "mypy", "pyright", "apiview"];
|
|
14
16
|
|
|
15
17
|
// Parse command-line arguments using yargs
|
|
16
18
|
const argv = yargs(hideBin(process.argv))
|
|
19
|
+
.option("validFolders", {
|
|
20
|
+
alias: "vf",
|
|
21
|
+
describe: "Specify the valid folders",
|
|
22
|
+
type: "array",
|
|
23
|
+
default: ["azure", "unbranded"],
|
|
24
|
+
})
|
|
17
25
|
.option("folder", {
|
|
18
26
|
alias: "f",
|
|
19
27
|
describe: "Specify the folder to use",
|
|
20
|
-
choices: validFolders,
|
|
21
28
|
type: "string",
|
|
22
29
|
})
|
|
23
30
|
.option("command", {
|
|
@@ -27,7 +34,7 @@ const argv = yargs(hideBin(process.argv))
|
|
|
27
34
|
type: "string",
|
|
28
35
|
}).argv as Arguments;
|
|
29
36
|
|
|
30
|
-
const foldersToProcess = argv.folder ? [argv.folder] : validFolders;
|
|
37
|
+
const foldersToProcess = argv.folder ? [argv.folder] : argv.validFolders;
|
|
31
38
|
|
|
32
39
|
const commandToRun = argv.command || "all";
|
|
33
40
|
|
|
@@ -36,21 +43,37 @@ function getCommand(command: string, folder: string) {
|
|
|
36
43
|
return `FOLDER=${folder} tox -c ./test/${folder}/tox.ini -e ${command}`;
|
|
37
44
|
}
|
|
38
45
|
|
|
46
|
+
function sectionExistsInToxIni(command: string, folder: string): boolean {
|
|
47
|
+
const toxIniPath = join(fileURLToPath(import.meta.url), `../../../test/${folder}/tox.ini`);
|
|
48
|
+
const toxIniContent = readFileSync(toxIniPath, "utf-8");
|
|
49
|
+
const sectionHeader = `[testenv:${command}]`;
|
|
50
|
+
return toxIniContent.includes(sectionHeader);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function myExecSync(command: string, folder: string): void {
|
|
54
|
+
if (!sectionExistsInToxIni(command, folder)) {
|
|
55
|
+
console.log(`No section for ${command} in tox.ini for folder ${folder}. Skipping...`);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
execSync(getCommand(command, folder), { stdio: "inherit" });
|
|
59
|
+
}
|
|
60
|
+
|
|
39
61
|
foldersToProcess.forEach((folder) => {
|
|
40
62
|
try {
|
|
41
63
|
if (commandToRun === "all") {
|
|
42
64
|
for (const key of validCommands) {
|
|
43
65
|
console.log(`Running ${key} for folder ${folder}...`);
|
|
44
|
-
|
|
66
|
+
myExecSync(key, folder);
|
|
45
67
|
}
|
|
46
68
|
} else if (getCommand(commandToRun, folder)) {
|
|
47
69
|
console.log(`Running ${commandToRun} for folder ${folder}...`);
|
|
48
|
-
|
|
70
|
+
myExecSync(commandToRun, folder);
|
|
49
71
|
} else {
|
|
50
72
|
console.error(`Error: Unknown command '${commandToRun}'.`);
|
|
51
73
|
process.exit(1);
|
|
52
74
|
}
|
|
53
75
|
} catch (error) {
|
|
76
|
+
console.error((error as Error).message);
|
|
54
77
|
console.error(`Error executing command for folder ${folder}: ${(error as Error).message}`);
|
|
55
78
|
process.exit(1);
|
|
56
79
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { exec } from "child_process";
|
|
3
|
+
import process from "process";
|
|
4
|
+
import { existsSync } from "fs";
|
|
5
|
+
import { dirname, join } from "path";
|
|
6
|
+
import { fileURLToPath } from "url";
|
|
7
|
+
import chalk from "chalk";
|
|
8
|
+
|
|
9
|
+
// execute the command
|
|
10
|
+
export function executeCommand(command: string, prettyName: string) {
|
|
11
|
+
exec(command, (error, stdout, stderr) => {
|
|
12
|
+
if (error) {
|
|
13
|
+
console.error(chalk.red(`Error executing ${command}(stdout): ${stdout}`));
|
|
14
|
+
console.error(chalk.red(`Error executing ${command}{stderr}: ${stderr}`));
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
if (stderr) {
|
|
18
|
+
// Process stderr output
|
|
19
|
+
console.log(chalk.yellow(`${command}:\n${stderr}`));
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
console.log(chalk.green(`${prettyName} passed`));
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Function to run a command and log the output
|
|
27
|
+
export function runCommand(command: string, prettyName: string) {
|
|
28
|
+
let pythonPath = join(dirname(fileURLToPath(import.meta.url)), "..", "..", "venv/");
|
|
29
|
+
if (existsSync(join(pythonPath, "bin"))) {
|
|
30
|
+
pythonPath = join(pythonPath, "bin", "python");
|
|
31
|
+
} else if (existsSync(join(pythonPath, "Scripts"))) {
|
|
32
|
+
pythonPath = join(pythonPath, "Scripts", "python");
|
|
33
|
+
} else {
|
|
34
|
+
throw new Error(pythonPath);
|
|
35
|
+
}
|
|
36
|
+
command = `${pythonPath} -m ${command}`;
|
|
37
|
+
executeCommand(command, prettyName);
|
|
38
|
+
}
|
package/scripts/run_tsp.py
CHANGED
|
@@ -7,7 +7,8 @@ import sys
|
|
|
7
7
|
import venv
|
|
8
8
|
import logging
|
|
9
9
|
from pathlib import Path
|
|
10
|
-
from
|
|
10
|
+
from pygen import m2r, preprocess, codegen, black
|
|
11
|
+
from pygen.utils import parse_args
|
|
11
12
|
|
|
12
13
|
_ROOT_DIR = Path(__file__).parent.parent
|
|
13
14
|
|
|
@@ -34,7 +35,8 @@ if __name__ == "__main__":
|
|
|
34
35
|
breakpoint() # pylint: disable=undefined-variable
|
|
35
36
|
|
|
36
37
|
# run m2r
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
args, unknown_args = parse_args()
|
|
39
|
+
m2r.M2R(output_folder=args.output_folder, cadl_file=args.cadl_file, **unknown_args).process()
|
|
40
|
+
preprocess.PreProcessPlugin(output_folder=args.output_folder, cadl_file=args.cadl_file, **unknown_args).process()
|
|
41
|
+
codegen.CodeGenerator(output_folder=args.output_folder, cadl_file=args.cadl_file, **unknown_args).process()
|
|
42
|
+
black.BlackScriptPlugin(output_folder=args.output_folder, **unknown_args).process()
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regenerate.js","sourceRoot":"","sources":["../../scripts/regenerate.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,8BAA8B;AAC9B,MAAM,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;AAErC,wCAAwC;AACxC,MAAM,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;AACrE,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,iDAAiD,CAAC,CAAC;AAE9F,MAAM,eAAe,GAAsE;IACvF,+BAA+B,EAAE;QAC7B,cAAc,EAAE,wBAAwB;QACxC,cAAc,EAAE,iBAAiB;QACjC,qBAAqB,EAAE,sBAAsB;KAChD;IACD,uBAAuB,EAAE;QACrB,cAAc,EAAE,wBAAwB;QACxC,cAAc,EAAE,iBAAiB;QACjC,qBAAqB,EAAE,sBAAsB;KAChD;IACD,4BAA4B,EAAE;QAC1B,cAAc,EAAE,4BAA4B;KAC/C;IACD,sBAAsB,EAAE;QACpB,cAAc,EAAE,sBAAsB;KACzC;IACD,YAAY,EAAE;QACV,cAAc,EAAE,gBAAgB;KACnC;IACD,iBAAiB,EAAE;QACf,cAAc,EAAE,qBAAqB;KACxC;IACD,sBAAsB,EAAE;QACpB,cAAc,EAAE,0BAA0B;KAC7C;IACD,iBAAiB,EAAE;QACf,cAAc,EAAE,qBAAqB;KACxC;IACD,kBAAkB,EAAE;QAChB,cAAc,EAAE,sBAAsB;KACzC;IACD,oBAAoB,EAAE;QAClB,cAAc,EAAE,wBAAwB;KAC3C;IACD,2CAA2C,EAAE;QACzC,cAAc,EAAE,kCAAkC;KACrD;IACD,6CAA6C,EAAE;QAC3C,cAAc,EAAE,oCAAoC;KACvD;IACD,0CAA0C,EAAE;QACxC,cAAc,EAAE,iCAAiC;KACpD;IACD,6CAA6C,EAAE;QAC3C,cAAc,EAAE,oCAAoC;KACvD;IACD,kCAAkC,EAAE;QAChC,cAAc,EAAE,0BAA0B;KAC7C;IACD,kBAAkB,EAAE;QAChB,cAAc,EAAE,sBAAsB;KACzC;IACD,uBAAuB,EAAE;QACrB,EAAE,cAAc,EAAE,2BAA2B,EAAE;QAC/C,EAAE,cAAc,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,EAAE;QAClE,EAAE,cAAc,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,OAAO,EAAE;KACvE;IACD,wBAAwB,EAAE;QACtB,cAAc,EAAE,4BAA4B;KAC/C;IACD,2BAA2B,EAAE;QACzB,cAAc,EAAE,4BAA4B;KAC/C;IACD,qCAAqC,EAAE;QACnC,cAAc,EAAE,wCAAwC;KAC3D;IACD,aAAa,EAAE;QACX,cAAc,EAAE,iBAAiB;KACpC;IACD,2BAA2B,EAAE;QACzB,cAAc,EAAE,8BAA8B;KACjD;IACD,YAAY,EAAE;QACV,cAAc,EAAE,gBAAgB;KACnC;IACD,oBAAoB,EAAE;QAClB,cAAc,EAAE,mBAAmB;KACtC;IACD,+BAA+B,EAAE;QAC7B,cAAc,EAAE,8BAA8B;KACjD;IACD,oCAAoC,EAAE;QAClC,cAAc,EAAE,mCAAmC;KACtD;IACD,sCAAsC,EAAE;QACpC,cAAc,EAAE,oCAAoC;KACvD;IACD,aAAa,EAAE,CAAC,EAAE,cAAc,EAAE,sBAAsB,EAAE,CAAC;CAC9D,CAAC;AAEF,SAAS,OAAO,CAAC,GAAW;IACxB,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IAClC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7D,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAC1G,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,kDAAkD;AAClD,KAAK,UAAU,cAAc,CAAC,OAAe;IACzC,IAAI;QACA,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,MAAM;YAAE,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;QAC7C,IAAI,MAAM;YAAE,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;KAClD;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,eAAe,KAAK,EAAE,CAAC,CAAC;QACtC,MAAM,KAAK,CAAC;KACf;AACL,CAAC;AAcD,MAAM,YAAY,GAAwC;IACtD,KAAK,EAAE;QACH,eAAe,EAAE,IAAI;QACrB,iBAAiB,EAAE,IAAI;KAC1B;CACJ,CAAC;AAEF,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,KAAsB;IACpE,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,KAAK,UAAU,SAAS,CAAC,UAAkB;QACvC,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1E,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBACjD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;gBAErD,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC;gBACpE,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,IAAI,mBAAmB,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,OAAO;gBAElF,uCAAuC;gBACvC,IAAI,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAAE,OAAO;gBAEhD,0EAA0E;gBAC1E,IAAI,mBAAmB,CAAC,QAAQ,CAAC,wBAAwB,CAAC;oBAAE,OAAO;gBAEnE,MAAM,UAAU,GAAG,MAAM,QAAQ;qBAC5B,MAAM,CAAC,WAAW,CAAC;qBACnB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;qBAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;gBACxB,MAAM,YAAY,GAAG,MAAM,QAAQ;qBAC9B,MAAM,CAAC,aAAa,CAAC;qBACrB,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;qBAChB,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;gBAExB,IAAI,mBAAmB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE;oBAC9D,IAAI,mBAAmB,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;wBACvD,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;qBACvD;oBACD,IAAI,YAAY,EAAE;wBACd,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC;qBAC1D;yBAAM,IAAI,UAAU,EAAE;wBACnB,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;qBACxD;iBACJ;gBAED,yCAAyC;gBACzC,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;aAC/B;QACL,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;IACzB,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACpC,OAAO,OAAO,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SAClD,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,WAAW,EAAE,CAAC;AACvB,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,eAAuB,EAAE,KAAsB;IAC7E,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE;QACzC,MAAM,OAAO,GAA2B,EAAE,GAAG,MAAM,EAAE,CAAC;QACtD,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE;YACnE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAClB;QACD,IAAI,OAAO,CAAC,oBAAoB,CAAC,KAAK,SAAS,EAAE;YAC7C,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;YACxE,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,GAAG,eAAe,SAAS,KAAK,CAAC,MAAM,cAAc,WAAW,EAAE,CAAC,CAAC;SAC/G;QACD,IAAI,KAAK,CAAC,KAAK,EAAE;YACb,OAAO,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;SAC7B;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE;YAC9B,OAAO,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC;SACzC;QACD,OAAO,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;QACzE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACvD,OAAO,yCAAyC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KAC1C;IACD,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,KAAsB;IACjE,2CAA2C;IAC3C,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;IACpD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QAC3C,MAAM,OAAO,GAAG,eAAe,IAAI,WAAW,OAAO,CAAC,UAAU,CAAC,IAAI,MAAM,EAAE,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,KAA2B;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE;QAC5B,MAAM,eAAe,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;QACxE,MAAM,mBAAmB,GAAG,MAAM,UAAU,CAAC,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAChF,OAAO,eAAe,IAAI,mBAAmB,CAAC;KACjD;SAAM;QACH,MAAM,aAAa,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;QACvE,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,EAAE,iDAAiD,CAAC,CAAC;QAC9F,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE;YACvD,uEAAuE;YACvE,MAAM,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;KACf;AACL,CAAC;AAED,wBAAwB;AACxB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACpC,MAAM,CAAC,QAAQ,EAAE;IACd,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC;IAC/B,WAAW,EAAE,oBAAoB;CACpC,CAAC;KACD,MAAM,CAAC,OAAO,EAAE;IACb,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,YAAY;CAC5B,CAAC;KACD,MAAM,CAAC,MAAM,EAAE;IACZ,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,wDAAwD;CACxE,CAAC,CAAC,IAAI,CAAC;AAEZ,UAAU,CAAC,IAAuB,CAAC;KAC9B,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;KAClD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wBAAwB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run-tests.js","sourceRoot":"","sources":["../../scripts/run-tests.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AAE5C,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEnE,2CAA2C;AAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACpC,MAAM,CAAC,QAAQ,EAAE;IACd,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,2BAA2B;IACrC,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,MAAM,CAAC,SAAS,EAAE;IACf,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,4BAA4B;IACtC,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,QAAQ;CACjB,CAAC,CAAC,IAAiB,CAAC;AAEzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AAEpE,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;AAE3C,SAAS,UAAU,CAAC,OAAe,EAAE,MAAc;IAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC;IACvF,OAAO,UAAU,MAAM,kBAAkB,MAAM,eAAe,OAAO,EAAE,CAAC;AAC5E,CAAC;AAED,gBAAgB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;IAChC,IAAI;QACA,IAAI,YAAY,KAAK,KAAK,EAAE;YACxB,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,WAAW,GAAG,eAAe,MAAM,KAAK,CAAC,CAAC;gBACtD,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;aAC3D;SACJ;aAAM,IAAI,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,WAAW,YAAY,eAAe,MAAM,KAAK,CAAC,CAAC;YAC/D,QAAQ,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SACpE;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,2BAA2B,YAAY,IAAI,CAAC,CAAC;YAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACnB;KACJ;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,sCAAsC,MAAM,KAAM,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACnB;AACL,CAAC,CAAC,CAAC"}
|
|
File without changes
|
|
File without changes
|