diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8b8610b2e..87ee2a5db 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -32,15 +32,3 @@ updates: schedule: interval: daily time: "00:00" - - package-ecosystem: npm - labels: ["dependencies"] - directory: /site - schedule: - interval: daily - time: "00:00" - - package-ecosystem: npm - labels: ["dependencies"] - directory: /experimental/live-editor - schedule: - interval: daily - time: "00:00" diff --git a/Makefile b/Makefile index 6dfb499dc..92e4d8624 100644 --- a/Makefile +++ b/Makefile @@ -139,18 +139,11 @@ lint: copyright $(GCI_LINT) --local github.com/vmware-tanzu/cartographer --write $$(find ./pkg ! -name "fake_*" -type f) $(GOLANGCI_LINT) --config lint-config.yaml run $(MAKE) -C hack lint - $(MAKE) -C site lint .PHONY: copyright copyright: $(ADDLICENSE) \ - -f ./hack/boilerplate.go.txt \ - -ignore site/static/\*\* \ - -ignore site/content/docs/\*/crds/\*.yaml \ - -ignore site/content/docs/\*/tutorials/files/\*/\*.yaml \ - -ignore site/themes/\*\* \ - -ignore experimental/live-editor/node_modules/\*\* \ - . + -f ./hack/boilerplate.go.txt . .PHONY: pre-push .pre-push-check .pre-push-check: copyright lint gen-manifests gen-objects test-gen-manifests test-gen-objects generate @@ -166,15 +159,3 @@ pre-push: [ -z "$$(git status --porcelain)" ] || (echo "not everything is committed, failing" && exit 1) $(MAKE) .pre-push-check [ -z "$$(git status --porcelain)" ] || (echo "changes occurred during pre-push check" && git diff HEAD --exit-code) - -.PHONY: docs-serve -docs-serve: - $(MAKE) -C site serve - -.PHONY: docs-release -docs-release: - $(MAKE) -C site release - -.PHONY: docs-gen-crds -docs-gen-crds: gen-manifests - $(MAKE) -C site gen-crd-reference diff --git a/experimental/live-editor/.gitignore b/experimental/live-editor/.gitignore deleted file mode 100644 index 6c087c4bb..000000000 --- a/experimental/live-editor/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -dist -node_modules -yarn-error.log \ No newline at end of file diff --git a/experimental/live-editor/Makefile b/experimental/live-editor/Makefile deleted file mode 100644 index 01d363c53..000000000 --- a/experimental/live-editor/Makefile +++ /dev/null @@ -1,14 +0,0 @@ -.PHONY: deps -deps: - yarn - -.PHONY: build -build: deps - yarn build - -.PHONY: install -install: - mkdir -p ../../site/themes/template/static/live-editor - rm -rf ../../site/themes/template/static/live-editor/* - cp -r dist/* ../../site/themes/template/static/live-editor/ - diff --git a/experimental/live-editor/README.md b/experimental/live-editor/README.md deleted file mode 100644 index 97fda80b0..000000000 --- a/experimental/live-editor/README.md +++ /dev/null @@ -1,63 +0,0 @@ - -# Blueprint and Owner Live editor. - -## Roadmap -[Original Spike Issue](https://github.com/vmware-tanzu/cartographer/issues/566) - -### Proof Of Concept - -* Supply chain editor (no delivery, workload or deliverable) -* Pako style compact URL with saving -* Visualiser for Supply Chain -* Autocomplete for resources - * Don't show forward references (or self references) -* Host it somewhere. Hugo seems inordinately painful for this, but I could be co-erced -* document build and delivery process to update the editor wherever it lands - - -### Near future - -* Finish the `scheming` tool that takes any CRD and produces a json schema - * This will make it easier to keep the editor up to date -* Host the schema and point to it. Then other's can use it in their editors yaml/json schema validation -* -* Type validation for references -* Add [Options](../../tests/kuttl/supplychain/options-with-values/01-supply-chain.yaml) - -### Further Future - -* Workload with supply chain, including viz - * Missing params and resulting-set params -* Params - * Param autocomplete across files - * Blueprints show default and required params -* Use a worker for the language extension -* Do something about transpiling/packing, Vite hates Monaco-Yaml afaict (monaco-yaml working on a fix) -* Automate build/deploy (perhaps at this point we get a dedicated repository?) -* Template tabs (showing params?) and autocompleting template names in the supply chain resources -* Gist reference support (and maybe create-new-gist) -* Show that a workload will select the given supply chain AND/OR supply-chains -* Runnable? Delivery? Deliverable? - -# Howto - -## Updating the Schema today - -1. Grab the schema with: - ``` - cat ../../config/crd/bases/carto.run_clustersupplychains.yaml | yq '.spec.versions[] | select(.name="v1alpha1") | .schema.openAPIV3Schema' - ``` -2. paste into [`./hack/schema.js`](./hack/schema.js) -3. then run - ``` - ./hack/schema.js | pbcopy - ``` - -4. and paste final schema into [`./src/lib/monaco/schema.js`](./src/lib/monaco/schema.js) - - -## Install/Update blog post - -``` -make build install -``` \ No newline at end of file diff --git a/experimental/live-editor/hack/schema.js b/experimental/live-editor/hack/schema.js deleted file mode 100755 index d2c2710ff..000000000 --- a/experimental/live-editor/hack/schema.js +++ /dev/null @@ -1,353 +0,0 @@ -#! /usr/bin/env node -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -import toJsonSchema from "@openapi-contrib/openapi-schema-to-json-schema"; - -let schema = - { - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": { - "type": "object" - }, - "spec": { - "description": "Spec describes the suppply chain. More info: https://cartographer.sh/docs/latest/reference/workload/#clustersupplychain", - "properties": { - "params": { - "description": "Additional parameters. See: https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy", - "items": { - "properties": { - "default": { - "description": "DefaultValue of the parameter. Causes the parameter to be optional; If the Owner does not specify this parameter, this value is used.", - "x-kubernetes-preserve-unknown-fields": true - }, - "name": { - "description": "Name of the parameter. Should match a template parameter name.", - "type": "string" - }, - "value": { - "description": "Value of the parameter. If specified, owner properties are ignored.", - "x-kubernetes-preserve-unknown-fields": true - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "type": "array" - }, - "resources": { - "description": "Resources that are responsible for bringing the application to a deliverable state.", - "items": { - "properties": { - "configs": { - "description": "Configs is a list of references to other 'config' resources in this list. A config resource has the kind ClusterConfigTemplate \n In a template, configs can be consumed as: $(configs..config)$ \n If there is only one image, it can be consumed as: $(config)$", - "items": { - "properties": { - "name": { - "type": "string" - }, - "resource": { - "type": "string" - } - }, - "required": [ - "name", - "resource" - ], - "type": "object" - }, - "type": "array" - }, - "images": { - "description": "Images is a list of references to other 'image' resources in this list. An image resource has the kind ClusterImageTemplate \n In a template, images can be consumed as: $(images..image)$ \n If there is only one image, it can be consumed as: $(image)$", - "items": { - "properties": { - "name": { - "type": "string" - }, - "resource": { - "type": "string" - } - }, - "required": [ - "name", - "resource" - ], - "type": "object" - }, - "type": "array" - }, - "name": { - "description": "Name of the resource. Used as a reference for inputs, as well as being the name presented in workload statuses to identify this resource.", - "type": "string" - }, - "params": { - "description": "Params are a list of parameters to provide to the template in TemplateRef Template params do not have to be specified here, unless you want to force a particular value, or add a default value. \n Parameters are consumed in a template with the syntax: $(params.)$", - "items": { - "properties": { - "default": { - "description": "DefaultValue of the parameter. Causes the parameter to be optional; If the Owner does not specify this parameter, this value is used.", - "x-kubernetes-preserve-unknown-fields": true - }, - "name": { - "description": "Name of the parameter. Should match a template parameter name.", - "type": "string" - }, - "value": { - "description": "Value of the parameter. If specified, owner properties are ignored.", - "x-kubernetes-preserve-unknown-fields": true - } - }, - "required": [ - "name" - ], - "type": "object" - }, - "type": "array" - }, - "sources": { - "description": "Sources is a list of references to other 'source' resources in this list. A source resource has the kind ClusterSourceTemplate \n In a template, sources can be consumed as: $(sources..url)$ and $(sources..revision)$ \n If there is only one source, it can be consumed as: $(source.url)$ and $(source.revision)$", - "items": { - "properties": { - "name": { - "type": "string" - }, - "resource": { - "type": "string" - } - }, - "required": [ - "name", - "resource" - ], - "type": "object" - }, - "type": "array" - }, - "templateRef": { - "description": "TemplateRef identifies the template used to produce this resource", - "properties": { - "kind": { - "description": "Kind of the template to apply", - "enum": [ - "ClusterSourceTemplate", - "ClusterImageTemplate", - "ClusterTemplate", - "ClusterConfigTemplate" - ], - "type": "string" - }, - "name": { - "description": "Name of the template to apply Only one of Name and Options can be specified.", - "minLength": 1, - "type": "string" - }, - "options": { - "description": "Options is a list of template names and Selectors. The templates must all be of type Kind. A template will be selected if the workload matches the specified Selector. Only one template can be selected. Only one of Name and Options can be specified. Minimum number of items in list is two.", - "items": { - "properties": { - "name": { - "description": "Name of the template to apply", - "minLength": 1, - "type": "string" - }, - "selector": { - "description": "Selector is a field query over a workload or deliverable resource.", - "properties": { - "matchFields": { - "description": "MatchFields is a list of field selector requirements. The requirements are ANDed.", - "items": { - "properties": { - "key": { - "description": "Key is the JSON path in the workload to match against. e.g. for workload: \"workload.spec.source.git.url\", e.g. for deliverable: \"deliverable.spec.source.git.url\"", - "minLength": 1, - "type": "string" - }, - "operator": { - "description": "Operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - "enum": [ - "In", - "NotIn", - "Exists", - "DoesNotExist" - ], - "type": "string" - }, - "values": { - "description": "Values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "key", - "operator" - ], - "type": "object" - }, - "minItems": 1, - "type": "array" - } - }, - "required": [ - "matchFields" - ], - "type": "object" - } - }, - "required": [ - "name", - "selector" - ], - "type": "object" - }, - "minItems": 2, - "type": "array" - } - }, - "required": [ - "kind" - ], - "type": "object" - } - }, - "required": [ - "name", - "templateRef" - ], - "type": "object" - }, - "type": "array" - }, - "selector": { - "additionalProperties": { - "type": "string" - }, - "description": "Specifies the label key-value pairs used to select workloads See: https://cartographer.sh/docs/v0.1.0/architecture/#selectors", - "type": "object" - }, - "serviceAccountRef": { - "description": "ServiceAccountName refers to the Service account with permissions to create resources submitted by the supply chain. \n If not set, Cartographer will use serviceAccountName from supply chain. \n If that is also not set, Cartographer will use the default service account in the workload's namespace.", - "properties": { - "name": { - "description": "Name of the service account being referred to", - "type": "string" - }, - "namespace": { - "description": "Namespace of the service account being referred to if omitted, the Owner's namespace is used.", - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - } - }, - "required": [ - "resources", - "selector" - ], - "type": "object" - }, - "status": { - "description": "Status conforms to the Kubernetes conventions: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties", - "properties": { - "conditions": { - "items": { - "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", - "properties": { - "lastTransitionTime": { - "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.", - "format": "date-time", - "type": "string" - }, - "message": { - "description": "message is a human readable message indicating details about the transition. This may be an empty string.", - "maxLength": 32768, - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.", - "format": "int64", - "minimum": 0, - "type": "integer" - }, - "reason": { - "description": "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.", - "maxLength": 1024, - "minLength": 1, - "pattern": "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$", - "type": "string" - }, - "status": { - "description": "status of the condition, one of True, False, Unknown.", - "enum": [ - "True", - "False", - "Unknown" - ], - "type": "string" - }, - "type": { - "description": "type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)", - "maxLength": 316, - "pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$", - "type": "string" - } - }, - "required": [ - "lastTransitionTime", - "message", - "reason", - "status", - "type" - ], - "type": "object" - }, - "type": "array" - }, - "observedGeneration": { - "format": "int64", - "type": "integer" - } - }, - "type": "object" - } - }, - "required": [ - "metadata", - "spec" - ], - "type": "object" - }; - -let convertedSchema = toJsonSchema(schema); - -console.log(JSON.stringify(convertedSchema)); \ No newline at end of file diff --git a/experimental/live-editor/hack/yaml1.js b/experimental/live-editor/hack/yaml1.js deleted file mode 100644 index f4f6cf311..000000000 --- a/experimental/live-editor/hack/yaml1.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {parseDocument} from "yaml" - -let doc = [ - "---", - "foo: bar", - "boom: bang" -].join("\n") - - -let out = parseDocument(doc, ) diff --git a/experimental/live-editor/index.html b/experimental/live-editor/index.html deleted file mode 100644 index d3dd1bc39..000000000 --- a/experimental/live-editor/index.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - -
- - - diff --git a/experimental/live-editor/jsconfig.json b/experimental/live-editor/jsconfig.json deleted file mode 100644 index 42585941e..000000000 --- a/experimental/live-editor/jsconfig.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "compilerOptions": { - "moduleResolution": "node", - "target": "esnext", - "module": "esnext", - /** - * svelte-preprocess cannot figure out whether you have - * a value or a type, so tell TypeScript to enforce using - * `import type` instead of `import` for Types. - */ - "importsNotUsedAsValues": "error", - "isolatedModules": true, - "resolveJsonModule": true, - /** - * To have warnings / errors of the Svelte compiler at the - * correct position, enable source maps by default. - */ - "sourceMap": true, - "esModuleInterop": true, - "skipLibCheck": true, - "forceConsistentCasingInFileNames": true, - "baseUrl": ".", - /** - * Typecheck JS in `.svelte` and `.js` files by default. - * Disable this if you'd like to use dynamic types. - */ - "checkJs": true - }, - /** - * Use global.d.ts instead of compilerOptions.types - * to avoid limiting type declarations. - */ - "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"] -} diff --git a/experimental/live-editor/package.json b/experimental/live-editor/package.json deleted file mode 100644 index 308a0cbf6..000000000 --- a/experimental/live-editor/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "cartographer-live-editor", - "version": "0.0.0", - "type": "module", - "license": "Apache-2.0", - "scripts": { - "dev": "vite --host", - "build": "vite build", - "preview": "vite preview", - "schema": "./hack/schema.js" - }, - "devDependencies": { - "@openapi-contrib/openapi-schema-to-json-schema": "^3.1.1", - "@sveltejs/vite-plugin-svelte": "^1.0.0-next.41", - "@types/json-schema": "^7.0.11", - "autoprefixer": "^10.4.4", - "js-base64": "^3.7.2", - "jsonc-parser": "^3.0.0", - "mermaid": "^8.14.0", - "monaco-editor": "^0.33.0", - "monaco-yaml": "file:./src/monaco-yaml", - "pako": "^2.0.4", - "path-browserify": "^1.0.0", - "postcss": "^8.4.12", - "postcss-load-config": "^3.1.4", - "prettier": "2.6.2", - "svelte": "^3.47.0", - "svelte-copy-to-clipboard": "^0.2.5", - "svelte-preprocess": "^4.10.5", - "svelte-simple-modal": "^1.3.1", - "tailwindcss": "^3.0.24", - "vite": "^2.9.1", - "vscode-languageserver-textdocument": "^1.0.0", - "vscode-languageserver-types": "^3.0.0", - "yaml": "^2.0.0" - }, - "dependencies": { - "upper-case-first": "^2.0.2" - } -} diff --git a/experimental/live-editor/postcss.config.cjs b/experimental/live-editor/postcss.config.cjs deleted file mode 100644 index 5fdfafcd2..000000000 --- a/experimental/live-editor/postcss.config.cjs +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const tailwindcss = require("tailwindcss"); -const autoprefixer = require("autoprefixer"); - -const config = { - plugins: [ - //Some plugins, like tailwindcss/nesting, need to run before Tailwind, - tailwindcss(), - //But others, like autoprefixer, need to run after, - autoprefixer, - ], -}; - -module.exports = config; diff --git a/experimental/live-editor/public/favicon.png b/experimental/live-editor/public/favicon.png deleted file mode 100644 index dc367db5b..000000000 Binary files a/experimental/live-editor/public/favicon.png and /dev/null differ diff --git a/experimental/live-editor/src/App.svelte b/experimental/live-editor/src/App.svelte deleted file mode 100644 index 7d0e0aed2..000000000 --- a/experimental/live-editor/src/App.svelte +++ /dev/null @@ -1,58 +0,0 @@ - - - - -
- - -
- - {#if loaded} - - - - - {/if} -
-
-
- diff --git a/experimental/live-editor/src/app.css b/experimental/live-editor/src/app.css deleted file mode 100644 index fb9d67b1e..000000000 --- a/experimental/live-editor/src/app.css +++ /dev/null @@ -1,20 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* Write your global styles here, in PostCSS syntax */ -@tailwind base; -@tailwind components; -@tailwind utilities; diff --git a/experimental/live-editor/src/lib/FlexPane.svelte b/experimental/live-editor/src/lib/FlexPane.svelte deleted file mode 100644 index 5838cb0d4..000000000 --- a/experimental/live-editor/src/lib/FlexPane.svelte +++ /dev/null @@ -1,41 +0,0 @@ - - -
- -
-
-
- missing <slot="right"> -
-
-
diff --git a/experimental/live-editor/src/lib/Help.svelte b/experimental/live-editor/src/lib/Help.svelte deleted file mode 100644 index 71832923b..000000000 --- a/experimental/live-editor/src/lib/Help.svelte +++ /dev/null @@ -1,46 +0,0 @@ - - -

- Cartographer Live Editor Help -

- -

- This editor is a spike to gauge interest and investigate the possibilities. - - Provide feedback by commenting on the - original issue, but please make sure you don't report - something already captured. - - -

- - -

Shortcuts

-
-
Autocomplete
-
Ctrl + Space
-
Show info
-
Cmd + K, Cmd + I
-
Command Palette
-
F1
-
- - \ No newline at end of file diff --git a/experimental/live-editor/src/lib/Mermaid.svelte b/experimental/live-editor/src/lib/Mermaid.svelte deleted file mode 100644 index 469650dd8..000000000 --- a/experimental/live-editor/src/lib/Mermaid.svelte +++ /dev/null @@ -1,33 +0,0 @@ - - -
-
diff --git a/experimental/live-editor/src/lib/Monaco.svelte b/experimental/live-editor/src/lib/Monaco.svelte deleted file mode 100644 index 32083d24f..000000000 --- a/experimental/live-editor/src/lib/Monaco.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - -
- - \ No newline at end of file diff --git a/experimental/live-editor/src/lib/Navigation.svelte b/experimental/live-editor/src/lib/Navigation.svelte deleted file mode 100644 index 8a29f3ec9..000000000 --- a/experimental/live-editor/src/lib/Navigation.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - - - \ No newline at end of file diff --git a/experimental/live-editor/src/lib/Shared.svelte b/experimental/live-editor/src/lib/Shared.svelte deleted file mode 100644 index 085881be8..000000000 --- a/experimental/live-editor/src/lib/Shared.svelte +++ /dev/null @@ -1,9 +0,0 @@ -

- Link copied to clipboard! -

- -
- - - was copied to your clipboard! -
diff --git a/experimental/live-editor/src/lib/Viz.svelte b/experimental/live-editor/src/lib/Viz.svelte deleted file mode 100644 index 12d3c9b1f..000000000 --- a/experimental/live-editor/src/lib/Viz.svelte +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/experimental/live-editor/src/lib/monaco/schema.js b/experimental/live-editor/src/lib/monaco/schema.js deleted file mode 100644 index ee8e0192c..000000000 --- a/experimental/live-editor/src/lib/monaco/schema.js +++ /dev/null @@ -1,252 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export const schema = { - "properties": { - "apiVersion": { - "description": "APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources", - "type": "string" - }, - "kind": { - "description": "Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds", - "type": "string" - }, - "metadata": {"type": "object"}, - "spec": { - "description": "Spec describes the suppply chain. More info: https://cartographer.sh/docs/latest/reference/workload/#clustersupplychain", - "properties": { - "params": { - "description": "Additional parameters. See: https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy", - "items": { - "properties": { - "default": { - "description": "DefaultValue of the parameter. Causes the parameter to be optional; If the Owner does not specify this parameter, this value is used.", - "x-kubernetes-preserve-unknown-fields": true - }, - "name": { - "description": "Name of the parameter. Should match a template parameter name.", - "type": "string" - }, - "value": { - "description": "Value of the parameter. If specified, owner properties are ignored.", - "x-kubernetes-preserve-unknown-fields": true - } - }, "required": ["name"], "type": "object" - }, - "type": "array" - }, - "resources": { - "description": "Resources that are responsible for bringing the application to a deliverable state.", - "items": { - "properties": { - "configs": { - "description": "Configs is a list of references to other 'config' resources in this list. A config resource has the kind ClusterConfigTemplate \n In a template, configs can be consumed as: $(configs..config)$ \n If there is only one image, it can be consumed as: $(config)$", - "items": { - "properties": {"name": {"type": "string"}, "resource": {"type": "string"}}, - "required": ["name", "resource"], - "type": "object" - }, - "type": "array" - }, - "images": { - "description": "Images is a list of references to other 'image' resources in this list. An image resource has the kind ClusterImageTemplate \n In a template, images can be consumed as: $(images..image)$ \n If there is only one image, it can be consumed as: $(image)$", - "items": { - "properties": {"name": {"type": "string"}, "resource": {"type": "string"}}, - "required": ["name", "resource"], - "type": "object" - }, - "type": "array" - }, - "name": { - "description": "Name of the resource. Used as a reference for inputs, as well as being the name presented in workload statuses to identify this resource.", - "type": "string" - }, - "params": { - "description": "Params are a list of parameters to provide to the template in TemplateRef Template params do not have to be specified here, unless you want to force a particular value, or add a default value. \n Parameters are consumed in a template with the syntax: $(params.)$", - "items": { - "properties": { - "default": { - "description": "DefaultValue of the parameter. Causes the parameter to be optional; If the Owner does not specify this parameter, this value is used.", - "x-kubernetes-preserve-unknown-fields": true - }, - "name": { - "description": "Name of the parameter. Should match a template parameter name.", - "type": "string" - }, - "value": { - "description": "Value of the parameter. If specified, owner properties are ignored.", - "x-kubernetes-preserve-unknown-fields": true - } - }, "required": ["name"], "type": "object" - }, - "type": "array" - }, - "sources": { - "description": "Sources is a list of references to other 'source' resources in this list. A source resource has the kind ClusterSourceTemplate \n In a template, sources can be consumed as: $(sources..url)$ and $(sources..revision)$ \n If there is only one source, it can be consumed as: $(source.url)$ and $(source.revision)$", - "items": { - "properties": {"name": {"type": "string"}, "resource": {"type": "string"}}, - "required": ["name", "resource"], - "type": "object" - }, - "type": "array" - }, - "templateRef": { - "description": "TemplateRef identifies the template used to produce this resource", - "properties": { - "kind": { - "description": "Kind of the template to apply", - "enum": ["ClusterSourceTemplate", "ClusterImageTemplate", "ClusterTemplate", "ClusterConfigTemplate"], - "type": "string" - }, - "name": { - "description": "Name of the template to apply Only one of Name and Options can be specified.", - "minLength": 1, - "type": "string" - }, - "options": { - "description": "Options is a list of template names and Selectors. The templates must all be of type Kind. A template will be selected if the workload matches the specified Selector. Only one template can be selected. Only one of Name and Options can be specified. Minimum number of items in list is two.", - "items": { - "properties": { - "name": { - "description": "Name of the template to apply", - "minLength": 1, - "type": "string" - }, "selector": { - "description": "Selector is a field query over a workload or deliverable resource.", - "properties": { - "matchFields": { - "description": "MatchFields is a list of field selector requirements. The requirements are ANDed.", - "items": { - "properties": { - "key": { - "description": "Key is the JSON path in the workload to match against. e.g. for workload: \"workload.spec.source.git.url\", e.g. for deliverable: \"deliverable.spec.source.git.url\"", - "minLength": 1, - "type": "string" - }, - "operator": { - "description": "Operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", - "enum": ["In", "NotIn", "Exists", "DoesNotExist"], - "type": "string" - }, - "values": { - "description": "Values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.", - "items": {"type": "string"}, - "type": "array" - } - }, "required": ["key", "operator"], "type": "object" - }, - "minItems": 1, - "type": "array" - } - }, - "required": ["matchFields"], - "type": "object" - } - }, "required": ["name", "selector"], "type": "object" - }, - "minItems": 2, - "type": "array" - } - }, - "required": ["kind"], - "type": "object" - } - }, "required": ["name", "templateRef"], "type": "object" - }, - "type": "array" - }, - "selector": { - "additionalProperties": {"type": "string"}, - "description": "Specifies the label key-value pairs used to select workloads See: https://cartographer.sh/docs/v0.1.0/architecture/#selectors", - "type": "object" - }, - "serviceAccountRef": { - "description": "ServiceAccountName refers to the Service account with permissions to create resources submitted by the supply chain. \n If not set, Cartographer will use serviceAccountName from supply chain. \n If that is also not set, Cartographer will use the default service account in the workload's namespace.", - "properties": { - "name": { - "description": "Name of the service account being referred to", - "type": "string" - }, - "namespace": { - "description": "Namespace of the service account being referred to if omitted, the Owner's namespace is used.", - "type": "string" - } - }, - "required": ["name"], - "type": "object" - } - }, - "required": ["resources", "selector"], - "type": "object" - }, - "status": { - "description": "Status conforms to the Kubernetes conventions: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties", - "properties": { - "conditions": { - "items": { - "description": "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo's current state. // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }", - "properties": { - "lastTransitionTime": { - "description": "lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.", - "format": "date-time", - "type": "string" - }, - "message": { - "description": "message is a human readable message indicating details about the transition. This may be an empty string.", - "maxLength": 32768, - "type": "string" - }, - "observedGeneration": { - "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.", - "format": "int64", - "minimum": 0, - "type": "integer", - "maximum": 9223372036854776000 - }, - "reason": { - "description": "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.", - "maxLength": 1024, - "minLength": 1, - "pattern": "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$", - "type": "string" - }, - "status": { - "description": "status of the condition, one of True, False, Unknown.", - "enum": ["True", "False", "Unknown"], - "type": "string" - }, - "type": { - "description": "type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)", - "maxLength": 316, - "pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$", - "type": "string" - } - }, - "required": ["lastTransitionTime", "message", "reason", "status", "type"], - "type": "object" - }, "type": "array" - }, - "observedGeneration": { - "format": "int64", - "type": "integer", - "minimum": -9223372036854776000, - "maximum": 9223372036854776000 - } - }, - "type": "object" - } - }, "required": ["metadata", "spec"], "type": "object", "$schema": "http://json-schema.org/draft-04/schema#" -} diff --git a/experimental/live-editor/src/lib/monaco/supply-chain-lang.ts b/experimental/live-editor/src/lib/monaco/supply-chain-lang.ts deleted file mode 100644 index 4b73f25ad..000000000 --- a/experimental/live-editor/src/lib/monaco/supply-chain-lang.ts +++ /dev/null @@ -1,112 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {editor, languages, Position} from "monaco-editor"; -import ITextModel = editor.ITextModel; - -import {parseDocument, YAMLMap, Scalar, YAMLSeq, Document, LineCounter} from 'yaml' -import {upperCaseFirst} from "upper-case-first"; -import {CompletionItemKind} from "vscode-languageserver-types"; -import ProviderResult = languages.ProviderResult; -import CompletionList = languages.CompletionList; -import CompletionItem = languages.CompletionItem; - -const resourceGroupRE = /(config|image|source)s:/ - -const inResourceKind = (model: ITextModel, lineNumber: number) => { - let line = model.getLineContent(lineNumber) - let resourcePos = line.search(/\s+resource:/) - if (resourcePos < 0) { - return null - } - - let searchLineNumber = lineNumber - - while (--searchLineNumber > 0) { - let searchLine = model.getLineContent(searchLineNumber) - let matches = searchLine.match(resourceGroupRE) - if (matches) { - return `Cluster${upperCaseFirst(matches[1])}Template` - } - } - - return null -} - -const itemByKey = (map: YAMLMap, key: string) => map.items.find(item => (item.key).value === key) -const specNodeFromDocument = (docNode: Document) => itemByKey(docNode.contents, "spec") -const resourcesNodeFromDocument = (docNode: Document) => itemByKey(specNodeFromDocument(docNode).value, "resources") - -const templateKindFromResourceNode = (resourceNode: YAMLMap) => (itemByKey((itemByKey(resourceNode, "templateRef").value), "kind").value).value -// const filterResourcesByKind = (resourcesNode: YAMLMap, kind: string) => resourcesNode.items.filter((item: YAMLMap) => templateKindFromResourceNode(item) === kind)) - -const getSuggestions = (model: editor.ITextModel, kind: string, position: Position): CompletionItem[] => { - let doc = model.getValue() - let lineCounter = new LineCounter() - try { - let objNode = parseDocument(doc, {keepSourceTokens: true, lineCounter: lineCounter}) - - let resourcesByType = (resourcesNodeFromDocument(objNode).value).items - .filter((item: YAMLMap) => { - let endOfItem = lineCounter.linePos(item.range[2]) - // normally you would use position.lineNumber+1 to make it 1-based - // however if you're autocompleting on the last line of a resource, then the current line - // is one higher than the end of the item (we want to exclude self-refs), so we need to - // subtract 1. so: (endOfItem.line < position.lineNumber + 1 - 1) - // becomes: (endOfItem.line < position.lineNumber) - return (endOfItem.line < position.lineNumber) && - (templateKindFromResourceNode(item) === kind) - }) - - let mappedResources = resourcesByType.map((resource: YAMLMap): CompletionItem => { - let name: string = (itemByKey(resource, "name").value).value - return { - insertText: name, - kind: CompletionItemKind.Reference, - range: null, - label: name - } - }) - console.log(mappedResources) - return mappedResources - } catch (e) { - // no-op, don't care - } - return [] -}; - -export const AddSupplyChainLang = () => { - - languages.registerCompletionItemProvider( - 'yaml', - { - triggerCharacters: [' '], - provideCompletionItems(model, position): ProviderResult { - let resourceKind = inResourceKind(model, position.lineNumber) - if (resourceKind) { - return { - incomplete: true, - suggestions: getSuggestions(model, resourceKind, position), - }; - } else { - return null - } - }, - } - ) -} - -export default AddSupplyChainLang \ No newline at end of file diff --git a/experimental/live-editor/src/lib/viz-processor.js b/experimental/live-editor/src/lib/viz-processor.js deleted file mode 100644 index 1e1033d56..000000000 --- a/experimental/live-editor/src/lib/viz-processor.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -export const toMermaid = obj => { - let lines = [ - "flowchart RL", - "classDef not-found fill:#f66;" - ] - - let resourceNodesByName = {} - - if (obj.spec.resources) { - obj.spec.resources.forEach(resource => { - if (!resource.name) { - return - } - let nodeName = `res-${resource.name}` - let nodeLabel = `${resource.name}` - - resourceNodesByName[nodeName] = nodeLabel - - lines.push(`${nodeName}["${nodeLabel}"]`); - - ["sources", "images", "configs"].forEach((resourceType, rowIndex) => { - if (resource[resourceType]) { - resource[resourceType].forEach(input => { - if (resourceNodesByName[`res-${input.resource}`]) { - lines.push(`${nodeName} --> res-${input.resource}`) - } else { - let naTarget = `not-found-${input.resource}-${rowIndex}` - lines.push(`${nodeName} --> ${naTarget}`) - lines.push(`${naTarget}["not-found"]`) - lines.push(`class ${naTarget} not-found`) - } - }) - } - }) - - }) - } - // console.log(lines) - return lines.join("\n") -} \ No newline at end of file diff --git a/experimental/live-editor/src/main.js b/experimental/live-editor/src/main.js deleted file mode 100644 index e94197264..000000000 --- a/experimental/live-editor/src/main.js +++ /dev/null @@ -1,59 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import App from './App.svelte' -import {setDiagnosticsOptions} from "./monaco-yaml"; -import YamlWorker from './monaco-yaml/yaml.worker?worker'; -import TsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'; -import EditorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'; -import {schema} from "./lib/monaco/schema"; -import AddSupplyChainLang from "./lib/monaco/supply-chain-lang"; -import "./app.css" - -window.MonacoEnvironment = { - getWorker(moduleId, label) { - switch (label) { - case 'yaml': - return new YamlWorker(); - case 'javascript': - return new TsWorker(); - default: - return new EditorWorker(); - } - }, -}; - -setDiagnosticsOptions({ - enableSchemaRequest: true, - hover: true, - completion: true, - validate: true, - format: true, - schemas: [ - { - fileMatch: ["*.yaml"], - schema: schema, - }, - ], -}); - -AddSupplyChainLang() - -const app = new App({ - target: document.body -}) - -export default app diff --git a/experimental/live-editor/src/monaco-yaml/index.js b/experimental/live-editor/src/monaco-yaml/index.js deleted file mode 100644 index 5eccc2a38..000000000 --- a/experimental/live-editor/src/monaco-yaml/index.js +++ /dev/null @@ -1,513 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// src/index.ts -import { Emitter, languages as languages4 } from "monaco-editor/esm/vs/editor/editor.api.js"; - -// src/constants.ts -var languageId = "yaml"; - -// src/yamlMode.ts -import { languages as languages3 } from "monaco-editor/esm/vs/editor/editor.api.js"; - -// src/languageFeatures.ts -import { - editor, - languages, - MarkerSeverity, - Range, - Uri -} from "monaco-editor/esm/vs/editor/editor.api.js"; -import { - CompletionItemKind, - DiagnosticSeverity, - InsertTextFormat, - SymbolKind -} from "vscode-languageserver-types"; -function toSeverity(lsSeverity) { - switch (lsSeverity) { - case DiagnosticSeverity.Error: - return MarkerSeverity.Error; - case DiagnosticSeverity.Warning: - return MarkerSeverity.Warning; - case DiagnosticSeverity.Information: - return MarkerSeverity.Info; - case DiagnosticSeverity.Hint: - return MarkerSeverity.Hint; - default: - return MarkerSeverity.Info; - } -} -function toDiagnostics(diag) { - return { - severity: toSeverity(diag.severity), - startLineNumber: diag.range.start.line + 1, - startColumn: diag.range.start.character + 1, - endLineNumber: diag.range.end.line + 1, - endColumn: diag.range.end.character + 1, - message: diag.message, - code: String(diag.code), - source: diag.source - }; -} -function createDiagnosticsAdapter(getWorker, defaults) { - const listeners = new Map(); - const resetSchema = async (resource) => { - const worker = await getWorker(); - worker.resetSchema(String(resource)); - }; - const doValidate = async (resource) => { - const worker = await getWorker(resource); - const diagnostics = await worker.doValidation(String(resource)); - const markers = diagnostics.map(toDiagnostics); - const model = editor.getModel(resource); - if (model && model.getLanguageId() === languageId) { - editor.setModelMarkers(model, languageId, markers); - } - }; - const onModelAdd = (model) => { - if (model.getLanguageId() !== languageId) { - return; - } - let handle; - listeners.set(String(model.uri), model.onDidChangeContent(() => { - clearTimeout(handle); - handle = setTimeout(() => doValidate(model.uri), 500); - })); - doValidate(model.uri); - }; - const onModelRemoved = (model) => { - editor.setModelMarkers(model, languageId, []); - const uriStr = String(model.uri); - const listener = listeners.get(uriStr); - if (listener) { - listener.dispose(); - listeners.delete(uriStr); - } - }; - editor.onDidCreateModel(onModelAdd); - editor.onWillDisposeModel((model) => { - onModelRemoved(model); - resetSchema(model.uri); - }); - editor.onDidChangeModelLanguage((event) => { - onModelRemoved(event.model); - onModelAdd(event.model); - resetSchema(event.model.uri); - }); - defaults.onDidChange(() => { - for (const model of editor.getModels()) { - if (model.getLanguageId() === languageId) { - onModelRemoved(model); - onModelAdd(model); - } - } - }); - for (const model of editor.getModels()) { - onModelAdd(model); - } -} -function fromPosition(position) { - if (!position) { - return; - } - return { character: position.column - 1, line: position.lineNumber - 1 }; -} -function toRange(range) { - if (!range) { - return; - } - return new Range(range.start.line + 1, range.start.character + 1, range.end.line + 1, range.end.character + 1); -} -function toCompletionItemKind(kind) { - const mItemKind = languages.CompletionItemKind; - switch (kind) { - case CompletionItemKind.Text: - return mItemKind.Text; - case CompletionItemKind.Method: - return mItemKind.Method; - case CompletionItemKind.Function: - return mItemKind.Function; - case CompletionItemKind.Constructor: - return mItemKind.Constructor; - case CompletionItemKind.Field: - return mItemKind.Field; - case CompletionItemKind.Variable: - return mItemKind.Variable; - case CompletionItemKind.Class: - return mItemKind.Class; - case CompletionItemKind.Interface: - return mItemKind.Interface; - case CompletionItemKind.Module: - return mItemKind.Module; - case CompletionItemKind.Property: - return mItemKind.Property; - case CompletionItemKind.Unit: - return mItemKind.Unit; - case CompletionItemKind.Value: - return mItemKind.Value; - case CompletionItemKind.Enum: - return mItemKind.Enum; - case CompletionItemKind.Keyword: - return mItemKind.Keyword; - case CompletionItemKind.Snippet: - return mItemKind.Snippet; - case CompletionItemKind.Color: - return mItemKind.Color; - case CompletionItemKind.File: - return mItemKind.File; - case CompletionItemKind.Reference: - return mItemKind.Reference; - default: - return mItemKind.Property; - } -} -function toTextEdit(textEdit) { - if (!textEdit) { - return; - } - return { - range: toRange(textEdit.range), - text: textEdit.newText - }; -} -function createCompletionItemProvider(getWorker) { - return { - triggerCharacters: [" ", ":"], - async provideCompletionItems(model, position) { - const resource = model.uri; - const worker = await getWorker(resource); - const info = await worker.doComplete(String(resource), fromPosition(position)); - if (!info) { - return; - } - const wordInfo = model.getWordUntilPosition(position); - const wordRange = new Range(position.lineNumber, wordInfo.startColumn, position.lineNumber, wordInfo.endColumn); - const items = info.items.map((entry) => { - const item = { - label: entry.label, - insertText: entry.insertText || entry.label, - sortText: entry.sortText, - filterText: entry.filterText, - documentation: entry.documentation, - detail: entry.detail, - kind: toCompletionItemKind(entry.kind), - range: wordRange - }; - if (entry.textEdit) { - item.range = toRange("range" in entry.textEdit ? entry.textEdit.range : entry.textEdit.replace); - item.insertText = entry.textEdit.newText; - } - if (entry.additionalTextEdits) { - item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit); - } - if (entry.insertTextFormat === InsertTextFormat.Snippet) { - item.insertTextRules = languages.CompletionItemInsertTextRule.InsertAsSnippet; - } - return item; - }); - return { - incomplete: info.isIncomplete, - suggestions: items - }; - } - }; -} -function createDefinitionProvider(getWorker) { - return { - async provideDefinition(model, position) { - const resource = model.uri; - const worker = await getWorker(resource); - const definitions = await worker.doDefinition(String(resource), fromPosition(position)); - return definitions == null ? void 0 : definitions.map((definition) => ({ - originSelectionRange: definition.originSelectionRange, - range: toRange(definition.targetRange), - targetSelectionRange: definition.targetSelectionRange, - uri: Uri.parse(definition.targetUri) - })); - } - }; -} -function createHoverProvider(getWorker) { - return { - async provideHover(model, position) { - const resource = model.uri; - const worker = await getWorker(resource); - const info = await worker.doHover(String(resource), fromPosition(position)); - if (!info) { - return; - } - return { - range: toRange(info.range), - contents: [{ value: info.contents.value }] - }; - } - }; -} -function toSymbolKind(kind) { - const mKind = languages.SymbolKind; - switch (kind) { - case SymbolKind.File: - return mKind.Array; - case SymbolKind.Module: - return mKind.Module; - case SymbolKind.Namespace: - return mKind.Namespace; - case SymbolKind.Package: - return mKind.Package; - case SymbolKind.Class: - return mKind.Class; - case SymbolKind.Method: - return mKind.Method; - case SymbolKind.Property: - return mKind.Property; - case SymbolKind.Field: - return mKind.Field; - case SymbolKind.Constructor: - return mKind.Constructor; - case SymbolKind.Enum: - return mKind.Enum; - case SymbolKind.Interface: - return mKind.Interface; - case SymbolKind.Function: - return mKind.Function; - case SymbolKind.Variable: - return mKind.Variable; - case SymbolKind.Constant: - return mKind.Constant; - case SymbolKind.String: - return mKind.String; - case SymbolKind.Number: - return mKind.Number; - case SymbolKind.Boolean: - return mKind.Boolean; - case SymbolKind.Array: - return mKind.Array; - default: - return mKind.Function; - } -} -function toDocumentSymbol(item) { - return { - detail: item.detail || "", - range: toRange(item.range), - name: item.name, - kind: toSymbolKind(item.kind), - selectionRange: toRange(item.selectionRange), - children: item.children.map(toDocumentSymbol), - tags: [] - }; -} -function createDocumentSymbolProvider(getWorker) { - return { - async provideDocumentSymbols(model) { - const resource = model.uri; - const worker = await getWorker(resource); - const items = await worker.findDocumentSymbols(String(resource)); - if (!items) { - return; - } - return items.map(toDocumentSymbol); - } - }; -} -function fromFormattingOptions(options) { - return { - tabSize: options.tabSize, - insertSpaces: options.insertSpaces, - ...options - }; -} -function createDocumentFormattingEditProvider(getWorker) { - return { - async provideDocumentFormattingEdits(model, options) { - const resource = model.uri; - const worker = await getWorker(resource); - const edits = await worker.format(String(resource), fromFormattingOptions(options)); - if (!edits || edits.length === 0) { - return; - } - return edits.map(toTextEdit); - } - }; -} -function toLink(link) { - return { - range: toRange(link.range), - tooltip: link.tooltip, - url: link.target - }; -} -function createLinkProvider(getWorker) { - return { - async provideLinks(model) { - const resource = model.uri; - const worker = await getWorker(resource); - const links = await worker.findLinks(String(resource)); - return { - links: links.map(toLink) - }; - } - }; -} - -// src/workerManager.ts -import { editor as editor2 } from "monaco-editor/esm/vs/editor/editor.api.js"; -var STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3; -function createWorkerManager(defaults) { - let worker; - let client; - let lastUsedTime = 0; - const stopWorker = () => { - if (worker) { - worker.dispose(); - worker = void 0; - } - client = void 0; - }; - setInterval(() => { - if (!worker) { - return; - } - const timePassedSinceLastUsed = Date.now() - lastUsedTime; - if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) { - stopWorker(); - } - }, 30 * 1e3); - defaults.onDidChange(() => stopWorker()); - const getClient = () => { - lastUsedTime = Date.now(); - if (!client) { - worker = editor2.createWebWorker({ - moduleId: "vs/language/yaml/yamlWorker", - label: defaults.languageId, - createData: { - languageSettings: defaults.diagnosticsOptions, - enableSchemaRequest: defaults.diagnosticsOptions.enableSchemaRequest, - isKubernetes: defaults.diagnosticsOptions.isKubernetes, - customTags: defaults.diagnosticsOptions.customTags - } - }); - client = worker.getProxy(); - } - return client; - }; - return async (...resources) => { - const client2 = await getClient(); - await worker.withSyncedResources(resources); - return client2; - }; -} - -// src/yamlMode.ts -var richEditConfiguration = { - comments: { - lineComment: "#" - }, - brackets: [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - autoClosingPairs: [ - { open: "{", close: "}" }, - { open: "[", close: "]" }, - { open: "(", close: ")" }, - { open: '"', close: '"' }, - { open: "'", close: "'" } - ], - surroundingPairs: [ - { open: "{", close: "}" }, - { open: "[", close: "]" }, - { open: "(", close: ")" }, - { open: '"', close: '"' }, - { open: "'", close: "'" } - ], - onEnterRules: [ - { - beforeText: /:\s*$/, - action: { indentAction: languages3.IndentAction.Indent } - } - ] -}; -function setupMode(defaults) { - const worker = createWorkerManager(defaults); - languages3.registerCompletionItemProvider(languageId, createCompletionItemProvider(worker)); - languages3.registerHoverProvider(languageId, createHoverProvider(worker)); - languages3.registerDefinitionProvider(languageId, createDefinitionProvider(worker)); - languages3.registerDocumentSymbolProvider(languageId, createDocumentSymbolProvider(worker)); - languages3.registerDocumentFormattingEditProvider(languageId, createDocumentFormattingEditProvider(worker)); - languages3.registerLinkProvider(languageId, createLinkProvider(worker)); - createDiagnosticsAdapter(worker, defaults); - languages3.setLanguageConfiguration(languageId, richEditConfiguration); -} - -// src/index.ts -var diagnosticDefault = { - completion: true, - customTags: [], - enableSchemaRequest: false, - format: true, - isKubernetes: false, - hover: true, - schemas: [], - validate: true, - yamlVersion: "1.2" -}; -function createLanguageServiceDefaults(initialDiagnosticsOptions) { - const onDidChange = new Emitter(); - let diagnosticsOptions = initialDiagnosticsOptions; - const languageServiceDefaults = { - get onDidChange() { - return onDidChange.event; - }, - get languageId() { - return languageId; - }, - get diagnosticsOptions() { - return diagnosticsOptions; - }, - setDiagnosticsOptions(options) { - diagnosticsOptions = { ...diagnosticDefault, ...options }; - onDidChange.fire(languageServiceDefaults); - } - }; - return languageServiceDefaults; -} -var yamlDefaults = createLanguageServiceDefaults(diagnosticDefault); -function createAPI() { - return { - yamlDefaults - }; -} -languages4.yaml = createAPI(); -languages4.register({ - id: languageId, - extensions: [".yaml", ".yml"], - aliases: ["YAML", "yaml", "YML", "yml"], - mimetypes: ["application/x-yaml"] -}); -languages4.onLanguage("yaml", () => { - setupMode(yamlDefaults); -}); -function setDiagnosticsOptions(options = {}) { - languages4.yaml.yamlDefaults.setDiagnosticsOptions(options); -} -export { - createLanguageServiceDefaults, - setDiagnosticsOptions -}; -//# sourceMappingURL=index.js.map diff --git a/experimental/live-editor/src/monaco-yaml/index.js.map b/experimental/live-editor/src/monaco-yaml/index.js.map deleted file mode 100644 index bbe6c9856..000000000 --- a/experimental/live-editor/src/monaco-yaml/index.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["src/index.ts", "src/constants.ts", "src/yamlMode.ts", "src/languageFeatures.ts", "src/workerManager.ts"], - "sourcesContent": ["import { Emitter, languages } from 'monaco-editor/esm/vs/editor/editor.api.js';\n\nimport { languageId } from './constants';\nimport { setupMode } from './yamlMode';\n\n// --- YAML configuration and defaults ---------\n\nconst diagnosticDefault: languages.yaml.DiagnosticsOptions = {\n completion: true,\n customTags: [],\n enableSchemaRequest: false,\n format: true,\n isKubernetes: false,\n hover: true,\n schemas: [],\n validate: true,\n yamlVersion: '1.2',\n};\n\nexport function createLanguageServiceDefaults(\n initialDiagnosticsOptions: languages.yaml.DiagnosticsOptions,\n): languages.yaml.LanguageServiceDefaults {\n const onDidChange = new Emitter();\n let diagnosticsOptions = initialDiagnosticsOptions;\n\n const languageServiceDefaults: languages.yaml.LanguageServiceDefaults = {\n get onDidChange() {\n return onDidChange.event;\n },\n\n get languageId() {\n return languageId;\n },\n\n get diagnosticsOptions() {\n return diagnosticsOptions;\n },\n\n setDiagnosticsOptions(options) {\n diagnosticsOptions = { ...diagnosticDefault, ...options };\n onDidChange.fire(languageServiceDefaults);\n },\n };\n\n return languageServiceDefaults;\n}\n\nconst yamlDefaults = createLanguageServiceDefaults(diagnosticDefault);\n\n// Export API\nfunction createAPI(): typeof languages.yaml {\n return {\n yamlDefaults,\n };\n}\nlanguages.yaml = createAPI();\n\n// --- Registration to monaco editor ---\n\nlanguages.register({\n id: languageId,\n extensions: ['.yaml', '.yml'],\n aliases: ['YAML', 'yaml', 'YML', 'yml'],\n mimetypes: ['application/x-yaml'],\n});\n\nlanguages.onLanguage('yaml', () => {\n setupMode(yamlDefaults);\n});\n\n/**\n * Configure `monaco-yaml` diagnostics options.\n *\n * @param options - The options to set.\n */\nexport function setDiagnosticsOptions(options: languages.yaml.DiagnosticsOptions = {}): void {\n languages.yaml.yamlDefaults.setDiagnosticsOptions(options);\n}\n", "export const languageId = 'yaml';\n", "import { languages } from 'monaco-editor/esm/vs/editor/editor.api.js';\n\nimport { languageId } from './constants';\nimport {\n createCompletionItemProvider,\n createDefinitionProvider,\n createDiagnosticsAdapter,\n createDocumentFormattingEditProvider,\n createDocumentSymbolProvider,\n createHoverProvider,\n createLinkProvider,\n} from './languageFeatures';\nimport { createWorkerManager } from './workerManager';\n\nconst richEditConfiguration: languages.LanguageConfiguration = {\n comments: {\n lineComment: '#',\n },\n brackets: [\n ['{', '}'],\n ['[', ']'],\n ['(', ')'],\n ],\n autoClosingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n surroundingPairs: [\n { open: '{', close: '}' },\n { open: '[', close: ']' },\n { open: '(', close: ')' },\n { open: '\"', close: '\"' },\n { open: \"'\", close: \"'\" },\n ],\n\n onEnterRules: [\n {\n beforeText: /:\\s*$/,\n action: { indentAction: languages.IndentAction.Indent },\n },\n ],\n};\n\nexport function setupMode(defaults: languages.yaml.LanguageServiceDefaults): void {\n const worker = createWorkerManager(defaults);\n\n languages.registerCompletionItemProvider(languageId, createCompletionItemProvider(worker));\n languages.registerHoverProvider(languageId, createHoverProvider(worker));\n languages.registerDefinitionProvider(languageId, createDefinitionProvider(worker));\n languages.registerDocumentSymbolProvider(languageId, createDocumentSymbolProvider(worker));\n languages.registerDocumentFormattingEditProvider(\n languageId,\n createDocumentFormattingEditProvider(worker),\n );\n languages.registerLinkProvider(languageId, createLinkProvider(worker));\n createDiagnosticsAdapter(worker, defaults);\n languages.setLanguageConfiguration(languageId, richEditConfiguration);\n}\n", "import {\n editor,\n IDisposable,\n languages,\n MarkerSeverity,\n Position,\n Range,\n Uri,\n} from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport * as ls from 'vscode-languageserver-types';\nimport { CustomFormatterOptions } from 'yaml-language-server/lib/esm/languageservice/yamlLanguageService.js';\n\nimport { languageId } from './constants';\nimport { YAMLWorker } from './yamlWorker';\n\nexport type WorkerAccessor = (...more: Uri[]) => PromiseLike;\n\n// --- diagnostics --- ---\n\nfunction toSeverity(lsSeverity: ls.DiagnosticSeverity): MarkerSeverity {\n switch (lsSeverity) {\n case ls.DiagnosticSeverity.Error:\n return MarkerSeverity.Error;\n case ls.DiagnosticSeverity.Warning:\n return MarkerSeverity.Warning;\n case ls.DiagnosticSeverity.Information:\n return MarkerSeverity.Info;\n case ls.DiagnosticSeverity.Hint:\n return MarkerSeverity.Hint;\n default:\n return MarkerSeverity.Info;\n }\n}\n\nfunction toDiagnostics(diag: ls.Diagnostic): editor.IMarkerData {\n return {\n severity: toSeverity(diag.severity),\n startLineNumber: diag.range.start.line + 1,\n startColumn: diag.range.start.character + 1,\n endLineNumber: diag.range.end.line + 1,\n endColumn: diag.range.end.character + 1,\n message: diag.message,\n code: String(diag.code),\n source: diag.source,\n };\n}\n\nexport function createDiagnosticsAdapter(\n getWorker: WorkerAccessor,\n defaults: languages.yaml.LanguageServiceDefaults,\n): void {\n const listeners = new Map();\n\n const resetSchema = async (resource: Uri): Promise => {\n const worker = await getWorker();\n worker.resetSchema(String(resource));\n };\n\n const doValidate = async (resource: Uri): Promise => {\n const worker = await getWorker(resource);\n const diagnostics = await worker.doValidation(String(resource));\n const markers = diagnostics.map(toDiagnostics);\n const model = editor.getModel(resource);\n // Return value from getModel can be null if model not found\n // (e.g. if user navigates away from editor)\n if (model && model.getLanguageId() === languageId) {\n editor.setModelMarkers(model, languageId, markers);\n }\n };\n\n const onModelAdd = (model: editor.IModel): void => {\n if (model.getLanguageId() !== languageId) {\n return;\n }\n\n let handle: ReturnType;\n listeners.set(\n String(model.uri),\n model.onDidChangeContent(() => {\n clearTimeout(handle);\n handle = setTimeout(() => doValidate(model.uri), 500);\n }),\n );\n\n doValidate(model.uri);\n };\n\n const onModelRemoved = (model: editor.IModel): void => {\n editor.setModelMarkers(model, languageId, []);\n const uriStr = String(model.uri);\n const listener = listeners.get(uriStr);\n if (listener) {\n listener.dispose();\n listeners.delete(uriStr);\n }\n };\n\n editor.onDidCreateModel(onModelAdd);\n editor.onWillDisposeModel((model) => {\n onModelRemoved(model);\n resetSchema(model.uri);\n });\n editor.onDidChangeModelLanguage((event) => {\n onModelRemoved(event.model);\n onModelAdd(event.model);\n resetSchema(event.model.uri);\n });\n defaults.onDidChange(() => {\n for (const model of editor.getModels()) {\n if (model.getLanguageId() === languageId) {\n onModelRemoved(model);\n onModelAdd(model);\n }\n }\n });\n\n for (const model of editor.getModels()) {\n onModelAdd(model);\n }\n}\n\n// --- completion ------\n\nfunction fromPosition(position: Position): ls.Position {\n if (!position) {\n return;\n }\n return { character: position.column - 1, line: position.lineNumber - 1 };\n}\n\nfunction toRange(range: ls.Range): Range {\n if (!range) {\n return;\n }\n return new Range(\n range.start.line + 1,\n range.start.character + 1,\n range.end.line + 1,\n range.end.character + 1,\n );\n}\n\nfunction toCompletionItemKind(kind: ls.CompletionItemKind): languages.CompletionItemKind {\n const mItemKind = languages.CompletionItemKind;\n\n switch (kind) {\n case ls.CompletionItemKind.Text:\n return mItemKind.Text;\n case ls.CompletionItemKind.Method:\n return mItemKind.Method;\n case ls.CompletionItemKind.Function:\n return mItemKind.Function;\n case ls.CompletionItemKind.Constructor:\n return mItemKind.Constructor;\n case ls.CompletionItemKind.Field:\n return mItemKind.Field;\n case ls.CompletionItemKind.Variable:\n return mItemKind.Variable;\n case ls.CompletionItemKind.Class:\n return mItemKind.Class;\n case ls.CompletionItemKind.Interface:\n return mItemKind.Interface;\n case ls.CompletionItemKind.Module:\n return mItemKind.Module;\n case ls.CompletionItemKind.Property:\n return mItemKind.Property;\n case ls.CompletionItemKind.Unit:\n return mItemKind.Unit;\n case ls.CompletionItemKind.Value:\n return mItemKind.Value;\n case ls.CompletionItemKind.Enum:\n return mItemKind.Enum;\n case ls.CompletionItemKind.Keyword:\n return mItemKind.Keyword;\n case ls.CompletionItemKind.Snippet:\n return mItemKind.Snippet;\n case ls.CompletionItemKind.Color:\n return mItemKind.Color;\n case ls.CompletionItemKind.File:\n return mItemKind.File;\n case ls.CompletionItemKind.Reference:\n return mItemKind.Reference;\n default:\n return mItemKind.Property;\n }\n}\n\nfunction toTextEdit(textEdit: ls.TextEdit): editor.ISingleEditOperation {\n if (!textEdit) {\n return;\n }\n return {\n range: toRange(textEdit.range),\n text: textEdit.newText,\n };\n}\n\nexport function createCompletionItemProvider(\n getWorker: WorkerAccessor,\n): languages.CompletionItemProvider {\n return {\n triggerCharacters: [' ', ':'],\n\n async provideCompletionItems(model, position) {\n const resource = model.uri;\n\n const worker = await getWorker(resource);\n const info = await worker.doComplete(String(resource), fromPosition(position));\n if (!info) {\n return;\n }\n\n const wordInfo = model.getWordUntilPosition(position);\n const wordRange = new Range(\n position.lineNumber,\n wordInfo.startColumn,\n position.lineNumber,\n wordInfo.endColumn,\n );\n\n const items = info.items.map((entry) => {\n const item: languages.CompletionItem = {\n label: entry.label,\n insertText: entry.insertText || entry.label,\n sortText: entry.sortText,\n filterText: entry.filterText,\n documentation: entry.documentation,\n detail: entry.detail,\n kind: toCompletionItemKind(entry.kind),\n range: wordRange,\n };\n if (entry.textEdit) {\n item.range = toRange(\n 'range' in entry.textEdit ? entry.textEdit.range : entry.textEdit.replace,\n );\n item.insertText = entry.textEdit.newText;\n }\n if (entry.additionalTextEdits) {\n item.additionalTextEdits = entry.additionalTextEdits.map(toTextEdit);\n }\n if (entry.insertTextFormat === ls.InsertTextFormat.Snippet) {\n item.insertTextRules = languages.CompletionItemInsertTextRule.InsertAsSnippet;\n }\n return item;\n });\n\n return {\n incomplete: info.isIncomplete,\n suggestions: items,\n };\n },\n };\n}\n\n// --- definition ------\n\nexport function createDefinitionProvider(getWorker: WorkerAccessor): languages.DefinitionProvider {\n return {\n async provideDefinition(model, position) {\n const resource = model.uri;\n\n const worker = await getWorker(resource);\n const definitions = await worker.doDefinition(String(resource), fromPosition(position));\n\n return definitions?.map((definition) => ({\n originSelectionRange: definition.originSelectionRange,\n range: toRange(definition.targetRange),\n targetSelectionRange: definition.targetSelectionRange,\n uri: Uri.parse(definition.targetUri),\n }));\n },\n };\n}\n\n// --- hover ------\n\nexport function createHoverProvider(getWorker: WorkerAccessor): languages.HoverProvider {\n return {\n async provideHover(model, position) {\n const resource = model.uri;\n\n const worker = await getWorker(resource);\n const info = await worker.doHover(String(resource), fromPosition(position));\n if (!info) {\n return;\n }\n return {\n range: toRange(info.range),\n contents: [{ value: (info.contents as ls.MarkupContent).value }],\n };\n },\n };\n}\n\n// --- document symbols ------\n\nfunction toSymbolKind(kind: ls.SymbolKind): languages.SymbolKind {\n const mKind = languages.SymbolKind;\n\n switch (kind) {\n case ls.SymbolKind.File:\n return mKind.Array;\n case ls.SymbolKind.Module:\n return mKind.Module;\n case ls.SymbolKind.Namespace:\n return mKind.Namespace;\n case ls.SymbolKind.Package:\n return mKind.Package;\n case ls.SymbolKind.Class:\n return mKind.Class;\n case ls.SymbolKind.Method:\n return mKind.Method;\n case ls.SymbolKind.Property:\n return mKind.Property;\n case ls.SymbolKind.Field:\n return mKind.Field;\n case ls.SymbolKind.Constructor:\n return mKind.Constructor;\n case ls.SymbolKind.Enum:\n return mKind.Enum;\n case ls.SymbolKind.Interface:\n return mKind.Interface;\n case ls.SymbolKind.Function:\n return mKind.Function;\n case ls.SymbolKind.Variable:\n return mKind.Variable;\n case ls.SymbolKind.Constant:\n return mKind.Constant;\n case ls.SymbolKind.String:\n return mKind.String;\n case ls.SymbolKind.Number:\n return mKind.Number;\n case ls.SymbolKind.Boolean:\n return mKind.Boolean;\n case ls.SymbolKind.Array:\n return mKind.Array;\n default:\n return mKind.Function;\n }\n}\n\nfunction toDocumentSymbol(item: ls.DocumentSymbol): languages.DocumentSymbol {\n return {\n detail: item.detail || '',\n range: toRange(item.range),\n name: item.name,\n kind: toSymbolKind(item.kind),\n selectionRange: toRange(item.selectionRange),\n children: item.children.map(toDocumentSymbol),\n tags: [],\n };\n}\n\nexport function createDocumentSymbolProvider(\n getWorker: WorkerAccessor,\n): languages.DocumentSymbolProvider {\n return {\n async provideDocumentSymbols(model) {\n const resource = model.uri;\n\n const worker = await getWorker(resource);\n const items = await worker.findDocumentSymbols(String(resource));\n if (!items) {\n return;\n }\n return items.map(toDocumentSymbol);\n },\n };\n}\n\nfunction fromFormattingOptions(\n options: languages.FormattingOptions,\n): CustomFormatterOptions & ls.FormattingOptions {\n return {\n tabSize: options.tabSize,\n insertSpaces: options.insertSpaces,\n ...options,\n };\n}\n\nexport function createDocumentFormattingEditProvider(\n getWorker: WorkerAccessor,\n): languages.DocumentFormattingEditProvider {\n return {\n async provideDocumentFormattingEdits(model, options) {\n const resource = model.uri;\n\n const worker = await getWorker(resource);\n const edits = await worker.format(String(resource), fromFormattingOptions(options));\n if (!edits || edits.length === 0) {\n return;\n }\n return edits.map(toTextEdit);\n },\n };\n}\n\nfunction toLink(link: ls.DocumentLink): languages.ILink {\n return {\n range: toRange(link.range),\n tooltip: link.tooltip,\n url: link.target,\n };\n}\n\nexport function createLinkProvider(getWorker: WorkerAccessor): languages.LinkProvider {\n return {\n async provideLinks(model) {\n const resource = model.uri;\n\n const worker = await getWorker(resource);\n const links = await worker.findLinks(String(resource));\n\n return {\n links: links.map(toLink),\n };\n },\n };\n}\n", "import { editor, languages } from 'monaco-editor/esm/vs/editor/editor.api.js';\n\nimport { WorkerAccessor } from './languageFeatures';\nimport { YAMLWorker } from './yamlWorker';\n\n// 2min\nconst STOP_WHEN_IDLE_FOR = 2 * 60 * 1000;\n\nexport function createWorkerManager(\n defaults: languages.yaml.LanguageServiceDefaults,\n): WorkerAccessor {\n let worker: editor.MonacoWebWorker;\n let client: Promise;\n let lastUsedTime = 0;\n\n const stopWorker = (): void => {\n if (worker) {\n worker.dispose();\n worker = undefined;\n }\n client = undefined;\n };\n\n setInterval(() => {\n if (!worker) {\n return;\n }\n const timePassedSinceLastUsed = Date.now() - lastUsedTime;\n if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) {\n stopWorker();\n }\n }, 30 * 1000);\n\n // This is necessary to have updated language options take effect (e.g. schema changes)\n defaults.onDidChange(() => stopWorker());\n\n const getClient = (): Promise => {\n lastUsedTime = Date.now();\n\n if (!client) {\n worker = editor.createWebWorker({\n // Module that exports the create() method and returns a `YAMLWorker` instance\n moduleId: 'vs/language/yaml/yamlWorker',\n\n label: defaults.languageId,\n\n // Passed in to the create() method\n createData: {\n languageSettings: defaults.diagnosticsOptions,\n enableSchemaRequest: defaults.diagnosticsOptions.enableSchemaRequest,\n isKubernetes: defaults.diagnosticsOptions.isKubernetes,\n customTags: defaults.diagnosticsOptions.customTags,\n },\n });\n\n client = worker.getProxy();\n }\n\n return client;\n };\n\n return async (...resources) => {\n const client = await getClient();\n await worker.withSyncedResources(resources);\n return client;\n };\n}\n"], - "mappings": "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", - "names": [] -} diff --git a/experimental/live-editor/src/monaco-yaml/yaml.worker.js b/experimental/live-editor/src/monaco-yaml/yaml.worker.js deleted file mode 100644 index f907209d3..000000000 --- a/experimental/live-editor/src/monaco-yaml/yaml.worker.js +++ /dev/null @@ -1,8775 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// src/yaml.worker.ts -import { initialize } from "monaco-editor/esm/vs/editor/editor.worker.js"; - -// src/yamlWorker.ts -import { TextDocument as TextDocument2 } from "vscode-languageserver-textdocument"; - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonSchemaService.js -import { - parse -} from "jsonc-parser"; - -// node_modules/vscode-uri/lib/esm/index.js -var LIB; -LIB = (() => { - "use strict"; - var t = { 470: (t2) => { - function e2(t3) { - if (typeof t3 != "string") - throw new TypeError("Path must be a string. Received " + JSON.stringify(t3)); - } - function r2(t3, e3) { - for (var r3, n2 = "", o = 0, i = -1, a2 = 0, h = 0; h <= t3.length; ++h) { - if (h < t3.length) - r3 = t3.charCodeAt(h); - else { - if (r3 === 47) - break; - r3 = 47; - } - if (r3 === 47) { - if (i === h - 1 || a2 === 1) - ; - else if (i !== h - 1 && a2 === 2) { - if (n2.length < 2 || o !== 2 || n2.charCodeAt(n2.length - 1) !== 46 || n2.charCodeAt(n2.length - 2) !== 46) { - if (n2.length > 2) { - var s = n2.lastIndexOf("/"); - if (s !== n2.length - 1) { - s === -1 ? (n2 = "", o = 0) : o = (n2 = n2.slice(0, s)).length - 1 - n2.lastIndexOf("/"), i = h, a2 = 0; - continue; - } - } else if (n2.length === 2 || n2.length === 1) { - n2 = "", o = 0, i = h, a2 = 0; - continue; - } - } - e3 && (n2.length > 0 ? n2 += "/.." : n2 = "..", o = 2); - } else - n2.length > 0 ? n2 += "/" + t3.slice(i + 1, h) : n2 = t3.slice(i + 1, h), o = h - i - 1; - i = h, a2 = 0; - } else - r3 === 46 && a2 !== -1 ? ++a2 : a2 = -1; - } - return n2; - } - var n = { resolve: function() { - for (var t3, n2 = "", o = false, i = arguments.length - 1; i >= -1 && !o; i--) { - var a2; - i >= 0 ? a2 = arguments[i] : (t3 === void 0 && (t3 = process.cwd()), a2 = t3), e2(a2), a2.length !== 0 && (n2 = a2 + "/" + n2, o = a2.charCodeAt(0) === 47); - } - return n2 = r2(n2, !o), o ? n2.length > 0 ? "/" + n2 : "/" : n2.length > 0 ? n2 : "."; - }, normalize: function(t3) { - if (e2(t3), t3.length === 0) - return "."; - var n2 = t3.charCodeAt(0) === 47, o = t3.charCodeAt(t3.length - 1) === 47; - return (t3 = r2(t3, !n2)).length !== 0 || n2 || (t3 = "."), t3.length > 0 && o && (t3 += "/"), n2 ? "/" + t3 : t3; - }, isAbsolute: function(t3) { - return e2(t3), t3.length > 0 && t3.charCodeAt(0) === 47; - }, join: function() { - if (arguments.length === 0) - return "."; - for (var t3, r3 = 0; r3 < arguments.length; ++r3) { - var o = arguments[r3]; - e2(o), o.length > 0 && (t3 === void 0 ? t3 = o : t3 += "/" + o); - } - return t3 === void 0 ? "." : n.normalize(t3); - }, relative: function(t3, r3) { - if (e2(t3), e2(r3), t3 === r3) - return ""; - if ((t3 = n.resolve(t3)) === (r3 = n.resolve(r3))) - return ""; - for (var o = 1; o < t3.length && t3.charCodeAt(o) === 47; ++o) - ; - for (var i = t3.length, a2 = i - o, h = 1; h < r3.length && r3.charCodeAt(h) === 47; ++h) - ; - for (var s = r3.length - h, f2 = a2 < s ? a2 : s, u = -1, c = 0; c <= f2; ++c) { - if (c === f2) { - if (s > f2) { - if (r3.charCodeAt(h + c) === 47) - return r3.slice(h + c + 1); - if (c === 0) - return r3.slice(h + c); - } else - a2 > f2 && (t3.charCodeAt(o + c) === 47 ? u = c : c === 0 && (u = 0)); - break; - } - var l = t3.charCodeAt(o + c); - if (l !== r3.charCodeAt(h + c)) - break; - l === 47 && (u = c); - } - var p = ""; - for (c = o + u + 1; c <= i; ++c) - c !== i && t3.charCodeAt(c) !== 47 || (p.length === 0 ? p += ".." : p += "/.."); - return p.length > 0 ? p + r3.slice(h + u) : (h += u, r3.charCodeAt(h) === 47 && ++h, r3.slice(h)); - }, _makeLong: function(t3) { - return t3; - }, dirname: function(t3) { - if (e2(t3), t3.length === 0) - return "."; - for (var r3 = t3.charCodeAt(0), n2 = r3 === 47, o = -1, i = true, a2 = t3.length - 1; a2 >= 1; --a2) - if ((r3 = t3.charCodeAt(a2)) === 47) { - if (!i) { - o = a2; - break; - } - } else - i = false; - return o === -1 ? n2 ? "/" : "." : n2 && o === 1 ? "//" : t3.slice(0, o); - }, basename: function(t3, r3) { - if (r3 !== void 0 && typeof r3 != "string") - throw new TypeError('"ext" argument must be a string'); - e2(t3); - var n2, o = 0, i = -1, a2 = true; - if (r3 !== void 0 && r3.length > 0 && r3.length <= t3.length) { - if (r3.length === t3.length && r3 === t3) - return ""; - var h = r3.length - 1, s = -1; - for (n2 = t3.length - 1; n2 >= 0; --n2) { - var f2 = t3.charCodeAt(n2); - if (f2 === 47) { - if (!a2) { - o = n2 + 1; - break; - } - } else - s === -1 && (a2 = false, s = n2 + 1), h >= 0 && (f2 === r3.charCodeAt(h) ? --h == -1 && (i = n2) : (h = -1, i = s)); - } - return o === i ? i = s : i === -1 && (i = t3.length), t3.slice(o, i); - } - for (n2 = t3.length - 1; n2 >= 0; --n2) - if (t3.charCodeAt(n2) === 47) { - if (!a2) { - o = n2 + 1; - break; - } - } else - i === -1 && (a2 = false, i = n2 + 1); - return i === -1 ? "" : t3.slice(o, i); - }, extname: function(t3) { - e2(t3); - for (var r3 = -1, n2 = 0, o = -1, i = true, a2 = 0, h = t3.length - 1; h >= 0; --h) { - var s = t3.charCodeAt(h); - if (s !== 47) - o === -1 && (i = false, o = h + 1), s === 46 ? r3 === -1 ? r3 = h : a2 !== 1 && (a2 = 1) : r3 !== -1 && (a2 = -1); - else if (!i) { - n2 = h + 1; - break; - } - } - return r3 === -1 || o === -1 || a2 === 0 || a2 === 1 && r3 === o - 1 && r3 === n2 + 1 ? "" : t3.slice(r3, o); - }, format: function(t3) { - if (t3 === null || typeof t3 != "object") - throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof t3); - return function(t4, e3) { - var r3 = e3.dir || e3.root, n2 = e3.base || (e3.name || "") + (e3.ext || ""); - return r3 ? r3 === e3.root ? r3 + n2 : r3 + "/" + n2 : n2; - }(0, t3); - }, parse: function(t3) { - e2(t3); - var r3 = { root: "", dir: "", base: "", ext: "", name: "" }; - if (t3.length === 0) - return r3; - var n2, o = t3.charCodeAt(0), i = o === 47; - i ? (r3.root = "/", n2 = 1) : n2 = 0; - for (var a2 = -1, h = 0, s = -1, f2 = true, u = t3.length - 1, c = 0; u >= n2; --u) - if ((o = t3.charCodeAt(u)) !== 47) - s === -1 && (f2 = false, s = u + 1), o === 46 ? a2 === -1 ? a2 = u : c !== 1 && (c = 1) : a2 !== -1 && (c = -1); - else if (!f2) { - h = u + 1; - break; - } - return a2 === -1 || s === -1 || c === 0 || c === 1 && a2 === s - 1 && a2 === h + 1 ? s !== -1 && (r3.base = r3.name = h === 0 && i ? t3.slice(1, s) : t3.slice(h, s)) : (h === 0 && i ? (r3.name = t3.slice(1, a2), r3.base = t3.slice(1, s)) : (r3.name = t3.slice(h, a2), r3.base = t3.slice(h, s)), r3.ext = t3.slice(a2, s)), h > 0 ? r3.dir = t3.slice(0, h - 1) : i && (r3.dir = "/"), r3; - }, sep: "/", delimiter: ":", win32: null, posix: null }; - n.posix = n, t2.exports = n; - }, 447: (t2, e2, r2) => { - var n; - if (r2.r(e2), r2.d(e2, { URI: () => g, Utils: () => O }), typeof process == "object") - n = process.platform === "win32"; - else if (typeof navigator == "object") { - var o = navigator.userAgent; - n = o.indexOf("Windows") >= 0; - } - var i, a2, h = (i = function(t3, e3) { - return (i = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(t4, e4) { - t4.__proto__ = e4; - } || function(t4, e4) { - for (var r3 in e4) - Object.prototype.hasOwnProperty.call(e4, r3) && (t4[r3] = e4[r3]); - })(t3, e3); - }, function(t3, e3) { - function r3() { - this.constructor = t3; - } - i(t3, e3), t3.prototype = e3 === null ? Object.create(e3) : (r3.prototype = e3.prototype, new r3()); - }), s = /^\w[\w\d+.-]*$/, f2 = /^\//, u = /^\/\//, c = "", l = "/", p = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/, g = function() { - function t3(t4, e3, r3, n2, o2, i2) { - i2 === void 0 && (i2 = false), typeof t4 == "object" ? (this.scheme = t4.scheme || c, this.authority = t4.authority || c, this.path = t4.path || c, this.query = t4.query || c, this.fragment = t4.fragment || c) : (this.scheme = function(t5, e4) { - return t5 || e4 ? t5 : "file"; - }(t4, i2), this.authority = e3 || c, this.path = function(t5, e4) { - switch (t5) { - case "https": - case "http": - case "file": - e4 ? e4[0] !== l && (e4 = l + e4) : e4 = l; - } - return e4; - }(this.scheme, r3 || c), this.query = n2 || c, this.fragment = o2 || c, function(t5, e4) { - if (!t5.scheme && e4) - throw new Error('[UriError]: Scheme is missing: {scheme: "", authority: "' + t5.authority + '", path: "' + t5.path + '", query: "' + t5.query + '", fragment: "' + t5.fragment + '"}'); - if (t5.scheme && !s.test(t5.scheme)) - throw new Error("[UriError]: Scheme contains illegal characters."); - if (t5.path) { - if (t5.authority) { - if (!f2.test(t5.path)) - throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character'); - } else if (u.test(t5.path)) - throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")'); - } - }(this, i2)); - } - return t3.isUri = function(e3) { - return e3 instanceof t3 || !!e3 && typeof e3.authority == "string" && typeof e3.fragment == "string" && typeof e3.path == "string" && typeof e3.query == "string" && typeof e3.scheme == "string" && typeof e3.fsPath == "function" && typeof e3.with == "function" && typeof e3.toString == "function"; - }, Object.defineProperty(t3.prototype, "fsPath", { get: function() { - return C(this, false); - }, enumerable: false, configurable: true }), t3.prototype.with = function(t4) { - if (!t4) - return this; - var e3 = t4.scheme, r3 = t4.authority, n2 = t4.path, o2 = t4.query, i2 = t4.fragment; - return e3 === void 0 ? e3 = this.scheme : e3 === null && (e3 = c), r3 === void 0 ? r3 = this.authority : r3 === null && (r3 = c), n2 === void 0 ? n2 = this.path : n2 === null && (n2 = c), o2 === void 0 ? o2 = this.query : o2 === null && (o2 = c), i2 === void 0 ? i2 = this.fragment : i2 === null && (i2 = c), e3 === this.scheme && r3 === this.authority && n2 === this.path && o2 === this.query && i2 === this.fragment ? this : new v(e3, r3, n2, o2, i2); - }, t3.parse = function(t4, e3) { - e3 === void 0 && (e3 = false); - var r3 = p.exec(t4); - return r3 ? new v(r3[2] || c, x(r3[4] || c), x(r3[5] || c), x(r3[7] || c), x(r3[9] || c), e3) : new v(c, c, c, c, c); - }, t3.file = function(t4) { - var e3 = c; - if (n && (t4 = t4.replace(/\\/g, l)), t4[0] === l && t4[1] === l) { - var r3 = t4.indexOf(l, 2); - r3 === -1 ? (e3 = t4.substring(2), t4 = l) : (e3 = t4.substring(2, r3), t4 = t4.substring(r3) || l); - } - return new v("file", e3, t4, c, c); - }, t3.from = function(t4) { - return new v(t4.scheme, t4.authority, t4.path, t4.query, t4.fragment); - }, t3.prototype.toString = function(t4) { - return t4 === void 0 && (t4 = false), A2(this, t4); - }, t3.prototype.toJSON = function() { - return this; - }, t3.revive = function(e3) { - if (e3) { - if (e3 instanceof t3) - return e3; - var r3 = new v(e3); - return r3._formatted = e3.external, r3._fsPath = e3._sep === d ? e3.fsPath : null, r3; - } - return e3; - }, t3; - }(), d = n ? 1 : void 0, v = function(t3) { - function e3() { - var e4 = t3 !== null && t3.apply(this, arguments) || this; - return e4._formatted = null, e4._fsPath = null, e4; - } - return h(e3, t3), Object.defineProperty(e3.prototype, "fsPath", { get: function() { - return this._fsPath || (this._fsPath = C(this, false)), this._fsPath; - }, enumerable: false, configurable: true }), e3.prototype.toString = function(t4) { - return t4 === void 0 && (t4 = false), t4 ? A2(this, true) : (this._formatted || (this._formatted = A2(this, false)), this._formatted); - }, e3.prototype.toJSON = function() { - var t4 = { $mid: 1 }; - return this._fsPath && (t4.fsPath = this._fsPath, t4._sep = d), this._formatted && (t4.external = this._formatted), this.path && (t4.path = this.path), this.scheme && (t4.scheme = this.scheme), this.authority && (t4.authority = this.authority), this.query && (t4.query = this.query), this.fragment && (t4.fragment = this.fragment), t4; - }, e3; - }(g), m = ((a2 = {})[58] = "%3A", a2[47] = "%2F", a2[63] = "%3F", a2[35] = "%23", a2[91] = "%5B", a2[93] = "%5D", a2[64] = "%40", a2[33] = "%21", a2[36] = "%24", a2[38] = "%26", a2[39] = "%27", a2[40] = "%28", a2[41] = "%29", a2[42] = "%2A", a2[43] = "%2B", a2[44] = "%2C", a2[59] = "%3B", a2[61] = "%3D", a2[32] = "%20", a2); - function y(t3, e3) { - for (var r3 = void 0, n2 = -1, o2 = 0; o2 < t3.length; o2++) { - var i2 = t3.charCodeAt(o2); - if (i2 >= 97 && i2 <= 122 || i2 >= 65 && i2 <= 90 || i2 >= 48 && i2 <= 57 || i2 === 45 || i2 === 46 || i2 === 95 || i2 === 126 || e3 && i2 === 47) - n2 !== -1 && (r3 += encodeURIComponent(t3.substring(n2, o2)), n2 = -1), r3 !== void 0 && (r3 += t3.charAt(o2)); - else { - r3 === void 0 && (r3 = t3.substr(0, o2)); - var a3 = m[i2]; - a3 !== void 0 ? (n2 !== -1 && (r3 += encodeURIComponent(t3.substring(n2, o2)), n2 = -1), r3 += a3) : n2 === -1 && (n2 = o2); - } - } - return n2 !== -1 && (r3 += encodeURIComponent(t3.substring(n2))), r3 !== void 0 ? r3 : t3; - } - function b(t3) { - for (var e3 = void 0, r3 = 0; r3 < t3.length; r3++) { - var n2 = t3.charCodeAt(r3); - n2 === 35 || n2 === 63 ? (e3 === void 0 && (e3 = t3.substr(0, r3)), e3 += m[n2]) : e3 !== void 0 && (e3 += t3[r3]); - } - return e3 !== void 0 ? e3 : t3; - } - function C(t3, e3) { - var r3; - return r3 = t3.authority && t3.path.length > 1 && t3.scheme === "file" ? "//" + t3.authority + t3.path : t3.path.charCodeAt(0) === 47 && (t3.path.charCodeAt(1) >= 65 && t3.path.charCodeAt(1) <= 90 || t3.path.charCodeAt(1) >= 97 && t3.path.charCodeAt(1) <= 122) && t3.path.charCodeAt(2) === 58 ? e3 ? t3.path.substr(1) : t3.path[1].toLowerCase() + t3.path.substr(2) : t3.path, n && (r3 = r3.replace(/\//g, "\\")), r3; - } - function A2(t3, e3) { - var r3 = e3 ? b : y, n2 = "", o2 = t3.scheme, i2 = t3.authority, a3 = t3.path, h2 = t3.query, s2 = t3.fragment; - if (o2 && (n2 += o2, n2 += ":"), (i2 || o2 === "file") && (n2 += l, n2 += l), i2) { - var f3 = i2.indexOf("@"); - if (f3 !== -1) { - var u2 = i2.substr(0, f3); - i2 = i2.substr(f3 + 1), (f3 = u2.indexOf(":")) === -1 ? n2 += r3(u2, false) : (n2 += r3(u2.substr(0, f3), false), n2 += ":", n2 += r3(u2.substr(f3 + 1), false)), n2 += "@"; - } - (f3 = (i2 = i2.toLowerCase()).indexOf(":")) === -1 ? n2 += r3(i2, false) : (n2 += r3(i2.substr(0, f3), false), n2 += i2.substr(f3)); - } - if (a3) { - if (a3.length >= 3 && a3.charCodeAt(0) === 47 && a3.charCodeAt(2) === 58) - (c2 = a3.charCodeAt(1)) >= 65 && c2 <= 90 && (a3 = "/" + String.fromCharCode(c2 + 32) + ":" + a3.substr(3)); - else if (a3.length >= 2 && a3.charCodeAt(1) === 58) { - var c2; - (c2 = a3.charCodeAt(0)) >= 65 && c2 <= 90 && (a3 = String.fromCharCode(c2 + 32) + ":" + a3.substr(2)); - } - n2 += r3(a3, true); - } - return h2 && (n2 += "?", n2 += r3(h2, false)), s2 && (n2 += "#", n2 += e3 ? s2 : y(s2, false)), n2; - } - function w(t3) { - try { - return decodeURIComponent(t3); - } catch (e3) { - return t3.length > 3 ? t3.substr(0, 3) + w(t3.substr(3)) : t3; - } - } - var _ = /(%[0-9A-Za-z][0-9A-Za-z])+/g; - function x(t3) { - return t3.match(_) ? t3.replace(_, function(t4) { - return w(t4); - }) : t3; - } - var O, P = r2(470), j = function() { - for (var t3 = 0, e3 = 0, r3 = arguments.length; e3 < r3; e3++) - t3 += arguments[e3].length; - var n2 = Array(t3), o2 = 0; - for (e3 = 0; e3 < r3; e3++) - for (var i2 = arguments[e3], a3 = 0, h2 = i2.length; a3 < h2; a3++, o2++) - n2[o2] = i2[a3]; - return n2; - }, U = P.posix || P; - !function(t3) { - t3.joinPath = function(t4) { - for (var e3 = [], r3 = 1; r3 < arguments.length; r3++) - e3[r3 - 1] = arguments[r3]; - return t4.with({ path: U.join.apply(U, j([t4.path], e3)) }); - }, t3.resolvePath = function(t4) { - for (var e3 = [], r3 = 1; r3 < arguments.length; r3++) - e3[r3 - 1] = arguments[r3]; - var n2 = t4.path || "/"; - return t4.with({ path: U.resolve.apply(U, j([n2], e3)) }); - }, t3.dirname = function(t4) { - var e3 = U.dirname(t4.path); - return e3.length === 1 && e3.charCodeAt(0) === 46 ? t4 : t4.with({ path: e3 }); - }, t3.basename = function(t4) { - return U.basename(t4.path); - }, t3.extname = function(t4) { - return U.extname(t4.path); - }; - }(O || (O = {})); - } }, e = {}; - function r(n) { - if (e[n]) - return e[n].exports; - var o = e[n] = { exports: {} }; - return t[n](o, o.exports, r), o.exports; - } - return r.d = (t2, e2) => { - for (var n in e2) - r.o(e2, n) && !r.o(t2, n) && Object.defineProperty(t2, n, { enumerable: true, get: e2[n] }); - }, r.o = (t2, e2) => Object.prototype.hasOwnProperty.call(t2, e2), r.r = (t2) => { - typeof Symbol != "undefined" && Symbol.toStringTag && Object.defineProperty(t2, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(t2, "__esModule", { value: true }); - }, r(447); -})(); -var { URI, Utils } = LIB; - -// node_modules/vscode-json-languageservice/lib/esm/utils/strings.js -function startsWith(haystack, needle) { - if (haystack.length < needle.length) { - return false; - } - for (var i = 0; i < needle.length; i++) { - if (haystack[i] !== needle[i]) { - return false; - } - } - return true; -} -function endsWith(haystack, needle) { - var diff = haystack.length - needle.length; - if (diff > 0) { - return haystack.lastIndexOf(needle) === diff; - } else if (diff === 0) { - return haystack === needle; - } else { - return false; - } -} -function extendedRegExp(pattern) { - var flags = ""; - if (startsWith(pattern, "(?i)")) { - pattern = pattern.substring(4); - flags = "i"; - } - try { - return new RegExp(pattern, flags + "u"); - } catch (e) { - try { - return new RegExp(pattern, flags); - } catch (e2) { - return void 0; - } - } -} - -// node_modules/vscode-json-languageservice/lib/esm/parser/jsonParser.js -import { - createScanner, - findNodeAtOffset, - getNodePath, - getNodeValue -} from "jsonc-parser"; - -// node_modules/vscode-json-languageservice/lib/esm/utils/objects.js -function equals(one, other) { - if (one === other) { - return true; - } - if (one === null || one === void 0 || other === null || other === void 0) { - return false; - } - if (typeof one !== typeof other) { - return false; - } - if (typeof one !== "object") { - return false; - } - if (Array.isArray(one) !== Array.isArray(other)) { - return false; - } - var i, key; - if (Array.isArray(one)) { - if (one.length !== other.length) { - return false; - } - for (i = 0; i < one.length; i++) { - if (!equals(one[i], other[i])) { - return false; - } - } - } else { - var oneKeys = []; - for (key in one) { - oneKeys.push(key); - } - oneKeys.sort(); - var otherKeys = []; - for (key in other) { - otherKeys.push(key); - } - otherKeys.sort(); - if (!equals(oneKeys, otherKeys)) { - return false; - } - for (i = 0; i < oneKeys.length; i++) { - if (!equals(one[oneKeys[i]], other[oneKeys[i]])) { - return false; - } - } - } - return true; -} -function isNumber(val) { - return typeof val === "number"; -} -function isDefined(val) { - return typeof val !== "undefined"; -} -function isBoolean(val) { - return typeof val === "boolean"; -} -function isString(val) { - return typeof val === "string"; -} - -// node_modules/vscode-json-languageservice/lib/esm/jsonLanguageTypes.js -import { Range, Position, MarkupContent, MarkupKind, Color, ColorInformation, ColorPresentation, FoldingRange, FoldingRangeKind, SelectionRange, Diagnostic, DiagnosticSeverity, CompletionItem, CompletionItemKind, CompletionList, CompletionItemTag, InsertTextFormat, SymbolInformation, SymbolKind, DocumentSymbol, Location, Hover, MarkedString, CodeActionContext, Command, CodeAction, DocumentHighlight, DocumentLink, WorkspaceEdit, TextEdit, CodeActionKind, TextDocumentEdit, VersionedTextDocumentIdentifier, DocumentHighlightKind } from "vscode-languageserver-types"; -import { TextDocument } from "vscode-languageserver-textdocument"; -var ErrorCode; -(function(ErrorCode2) { - ErrorCode2[ErrorCode2["Undefined"] = 0] = "Undefined"; - ErrorCode2[ErrorCode2["EnumValueMismatch"] = 1] = "EnumValueMismatch"; - ErrorCode2[ErrorCode2["Deprecated"] = 2] = "Deprecated"; - ErrorCode2[ErrorCode2["UnexpectedEndOfComment"] = 257] = "UnexpectedEndOfComment"; - ErrorCode2[ErrorCode2["UnexpectedEndOfString"] = 258] = "UnexpectedEndOfString"; - ErrorCode2[ErrorCode2["UnexpectedEndOfNumber"] = 259] = "UnexpectedEndOfNumber"; - ErrorCode2[ErrorCode2["InvalidUnicode"] = 260] = "InvalidUnicode"; - ErrorCode2[ErrorCode2["InvalidEscapeCharacter"] = 261] = "InvalidEscapeCharacter"; - ErrorCode2[ErrorCode2["InvalidCharacter"] = 262] = "InvalidCharacter"; - ErrorCode2[ErrorCode2["PropertyExpected"] = 513] = "PropertyExpected"; - ErrorCode2[ErrorCode2["CommaExpected"] = 514] = "CommaExpected"; - ErrorCode2[ErrorCode2["ColonExpected"] = 515] = "ColonExpected"; - ErrorCode2[ErrorCode2["ValueExpected"] = 516] = "ValueExpected"; - ErrorCode2[ErrorCode2["CommaOrCloseBacketExpected"] = 517] = "CommaOrCloseBacketExpected"; - ErrorCode2[ErrorCode2["CommaOrCloseBraceExpected"] = 518] = "CommaOrCloseBraceExpected"; - ErrorCode2[ErrorCode2["TrailingComma"] = 519] = "TrailingComma"; - ErrorCode2[ErrorCode2["DuplicateKey"] = 520] = "DuplicateKey"; - ErrorCode2[ErrorCode2["CommentNotPermitted"] = 521] = "CommentNotPermitted"; - ErrorCode2[ErrorCode2["SchemaResolveError"] = 768] = "SchemaResolveError"; -})(ErrorCode || (ErrorCode = {})); -var ClientCapabilities; -(function(ClientCapabilities2) { - ClientCapabilities2.LATEST = { - textDocument: { - completion: { - completionItem: { - documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText], - commitCharactersSupport: true - } - } - } - }; -})(ClientCapabilities || (ClientCapabilities = {})); - -// src/fillers/vscode-nls.ts -function format(message, args) { - return args.length === 0 ? message : message.replace(/{(\d+)}/g, (match, rest) => { - const [index] = rest; - return typeof args[index] === "undefined" ? match : args[index]; - }); -} -function localize(key, message, ...args) { - return format(message, args); -} -function loadMessageBundle() { - return localize; -} - -// node_modules/vscode-json-languageservice/lib/esm/parser/jsonParser.js -var __extends = function() { - var extendStatics = function(d, b) { - extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { - d2.__proto__ = b2; - } || function(d2, b2) { - for (var p in b2) - if (Object.prototype.hasOwnProperty.call(b2, p)) - d2[p] = b2[p]; - }; - return extendStatics(d, b); - }; - return function(d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; -}(); -var localize2 = loadMessageBundle(); -var formats = { - "color-hex": { errorMessage: localize2("colorHexFormatWarning", "Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA."), pattern: /^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/ }, - "date-time": { errorMessage: localize2("dateTimeFormatWarning", "String is not a RFC3339 date-time."), pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i }, - "date": { errorMessage: localize2("dateFormatWarning", "String is not a RFC3339 date."), pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i }, - "time": { errorMessage: localize2("timeFormatWarning", "String is not a RFC3339 time."), pattern: /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i }, - "email": { errorMessage: localize2("emailFormatWarning", "String is not an e-mail address."), pattern: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ } -}; -var ASTNodeImpl = function() { - function ASTNodeImpl3(parent, offset, length) { - if (length === void 0) { - length = 0; - } - this.offset = offset; - this.length = length; - this.parent = parent; - } - Object.defineProperty(ASTNodeImpl3.prototype, "children", { - get: function() { - return []; - }, - enumerable: false, - configurable: true - }); - ASTNodeImpl3.prototype.toString = function() { - return "type: " + this.type + " (" + this.offset + "/" + this.length + ")" + (this.parent ? " parent: {" + this.parent.toString() + "}" : ""); - }; - return ASTNodeImpl3; -}(); -var NullASTNodeImpl = function(_super) { - __extends(NullASTNodeImpl3, _super); - function NullASTNodeImpl3(parent, offset) { - var _this = _super.call(this, parent, offset) || this; - _this.type = "null"; - _this.value = null; - return _this; - } - return NullASTNodeImpl3; -}(ASTNodeImpl); -var BooleanASTNodeImpl = function(_super) { - __extends(BooleanASTNodeImpl3, _super); - function BooleanASTNodeImpl3(parent, boolValue, offset) { - var _this = _super.call(this, parent, offset) || this; - _this.type = "boolean"; - _this.value = boolValue; - return _this; - } - return BooleanASTNodeImpl3; -}(ASTNodeImpl); -var ArrayASTNodeImpl = function(_super) { - __extends(ArrayASTNodeImpl3, _super); - function ArrayASTNodeImpl3(parent, offset) { - var _this = _super.call(this, parent, offset) || this; - _this.type = "array"; - _this.items = []; - return _this; - } - Object.defineProperty(ArrayASTNodeImpl3.prototype, "children", { - get: function() { - return this.items; - }, - enumerable: false, - configurable: true - }); - return ArrayASTNodeImpl3; -}(ASTNodeImpl); -var NumberASTNodeImpl = function(_super) { - __extends(NumberASTNodeImpl3, _super); - function NumberASTNodeImpl3(parent, offset) { - var _this = _super.call(this, parent, offset) || this; - _this.type = "number"; - _this.isInteger = true; - _this.value = Number.NaN; - return _this; - } - return NumberASTNodeImpl3; -}(ASTNodeImpl); -var StringASTNodeImpl = function(_super) { - __extends(StringASTNodeImpl3, _super); - function StringASTNodeImpl3(parent, offset, length) { - var _this = _super.call(this, parent, offset, length) || this; - _this.type = "string"; - _this.value = ""; - return _this; - } - return StringASTNodeImpl3; -}(ASTNodeImpl); -var PropertyASTNodeImpl = function(_super) { - __extends(PropertyASTNodeImpl3, _super); - function PropertyASTNodeImpl3(parent, offset, keyNode) { - var _this = _super.call(this, parent, offset) || this; - _this.type = "property"; - _this.colonOffset = -1; - _this.keyNode = keyNode; - return _this; - } - Object.defineProperty(PropertyASTNodeImpl3.prototype, "children", { - get: function() { - return this.valueNode ? [this.keyNode, this.valueNode] : [this.keyNode]; - }, - enumerable: false, - configurable: true - }); - return PropertyASTNodeImpl3; -}(ASTNodeImpl); -var ObjectASTNodeImpl = function(_super) { - __extends(ObjectASTNodeImpl3, _super); - function ObjectASTNodeImpl3(parent, offset) { - var _this = _super.call(this, parent, offset) || this; - _this.type = "object"; - _this.properties = []; - return _this; - } - Object.defineProperty(ObjectASTNodeImpl3.prototype, "children", { - get: function() { - return this.properties; - }, - enumerable: false, - configurable: true - }); - return ObjectASTNodeImpl3; -}(ASTNodeImpl); -function asSchema(schema) { - if (isBoolean(schema)) { - return schema ? {} : { "not": {} }; - } - return schema; -} -var EnumMatch; -(function(EnumMatch3) { - EnumMatch3[EnumMatch3["Key"] = 0] = "Key"; - EnumMatch3[EnumMatch3["Enum"] = 1] = "Enum"; -})(EnumMatch || (EnumMatch = {})); -var SchemaCollector = function() { - function SchemaCollector3(focusOffset, exclude) { - if (focusOffset === void 0) { - focusOffset = -1; - } - this.focusOffset = focusOffset; - this.exclude = exclude; - this.schemas = []; - } - SchemaCollector3.prototype.add = function(schema) { - this.schemas.push(schema); - }; - SchemaCollector3.prototype.merge = function(other) { - Array.prototype.push.apply(this.schemas, other.schemas); - }; - SchemaCollector3.prototype.include = function(node) { - return (this.focusOffset === -1 || contains(node, this.focusOffset)) && node !== this.exclude; - }; - SchemaCollector3.prototype.newSub = function() { - return new SchemaCollector3(-1, this.exclude); - }; - return SchemaCollector3; -}(); -var NoOpSchemaCollector = function() { - function NoOpSchemaCollector3() { - } - Object.defineProperty(NoOpSchemaCollector3.prototype, "schemas", { - get: function() { - return []; - }, - enumerable: false, - configurable: true - }); - NoOpSchemaCollector3.prototype.add = function(schema) { - }; - NoOpSchemaCollector3.prototype.merge = function(other) { - }; - NoOpSchemaCollector3.prototype.include = function(node) { - return true; - }; - NoOpSchemaCollector3.prototype.newSub = function() { - return this; - }; - NoOpSchemaCollector3.instance = new NoOpSchemaCollector3(); - return NoOpSchemaCollector3; -}(); -var ValidationResult = function() { - function ValidationResult3() { - this.problems = []; - this.propertiesMatches = 0; - this.propertiesValueMatches = 0; - this.primaryValueMatches = 0; - this.enumValueMatch = false; - this.enumValues = void 0; - } - ValidationResult3.prototype.hasProblems = function() { - return !!this.problems.length; - }; - ValidationResult3.prototype.mergeAll = function(validationResults) { - for (var _i = 0, validationResults_1 = validationResults; _i < validationResults_1.length; _i++) { - var validationResult = validationResults_1[_i]; - this.merge(validationResult); - } - }; - ValidationResult3.prototype.merge = function(validationResult) { - this.problems = this.problems.concat(validationResult.problems); - }; - ValidationResult3.prototype.mergeEnumValues = function(validationResult) { - if (!this.enumValueMatch && !validationResult.enumValueMatch && this.enumValues && validationResult.enumValues) { - this.enumValues = this.enumValues.concat(validationResult.enumValues); - for (var _i = 0, _a = this.problems; _i < _a.length; _i++) { - var error = _a[_i]; - if (error.code === ErrorCode.EnumValueMismatch) { - error.message = localize2("enumWarning", "Value is not accepted. Valid values: {0}.", this.enumValues.map(function(v) { - return JSON.stringify(v); - }).join(", ")); - } - } - } - }; - ValidationResult3.prototype.mergePropertyMatch = function(propertyValidationResult) { - this.merge(propertyValidationResult); - this.propertiesMatches++; - if (propertyValidationResult.enumValueMatch || !propertyValidationResult.hasProblems() && propertyValidationResult.propertiesMatches) { - this.propertiesValueMatches++; - } - if (propertyValidationResult.enumValueMatch && propertyValidationResult.enumValues && propertyValidationResult.enumValues.length === 1) { - this.primaryValueMatches++; - } - }; - ValidationResult3.prototype.compare = function(other) { - var hasProblems = this.hasProblems(); - if (hasProblems !== other.hasProblems()) { - return hasProblems ? -1 : 1; - } - if (this.enumValueMatch !== other.enumValueMatch) { - return other.enumValueMatch ? -1 : 1; - } - if (this.primaryValueMatches !== other.primaryValueMatches) { - return this.primaryValueMatches - other.primaryValueMatches; - } - if (this.propertiesValueMatches !== other.propertiesValueMatches) { - return this.propertiesValueMatches - other.propertiesValueMatches; - } - return this.propertiesMatches - other.propertiesMatches; - }; - return ValidationResult3; -}(); -function getNodeValue2(node) { - return getNodeValue(node); -} -function getNodePath2(node) { - return getNodePath(node); -} -function contains(node, offset, includeRightBound) { - if (includeRightBound === void 0) { - includeRightBound = false; - } - return offset >= node.offset && offset < node.offset + node.length || includeRightBound && offset === node.offset + node.length; -} -var JSONDocument = function() { - function JSONDocument3(root, syntaxErrors, comments) { - if (syntaxErrors === void 0) { - syntaxErrors = []; - } - if (comments === void 0) { - comments = []; - } - this.root = root; - this.syntaxErrors = syntaxErrors; - this.comments = comments; - } - JSONDocument3.prototype.getNodeFromOffset = function(offset, includeRightBound) { - if (includeRightBound === void 0) { - includeRightBound = false; - } - if (this.root) { - return findNodeAtOffset(this.root, offset, includeRightBound); - } - return void 0; - }; - JSONDocument3.prototype.visit = function(visitor) { - if (this.root) { - var doVisit_1 = function(node) { - var ctn = visitor(node); - var children = node.children; - if (Array.isArray(children)) { - for (var i = 0; i < children.length && ctn; i++) { - ctn = doVisit_1(children[i]); - } - } - return ctn; - }; - doVisit_1(this.root); - } - }; - JSONDocument3.prototype.validate = function(textDocument, schema, severity) { - if (severity === void 0) { - severity = DiagnosticSeverity.Warning; - } - if (this.root && schema) { - var validationResult = new ValidationResult(); - validate(this.root, schema, validationResult, NoOpSchemaCollector.instance); - return validationResult.problems.map(function(p) { - var _a; - var range = Range.create(textDocument.positionAt(p.location.offset), textDocument.positionAt(p.location.offset + p.location.length)); - return Diagnostic.create(range, p.message, (_a = p.severity) !== null && _a !== void 0 ? _a : severity, p.code); - }); - } - return void 0; - }; - JSONDocument3.prototype.getMatchingSchemas = function(schema, focusOffset, exclude) { - if (focusOffset === void 0) { - focusOffset = -1; - } - var matchingSchemas = new SchemaCollector(focusOffset, exclude); - if (this.root && schema) { - validate(this.root, schema, new ValidationResult(), matchingSchemas); - } - return matchingSchemas.schemas; - }; - return JSONDocument3; -}(); -function validate(n, schema, validationResult, matchingSchemas) { - if (!n || !matchingSchemas.include(n)) { - return; - } - var node = n; - switch (node.type) { - case "object": - _validateObjectNode(node, schema, validationResult, matchingSchemas); - break; - case "array": - _validateArrayNode(node, schema, validationResult, matchingSchemas); - break; - case "string": - _validateStringNode(node, schema, validationResult, matchingSchemas); - break; - case "number": - _validateNumberNode(node, schema, validationResult, matchingSchemas); - break; - case "property": - return validate(node.valueNode, schema, validationResult, matchingSchemas); - } - _validateNode(); - matchingSchemas.add({ node, schema }); - function _validateNode() { - function matchesType(type) { - return node.type === type || type === "integer" && node.type === "number" && node.isInteger; - } - if (Array.isArray(schema.type)) { - if (!schema.type.some(matchesType)) { - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - message: schema.errorMessage || localize2("typeArrayMismatchWarning", "Incorrect type. Expected one of {0}.", schema.type.join(", ")) - }); - } - } else if (schema.type) { - if (!matchesType(schema.type)) { - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - message: schema.errorMessage || localize2("typeMismatchWarning", 'Incorrect type. Expected "{0}".', schema.type) - }); - } - } - if (Array.isArray(schema.allOf)) { - for (var _i = 0, _a = schema.allOf; _i < _a.length; _i++) { - var subSchemaRef = _a[_i]; - validate(node, asSchema(subSchemaRef), validationResult, matchingSchemas); - } - } - var notSchema = asSchema(schema.not); - if (notSchema) { - var subValidationResult = new ValidationResult(); - var subMatchingSchemas = matchingSchemas.newSub(); - validate(node, notSchema, subValidationResult, subMatchingSchemas); - if (!subValidationResult.hasProblems()) { - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - message: localize2("notSchemaWarning", "Matches a schema that is not allowed.") - }); - } - for (var _b = 0, _c = subMatchingSchemas.schemas; _b < _c.length; _b++) { - var ms = _c[_b]; - ms.inverted = !ms.inverted; - matchingSchemas.add(ms); - } - } - var testAlternatives = function(alternatives, maxOneMatch) { - var matches = []; - var bestMatch = void 0; - for (var _i2 = 0, alternatives_1 = alternatives; _i2 < alternatives_1.length; _i2++) { - var subSchemaRef2 = alternatives_1[_i2]; - var subSchema = asSchema(subSchemaRef2); - var subValidationResult2 = new ValidationResult(); - var subMatchingSchemas2 = matchingSchemas.newSub(); - validate(node, subSchema, subValidationResult2, subMatchingSchemas2); - if (!subValidationResult2.hasProblems()) { - matches.push(subSchema); - } - if (!bestMatch) { - bestMatch = { schema: subSchema, validationResult: subValidationResult2, matchingSchemas: subMatchingSchemas2 }; - } else { - if (!maxOneMatch && !subValidationResult2.hasProblems() && !bestMatch.validationResult.hasProblems()) { - bestMatch.matchingSchemas.merge(subMatchingSchemas2); - bestMatch.validationResult.propertiesMatches += subValidationResult2.propertiesMatches; - bestMatch.validationResult.propertiesValueMatches += subValidationResult2.propertiesValueMatches; - } else { - var compareResult = subValidationResult2.compare(bestMatch.validationResult); - if (compareResult > 0) { - bestMatch = { schema: subSchema, validationResult: subValidationResult2, matchingSchemas: subMatchingSchemas2 }; - } else if (compareResult === 0) { - bestMatch.matchingSchemas.merge(subMatchingSchemas2); - bestMatch.validationResult.mergeEnumValues(subValidationResult2); - } - } - } - } - if (matches.length > 1 && maxOneMatch) { - validationResult.problems.push({ - location: { offset: node.offset, length: 1 }, - message: localize2("oneOfWarning", "Matches multiple schemas when only one must validate.") - }); - } - if (bestMatch) { - validationResult.merge(bestMatch.validationResult); - validationResult.propertiesMatches += bestMatch.validationResult.propertiesMatches; - validationResult.propertiesValueMatches += bestMatch.validationResult.propertiesValueMatches; - matchingSchemas.merge(bestMatch.matchingSchemas); - } - return matches.length; - }; - if (Array.isArray(schema.anyOf)) { - testAlternatives(schema.anyOf, false); - } - if (Array.isArray(schema.oneOf)) { - testAlternatives(schema.oneOf, true); - } - var testBranch = function(schema2) { - var subValidationResult2 = new ValidationResult(); - var subMatchingSchemas2 = matchingSchemas.newSub(); - validate(node, asSchema(schema2), subValidationResult2, subMatchingSchemas2); - validationResult.merge(subValidationResult2); - validationResult.propertiesMatches += subValidationResult2.propertiesMatches; - validationResult.propertiesValueMatches += subValidationResult2.propertiesValueMatches; - matchingSchemas.merge(subMatchingSchemas2); - }; - var testCondition = function(ifSchema2, thenSchema, elseSchema) { - var subSchema = asSchema(ifSchema2); - var subValidationResult2 = new ValidationResult(); - var subMatchingSchemas2 = matchingSchemas.newSub(); - validate(node, subSchema, subValidationResult2, subMatchingSchemas2); - matchingSchemas.merge(subMatchingSchemas2); - if (!subValidationResult2.hasProblems()) { - if (thenSchema) { - testBranch(thenSchema); - } - } else if (elseSchema) { - testBranch(elseSchema); - } - }; - var ifSchema = asSchema(schema.if); - if (ifSchema) { - testCondition(ifSchema, asSchema(schema.then), asSchema(schema.else)); - } - if (Array.isArray(schema.enum)) { - var val = getNodeValue2(node); - var enumValueMatch = false; - for (var _d = 0, _e = schema.enum; _d < _e.length; _d++) { - var e = _e[_d]; - if (equals(val, e)) { - enumValueMatch = true; - break; - } - } - validationResult.enumValues = schema.enum; - validationResult.enumValueMatch = enumValueMatch; - if (!enumValueMatch) { - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - code: ErrorCode.EnumValueMismatch, - message: schema.errorMessage || localize2("enumWarning", "Value is not accepted. Valid values: {0}.", schema.enum.map(function(v) { - return JSON.stringify(v); - }).join(", ")) - }); - } - } - if (isDefined(schema.const)) { - var val = getNodeValue2(node); - if (!equals(val, schema.const)) { - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - code: ErrorCode.EnumValueMismatch, - message: schema.errorMessage || localize2("constWarning", "Value must be {0}.", JSON.stringify(schema.const)) - }); - validationResult.enumValueMatch = false; - } else { - validationResult.enumValueMatch = true; - } - validationResult.enumValues = [schema.const]; - } - if (schema.deprecationMessage && node.parent) { - validationResult.problems.push({ - location: { offset: node.parent.offset, length: node.parent.length }, - severity: DiagnosticSeverity.Warning, - message: schema.deprecationMessage, - code: ErrorCode.Deprecated - }); - } - } - function _validateNumberNode(node2, schema2, validationResult2, matchingSchemas2) { - var val = node2.value; - function normalizeFloats(float) { - var _a; - var parts = /^(-?\d+)(?:\.(\d+))?(?:e([-+]\d+))?$/.exec(float.toString()); - return parts && { - value: Number(parts[1] + (parts[2] || "")), - multiplier: (((_a = parts[2]) === null || _a === void 0 ? void 0 : _a.length) || 0) - (parseInt(parts[3]) || 0) - }; - } - ; - if (isNumber(schema2.multipleOf)) { - var remainder = -1; - if (Number.isInteger(schema2.multipleOf)) { - remainder = val % schema2.multipleOf; - } else { - var normMultipleOf = normalizeFloats(schema2.multipleOf); - var normValue = normalizeFloats(val); - if (normMultipleOf && normValue) { - var multiplier = Math.pow(10, Math.abs(normValue.multiplier - normMultipleOf.multiplier)); - if (normValue.multiplier < normMultipleOf.multiplier) { - normValue.value *= multiplier; - } else { - normMultipleOf.value *= multiplier; - } - remainder = normValue.value % normMultipleOf.value; - } - } - if (remainder !== 0) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("multipleOfWarning", "Value is not divisible by {0}.", schema2.multipleOf) - }); - } - } - function getExclusiveLimit(limit, exclusive) { - if (isNumber(exclusive)) { - return exclusive; - } - if (isBoolean(exclusive) && exclusive) { - return limit; - } - return void 0; - } - function getLimit(limit, exclusive) { - if (!isBoolean(exclusive) || !exclusive) { - return limit; - } - return void 0; - } - var exclusiveMinimum = getExclusiveLimit(schema2.minimum, schema2.exclusiveMinimum); - if (isNumber(exclusiveMinimum) && val <= exclusiveMinimum) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("exclusiveMinimumWarning", "Value is below the exclusive minimum of {0}.", exclusiveMinimum) - }); - } - var exclusiveMaximum = getExclusiveLimit(schema2.maximum, schema2.exclusiveMaximum); - if (isNumber(exclusiveMaximum) && val >= exclusiveMaximum) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("exclusiveMaximumWarning", "Value is above the exclusive maximum of {0}.", exclusiveMaximum) - }); - } - var minimum = getLimit(schema2.minimum, schema2.exclusiveMinimum); - if (isNumber(minimum) && val < minimum) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("minimumWarning", "Value is below the minimum of {0}.", minimum) - }); - } - var maximum = getLimit(schema2.maximum, schema2.exclusiveMaximum); - if (isNumber(maximum) && val > maximum) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("maximumWarning", "Value is above the maximum of {0}.", maximum) - }); - } - } - function _validateStringNode(node2, schema2, validationResult2, matchingSchemas2) { - if (isNumber(schema2.minLength) && node2.value.length < schema2.minLength) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("minLengthWarning", "String is shorter than the minimum length of {0}.", schema2.minLength) - }); - } - if (isNumber(schema2.maxLength) && node2.value.length > schema2.maxLength) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("maxLengthWarning", "String is longer than the maximum length of {0}.", schema2.maxLength) - }); - } - if (isString(schema2.pattern)) { - var regex = extendedRegExp(schema2.pattern); - if (!(regex === null || regex === void 0 ? void 0 : regex.test(node2.value))) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: schema2.patternErrorMessage || schema2.errorMessage || localize2("patternWarning", 'String does not match the pattern of "{0}".', schema2.pattern) - }); - } - } - if (schema2.format) { - switch (schema2.format) { - case "uri": - case "uri-reference": - { - var errorMessage = void 0; - if (!node2.value) { - errorMessage = localize2("uriEmpty", "URI expected."); - } else { - var match = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/.exec(node2.value); - if (!match) { - errorMessage = localize2("uriMissing", "URI is expected."); - } else if (!match[2] && schema2.format === "uri") { - errorMessage = localize2("uriSchemeMissing", "URI with a scheme is expected."); - } - } - if (errorMessage) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: schema2.patternErrorMessage || schema2.errorMessage || localize2("uriFormatWarning", "String is not a URI: {0}", errorMessage) - }); - } - } - break; - case "color-hex": - case "date-time": - case "date": - case "time": - case "email": - var format3 = formats[schema2.format]; - if (!node2.value || !format3.pattern.exec(node2.value)) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: schema2.patternErrorMessage || schema2.errorMessage || format3.errorMessage - }); - } - default: - } - } - } - function _validateArrayNode(node2, schema2, validationResult2, matchingSchemas2) { - if (Array.isArray(schema2.items)) { - var subSchemas = schema2.items; - for (var index = 0; index < subSchemas.length; index++) { - var subSchemaRef = subSchemas[index]; - var subSchema = asSchema(subSchemaRef); - var itemValidationResult = new ValidationResult(); - var item = node2.items[index]; - if (item) { - validate(item, subSchema, itemValidationResult, matchingSchemas2); - validationResult2.mergePropertyMatch(itemValidationResult); - } else if (node2.items.length >= subSchemas.length) { - validationResult2.propertiesValueMatches++; - } - } - if (node2.items.length > subSchemas.length) { - if (typeof schema2.additionalItems === "object") { - for (var i = subSchemas.length; i < node2.items.length; i++) { - var itemValidationResult = new ValidationResult(); - validate(node2.items[i], schema2.additionalItems, itemValidationResult, matchingSchemas2); - validationResult2.mergePropertyMatch(itemValidationResult); - } - } else if (schema2.additionalItems === false) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("additionalItemsWarning", "Array has too many items according to schema. Expected {0} or fewer.", subSchemas.length) - }); - } - } - } else { - var itemSchema = asSchema(schema2.items); - if (itemSchema) { - for (var _i = 0, _a = node2.items; _i < _a.length; _i++) { - var item = _a[_i]; - var itemValidationResult = new ValidationResult(); - validate(item, itemSchema, itemValidationResult, matchingSchemas2); - validationResult2.mergePropertyMatch(itemValidationResult); - } - } - } - var containsSchema = asSchema(schema2.contains); - if (containsSchema) { - var doesContain = node2.items.some(function(item2) { - var itemValidationResult2 = new ValidationResult(); - validate(item2, containsSchema, itemValidationResult2, NoOpSchemaCollector.instance); - return !itemValidationResult2.hasProblems(); - }); - if (!doesContain) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: schema2.errorMessage || localize2("requiredItemMissingWarning", "Array does not contain required item.") - }); - } - } - if (isNumber(schema2.minItems) && node2.items.length < schema2.minItems) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("minItemsWarning", "Array has too few items. Expected {0} or more.", schema2.minItems) - }); - } - if (isNumber(schema2.maxItems) && node2.items.length > schema2.maxItems) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("maxItemsWarning", "Array has too many items. Expected {0} or fewer.", schema2.maxItems) - }); - } - if (schema2.uniqueItems === true) { - var values_1 = getNodeValue2(node2); - var duplicates = values_1.some(function(value, index2) { - return index2 !== values_1.lastIndexOf(value); - }); - if (duplicates) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("uniqueItemsWarning", "Array has duplicate items.") - }); - } - } - } - function _validateObjectNode(node2, schema2, validationResult2, matchingSchemas2) { - var seenKeys = Object.create(null); - var unprocessedProperties = []; - for (var _i = 0, _a = node2.properties; _i < _a.length; _i++) { - var propertyNode = _a[_i]; - var key = propertyNode.keyNode.value; - seenKeys[key] = propertyNode.valueNode; - unprocessedProperties.push(key); - } - if (Array.isArray(schema2.required)) { - for (var _b = 0, _c = schema2.required; _b < _c.length; _b++) { - var propertyName = _c[_b]; - if (!seenKeys[propertyName]) { - var keyNode = node2.parent && node2.parent.type === "property" && node2.parent.keyNode; - var location = keyNode ? { offset: keyNode.offset, length: keyNode.length } : { offset: node2.offset, length: 1 }; - validationResult2.problems.push({ - location, - message: localize2("MissingRequiredPropWarning", 'Missing property "{0}".', propertyName) - }); - } - } - } - var propertyProcessed = function(prop2) { - var index = unprocessedProperties.indexOf(prop2); - while (index >= 0) { - unprocessedProperties.splice(index, 1); - index = unprocessedProperties.indexOf(prop2); - } - }; - if (schema2.properties) { - for (var _d = 0, _e = Object.keys(schema2.properties); _d < _e.length; _d++) { - var propertyName = _e[_d]; - propertyProcessed(propertyName); - var propertySchema = schema2.properties[propertyName]; - var child = seenKeys[propertyName]; - if (child) { - if (isBoolean(propertySchema)) { - if (!propertySchema) { - var propertyNode = child.parent; - validationResult2.problems.push({ - location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length }, - message: schema2.errorMessage || localize2("DisallowedExtraPropWarning", "Property {0} is not allowed.", propertyName) - }); - } else { - validationResult2.propertiesMatches++; - validationResult2.propertiesValueMatches++; - } - } else { - var propertyValidationResult = new ValidationResult(); - validate(child, propertySchema, propertyValidationResult, matchingSchemas2); - validationResult2.mergePropertyMatch(propertyValidationResult); - } - } - } - } - if (schema2.patternProperties) { - for (var _f = 0, _g = Object.keys(schema2.patternProperties); _f < _g.length; _f++) { - var propertyPattern = _g[_f]; - var regex = extendedRegExp(propertyPattern); - for (var _h = 0, _j = unprocessedProperties.slice(0); _h < _j.length; _h++) { - var propertyName = _j[_h]; - if (regex === null || regex === void 0 ? void 0 : regex.test(propertyName)) { - propertyProcessed(propertyName); - var child = seenKeys[propertyName]; - if (child) { - var propertySchema = schema2.patternProperties[propertyPattern]; - if (isBoolean(propertySchema)) { - if (!propertySchema) { - var propertyNode = child.parent; - validationResult2.problems.push({ - location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length }, - message: schema2.errorMessage || localize2("DisallowedExtraPropWarning", "Property {0} is not allowed.", propertyName) - }); - } else { - validationResult2.propertiesMatches++; - validationResult2.propertiesValueMatches++; - } - } else { - var propertyValidationResult = new ValidationResult(); - validate(child, propertySchema, propertyValidationResult, matchingSchemas2); - validationResult2.mergePropertyMatch(propertyValidationResult); - } - } - } - } - } - } - if (typeof schema2.additionalProperties === "object") { - for (var _k = 0, unprocessedProperties_1 = unprocessedProperties; _k < unprocessedProperties_1.length; _k++) { - var propertyName = unprocessedProperties_1[_k]; - var child = seenKeys[propertyName]; - if (child) { - var propertyValidationResult = new ValidationResult(); - validate(child, schema2.additionalProperties, propertyValidationResult, matchingSchemas2); - validationResult2.mergePropertyMatch(propertyValidationResult); - } - } - } else if (schema2.additionalProperties === false) { - if (unprocessedProperties.length > 0) { - for (var _l = 0, unprocessedProperties_2 = unprocessedProperties; _l < unprocessedProperties_2.length; _l++) { - var propertyName = unprocessedProperties_2[_l]; - var child = seenKeys[propertyName]; - if (child) { - var propertyNode = child.parent; - validationResult2.problems.push({ - location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length }, - message: schema2.errorMessage || localize2("DisallowedExtraPropWarning", "Property {0} is not allowed.", propertyName) - }); - } - } - } - } - if (isNumber(schema2.maxProperties)) { - if (node2.properties.length > schema2.maxProperties) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("MaxPropWarning", "Object has more properties than limit of {0}.", schema2.maxProperties) - }); - } - } - if (isNumber(schema2.minProperties)) { - if (node2.properties.length < schema2.minProperties) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("MinPropWarning", "Object has fewer properties than the required number of {0}", schema2.minProperties) - }); - } - } - if (schema2.dependencies) { - for (var _m = 0, _o = Object.keys(schema2.dependencies); _m < _o.length; _m++) { - var key = _o[_m]; - var prop = seenKeys[key]; - if (prop) { - var propertyDep = schema2.dependencies[key]; - if (Array.isArray(propertyDep)) { - for (var _p = 0, propertyDep_1 = propertyDep; _p < propertyDep_1.length; _p++) { - var requiredProp = propertyDep_1[_p]; - if (!seenKeys[requiredProp]) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - message: localize2("RequiredDependentPropWarning", "Object is missing property {0} required by property {1}.", requiredProp, key) - }); - } else { - validationResult2.propertiesValueMatches++; - } - } - } else { - var propertySchema = asSchema(propertyDep); - if (propertySchema) { - var propertyValidationResult = new ValidationResult(); - validate(node2, propertySchema, propertyValidationResult, matchingSchemas2); - validationResult2.mergePropertyMatch(propertyValidationResult); - } - } - } - } - } - var propertyNames = asSchema(schema2.propertyNames); - if (propertyNames) { - for (var _q = 0, _r = node2.properties; _q < _r.length; _q++) { - var f2 = _r[_q]; - var key = f2.keyNode; - if (key) { - validate(key, propertyNames, validationResult2, NoOpSchemaCollector.instance); - } - } - } - } -} - -// node_modules/vscode-json-languageservice/lib/esm/utils/glob.js -function createRegex(glob, opts) { - if (typeof glob !== "string") { - throw new TypeError("Expected a string"); - } - var str = String(glob); - var reStr = ""; - var extended = opts ? !!opts.extended : false; - var globstar = opts ? !!opts.globstar : false; - var inGroup = false; - var flags = opts && typeof opts.flags === "string" ? opts.flags : ""; - var c; - for (var i = 0, len = str.length; i < len; i++) { - c = str[i]; - switch (c) { - case "/": - case "$": - case "^": - case "+": - case ".": - case "(": - case ")": - case "=": - case "!": - case "|": - reStr += "\\" + c; - break; - case "?": - if (extended) { - reStr += "."; - break; - } - case "[": - case "]": - if (extended) { - reStr += c; - break; - } - case "{": - if (extended) { - inGroup = true; - reStr += "("; - break; - } - case "}": - if (extended) { - inGroup = false; - reStr += ")"; - break; - } - case ",": - if (inGroup) { - reStr += "|"; - break; - } - reStr += "\\" + c; - break; - case "*": - var prevChar = str[i - 1]; - var starCount = 1; - while (str[i + 1] === "*") { - starCount++; - i++; - } - var nextChar = str[i + 1]; - if (!globstar) { - reStr += ".*"; - } else { - var isGlobstar = starCount > 1 && (prevChar === "/" || prevChar === void 0 || prevChar === "{" || prevChar === ",") && (nextChar === "/" || nextChar === void 0 || nextChar === "," || nextChar === "}"); - if (isGlobstar) { - if (nextChar === "/") { - i++; - } else if (prevChar === "/" && reStr.endsWith("\\/")) { - reStr = reStr.substr(0, reStr.length - 2); - } - reStr += "((?:[^/]*(?:/|$))*)"; - } else { - reStr += "([^/]*)"; - } - } - break; - default: - reStr += c; - } - } - if (!flags || !~flags.indexOf("g")) { - reStr = "^" + reStr + "$"; - } - return new RegExp(reStr, flags); -} - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonSchemaService.js -var localize3 = loadMessageBundle(); -var BANG = "!"; -var PATH_SEP = "/"; -var FilePatternAssociation = function() { - function FilePatternAssociation3(pattern, uris) { - this.globWrappers = []; - try { - for (var _i = 0, pattern_1 = pattern; _i < pattern_1.length; _i++) { - var patternString = pattern_1[_i]; - var include = patternString[0] !== BANG; - if (!include) { - patternString = patternString.substring(1); - } - if (patternString.length > 0) { - if (patternString[0] === PATH_SEP) { - patternString = patternString.substring(1); - } - this.globWrappers.push({ - regexp: createRegex("**/" + patternString, { extended: true, globstar: true }), - include - }); - } - } - ; - this.uris = uris; - } catch (e) { - this.globWrappers.length = 0; - this.uris = []; - } - } - FilePatternAssociation3.prototype.matchesPattern = function(fileName) { - var match = false; - for (var _i = 0, _a = this.globWrappers; _i < _a.length; _i++) { - var _b = _a[_i], regexp = _b.regexp, include = _b.include; - if (regexp.test(fileName)) { - match = include; - } - } - return match; - }; - FilePatternAssociation3.prototype.getURIs = function() { - return this.uris; - }; - return FilePatternAssociation3; -}(); -var SchemaHandle = function() { - function SchemaHandle2(service, url, unresolvedSchemaContent) { - this.service = service; - this.url = url; - this.dependencies = {}; - if (unresolvedSchemaContent) { - this.unresolvedSchema = this.service.promise.resolve(new UnresolvedSchema(unresolvedSchemaContent)); - } - } - SchemaHandle2.prototype.getUnresolvedSchema = function() { - if (!this.unresolvedSchema) { - this.unresolvedSchema = this.service.loadSchema(this.url); - } - return this.unresolvedSchema; - }; - SchemaHandle2.prototype.getResolvedSchema = function() { - var _this = this; - if (!this.resolvedSchema) { - this.resolvedSchema = this.getUnresolvedSchema().then(function(unresolved) { - return _this.service.resolveSchemaContent(unresolved, _this.url, _this.dependencies); - }); - } - return this.resolvedSchema; - }; - SchemaHandle2.prototype.clearSchema = function() { - this.resolvedSchema = void 0; - this.unresolvedSchema = void 0; - this.dependencies = {}; - }; - return SchemaHandle2; -}(); -var UnresolvedSchema = function() { - function UnresolvedSchema2(schema, errors) { - if (errors === void 0) { - errors = []; - } - this.schema = schema; - this.errors = errors; - } - return UnresolvedSchema2; -}(); -var ResolvedSchema = function() { - function ResolvedSchema2(schema, errors) { - if (errors === void 0) { - errors = []; - } - this.schema = schema; - this.errors = errors; - } - ResolvedSchema2.prototype.getSection = function(path5) { - var schemaRef = this.getSectionRecursive(path5, this.schema); - if (schemaRef) { - return asSchema(schemaRef); - } - return void 0; - }; - ResolvedSchema2.prototype.getSectionRecursive = function(path5, schema) { - if (!schema || typeof schema === "boolean" || path5.length === 0) { - return schema; - } - var next = path5.shift(); - if (schema.properties && typeof schema.properties[next]) { - return this.getSectionRecursive(path5, schema.properties[next]); - } else if (schema.patternProperties) { - for (var _i = 0, _a = Object.keys(schema.patternProperties); _i < _a.length; _i++) { - var pattern = _a[_i]; - var regex = extendedRegExp(pattern); - if (regex === null || regex === void 0 ? void 0 : regex.test(next)) { - return this.getSectionRecursive(path5, schema.patternProperties[pattern]); - } - } - } else if (typeof schema.additionalProperties === "object") { - return this.getSectionRecursive(path5, schema.additionalProperties); - } else if (next.match("[0-9]+")) { - if (Array.isArray(schema.items)) { - var index = parseInt(next, 10); - if (!isNaN(index) && schema.items[index]) { - return this.getSectionRecursive(path5, schema.items[index]); - } - } else if (schema.items) { - return this.getSectionRecursive(path5, schema.items); - } - } - return void 0; - }; - return ResolvedSchema2; -}(); -var JSONSchemaService = function() { - function JSONSchemaService2(requestService, contextService, promiseConstructor) { - this.contextService = contextService; - this.requestService = requestService; - this.promiseConstructor = promiseConstructor || Promise; - this.callOnDispose = []; - this.contributionSchemas = {}; - this.contributionAssociations = []; - this.schemasById = {}; - this.filePatternAssociations = []; - this.registeredSchemasIds = {}; - } - JSONSchemaService2.prototype.getRegisteredSchemaIds = function(filter) { - return Object.keys(this.registeredSchemasIds).filter(function(id) { - var scheme = URI.parse(id).scheme; - return scheme !== "schemaservice" && (!filter || filter(scheme)); - }); - }; - Object.defineProperty(JSONSchemaService2.prototype, "promise", { - get: function() { - return this.promiseConstructor; - }, - enumerable: false, - configurable: true - }); - JSONSchemaService2.prototype.dispose = function() { - while (this.callOnDispose.length > 0) { - this.callOnDispose.pop()(); - } - }; - JSONSchemaService2.prototype.onResourceChange = function(uri) { - var _this = this; - this.cachedSchemaForResource = void 0; - var hasChanges = false; - uri = normalizeId(uri); - var toWalk = [uri]; - var all = Object.keys(this.schemasById).map(function(key) { - return _this.schemasById[key]; - }); - while (toWalk.length) { - var curr = toWalk.pop(); - for (var i = 0; i < all.length; i++) { - var handle = all[i]; - if (handle && (handle.url === curr || handle.dependencies[curr])) { - if (handle.url !== curr) { - toWalk.push(handle.url); - } - handle.clearSchema(); - all[i] = void 0; - hasChanges = true; - } - } - } - return hasChanges; - }; - JSONSchemaService2.prototype.setSchemaContributions = function(schemaContributions2) { - if (schemaContributions2.schemas) { - var schemas = schemaContributions2.schemas; - for (var id in schemas) { - var normalizedId = normalizeId(id); - this.contributionSchemas[normalizedId] = this.addSchemaHandle(normalizedId, schemas[id]); - } - } - if (Array.isArray(schemaContributions2.schemaAssociations)) { - var schemaAssociations = schemaContributions2.schemaAssociations; - for (var _i = 0, schemaAssociations_1 = schemaAssociations; _i < schemaAssociations_1.length; _i++) { - var schemaAssociation = schemaAssociations_1[_i]; - var uris = schemaAssociation.uris.map(normalizeId); - var association = this.addFilePatternAssociation(schemaAssociation.pattern, uris); - this.contributionAssociations.push(association); - } - } - }; - JSONSchemaService2.prototype.addSchemaHandle = function(id, unresolvedSchemaContent) { - var schemaHandle = new SchemaHandle(this, id, unresolvedSchemaContent); - this.schemasById[id] = schemaHandle; - return schemaHandle; - }; - JSONSchemaService2.prototype.getOrAddSchemaHandle = function(id, unresolvedSchemaContent) { - return this.schemasById[id] || this.addSchemaHandle(id, unresolvedSchemaContent); - }; - JSONSchemaService2.prototype.addFilePatternAssociation = function(pattern, uris) { - var fpa = new FilePatternAssociation(pattern, uris); - this.filePatternAssociations.push(fpa); - return fpa; - }; - JSONSchemaService2.prototype.registerExternalSchema = function(uri, filePatterns, unresolvedSchemaContent) { - var id = normalizeId(uri); - this.registeredSchemasIds[id] = true; - this.cachedSchemaForResource = void 0; - if (filePatterns) { - this.addFilePatternAssociation(filePatterns, [id]); - } - return unresolvedSchemaContent ? this.addSchemaHandle(id, unresolvedSchemaContent) : this.getOrAddSchemaHandle(id); - }; - JSONSchemaService2.prototype.clearExternalSchemas = function() { - this.schemasById = {}; - this.filePatternAssociations = []; - this.registeredSchemasIds = {}; - this.cachedSchemaForResource = void 0; - for (var id in this.contributionSchemas) { - this.schemasById[id] = this.contributionSchemas[id]; - this.registeredSchemasIds[id] = true; - } - for (var _i = 0, _a = this.contributionAssociations; _i < _a.length; _i++) { - var contributionAssociation = _a[_i]; - this.filePatternAssociations.push(contributionAssociation); - } - }; - JSONSchemaService2.prototype.getResolvedSchema = function(schemaId) { - var id = normalizeId(schemaId); - var schemaHandle = this.schemasById[id]; - if (schemaHandle) { - return schemaHandle.getResolvedSchema(); - } - return this.promise.resolve(void 0); - }; - JSONSchemaService2.prototype.loadSchema = function(url) { - if (!this.requestService) { - var errorMessage = localize3("json.schema.norequestservice", "Unable to load schema from '{0}'. No schema request service available", toDisplayString(url)); - return this.promise.resolve(new UnresolvedSchema({}, [errorMessage])); - } - return this.requestService(url).then(function(content) { - if (!content) { - var errorMessage2 = localize3("json.schema.nocontent", "Unable to load schema from '{0}': No content.", toDisplayString(url)); - return new UnresolvedSchema({}, [errorMessage2]); - } - var schemaContent = {}; - var jsonErrors = []; - schemaContent = parse(content, jsonErrors); - var errors = jsonErrors.length ? [localize3("json.schema.invalidFormat", "Unable to parse content from '{0}': Parse error at offset {1}.", toDisplayString(url), jsonErrors[0].offset)] : []; - return new UnresolvedSchema(schemaContent, errors); - }, function(error) { - var errorMessage2 = error.toString(); - var errorSplit = error.toString().split("Error: "); - if (errorSplit.length > 1) { - errorMessage2 = errorSplit[1]; - } - if (endsWith(errorMessage2, ".")) { - errorMessage2 = errorMessage2.substr(0, errorMessage2.length - 1); - } - return new UnresolvedSchema({}, [localize3("json.schema.nocontent", "Unable to load schema from '{0}': {1}.", toDisplayString(url), errorMessage2)]); - }); - }; - JSONSchemaService2.prototype.resolveSchemaContent = function(schemaToResolve, schemaURL, dependencies) { - var _this = this; - var resolveErrors = schemaToResolve.errors.slice(0); - var schema = schemaToResolve.schema; - if (schema.$schema) { - var id = normalizeId(schema.$schema); - if (id === "http://json-schema.org/draft-03/schema") { - return this.promise.resolve(new ResolvedSchema({}, [localize3("json.schema.draft03.notsupported", "Draft-03 schemas are not supported.")])); - } else if (id === "https://json-schema.org/draft/2019-09/schema") { - resolveErrors.push(localize3("json.schema.draft201909.notsupported", "Draft 2019-09 schemas are not yet fully supported.")); - } - } - var contextService = this.contextService; - var findSection = function(schema2, path5) { - if (!path5) { - return schema2; - } - var current = schema2; - if (path5[0] === "/") { - path5 = path5.substr(1); - } - path5.split("/").some(function(part) { - part = part.replace(/~1/g, "/").replace(/~0/g, "~"); - current = current[part]; - return !current; - }); - return current; - }; - var merge = function(target, sourceRoot, sourceURI, refSegment) { - var path5 = refSegment ? decodeURIComponent(refSegment) : void 0; - var section = findSection(sourceRoot, path5); - if (section) { - for (var key in section) { - if (section.hasOwnProperty(key) && !target.hasOwnProperty(key)) { - target[key] = section[key]; - } - } - } else { - resolveErrors.push(localize3("json.schema.invalidref", "$ref '{0}' in '{1}' can not be resolved.", path5, sourceURI)); - } - }; - var resolveExternalLink = function(node, uri, refSegment, parentSchemaURL, parentSchemaDependencies) { - if (contextService && !/^[A-Za-z][A-Za-z0-9+\-.+]*:\/\/.*/.test(uri)) { - uri = contextService.resolveRelativePath(uri, parentSchemaURL); - } - uri = normalizeId(uri); - var referencedHandle = _this.getOrAddSchemaHandle(uri); - return referencedHandle.getUnresolvedSchema().then(function(unresolvedSchema) { - parentSchemaDependencies[uri] = true; - if (unresolvedSchema.errors.length) { - var loc = refSegment ? uri + "#" + refSegment : uri; - resolveErrors.push(localize3("json.schema.problemloadingref", "Problems loading reference '{0}': {1}", loc, unresolvedSchema.errors[0])); - } - merge(node, unresolvedSchema.schema, uri, refSegment); - return resolveRefs(node, unresolvedSchema.schema, uri, referencedHandle.dependencies); - }); - }; - var resolveRefs = function(node, parentSchema, parentSchemaURL, parentSchemaDependencies) { - if (!node || typeof node !== "object") { - return Promise.resolve(null); - } - var toWalk = [node]; - var seen = []; - var openPromises = []; - var collectEntries = function() { - var entries = []; - for (var _i = 0; _i < arguments.length; _i++) { - entries[_i] = arguments[_i]; - } - for (var _a = 0, entries_1 = entries; _a < entries_1.length; _a++) { - var entry = entries_1[_a]; - if (typeof entry === "object") { - toWalk.push(entry); - } - } - }; - var collectMapEntries = function() { - var maps = []; - for (var _i = 0; _i < arguments.length; _i++) { - maps[_i] = arguments[_i]; - } - for (var _a = 0, maps_1 = maps; _a < maps_1.length; _a++) { - var map = maps_1[_a]; - if (typeof map === "object") { - for (var k in map) { - var key = k; - var entry = map[key]; - if (typeof entry === "object") { - toWalk.push(entry); - } - } - } - } - }; - var collectArrayEntries = function() { - var arrays = []; - for (var _i = 0; _i < arguments.length; _i++) { - arrays[_i] = arguments[_i]; - } - for (var _a = 0, arrays_1 = arrays; _a < arrays_1.length; _a++) { - var array = arrays_1[_a]; - if (Array.isArray(array)) { - for (var _b = 0, array_1 = array; _b < array_1.length; _b++) { - var entry = array_1[_b]; - if (typeof entry === "object") { - toWalk.push(entry); - } - } - } - } - }; - var handleRef = function(next2) { - var seenRefs = []; - while (next2.$ref) { - var ref = next2.$ref; - var segments = ref.split("#", 2); - delete next2.$ref; - if (segments[0].length > 0) { - openPromises.push(resolveExternalLink(next2, segments[0], segments[1], parentSchemaURL, parentSchemaDependencies)); - return; - } else { - if (seenRefs.indexOf(ref) === -1) { - merge(next2, parentSchema, parentSchemaURL, segments[1]); - seenRefs.push(ref); - } - } - } - collectEntries(next2.items, next2.additionalItems, next2.additionalProperties, next2.not, next2.contains, next2.propertyNames, next2.if, next2.then, next2.else); - collectMapEntries(next2.definitions, next2.properties, next2.patternProperties, next2.dependencies); - collectArrayEntries(next2.anyOf, next2.allOf, next2.oneOf, next2.items); - }; - while (toWalk.length) { - var next = toWalk.pop(); - if (seen.indexOf(next) >= 0) { - continue; - } - seen.push(next); - handleRef(next); - } - return _this.promise.all(openPromises); - }; - return resolveRefs(schema, schema, schemaURL, dependencies).then(function(_) { - return new ResolvedSchema(schema, resolveErrors); - }); - }; - JSONSchemaService2.prototype.getSchemaForResource = function(resource, document) { - if (document && document.root && document.root.type === "object") { - var schemaProperties = document.root.properties.filter(function(p) { - return p.keyNode.value === "$schema" && p.valueNode && p.valueNode.type === "string"; - }); - if (schemaProperties.length > 0) { - var valueNode = schemaProperties[0].valueNode; - if (valueNode && valueNode.type === "string") { - var schemeId = getNodeValue2(valueNode); - if (schemeId && startsWith(schemeId, ".") && this.contextService) { - schemeId = this.contextService.resolveRelativePath(schemeId, resource); - } - if (schemeId) { - var id = normalizeId(schemeId); - return this.getOrAddSchemaHandle(id).getResolvedSchema(); - } - } - } - } - if (this.cachedSchemaForResource && this.cachedSchemaForResource.resource === resource) { - return this.cachedSchemaForResource.resolvedSchema; - } - var seen = Object.create(null); - var schemas = []; - var normalizedResource = normalizeResourceForMatching(resource); - for (var _i = 0, _a = this.filePatternAssociations; _i < _a.length; _i++) { - var entry = _a[_i]; - if (entry.matchesPattern(normalizedResource)) { - for (var _b = 0, _c = entry.getURIs(); _b < _c.length; _b++) { - var schemaId = _c[_b]; - if (!seen[schemaId]) { - schemas.push(schemaId); - seen[schemaId] = true; - } - } - } - } - var resolvedSchema = schemas.length > 0 ? this.createCombinedSchema(resource, schemas).getResolvedSchema() : this.promise.resolve(void 0); - this.cachedSchemaForResource = { resource, resolvedSchema }; - return resolvedSchema; - }; - JSONSchemaService2.prototype.createCombinedSchema = function(resource, schemaIds) { - if (schemaIds.length === 1) { - return this.getOrAddSchemaHandle(schemaIds[0]); - } else { - var combinedSchemaId = "schemaservice://combinedSchema/" + encodeURIComponent(resource); - var combinedSchema = { - allOf: schemaIds.map(function(schemaId) { - return { $ref: schemaId }; - }) - }; - return this.addSchemaHandle(combinedSchemaId, combinedSchema); - } - }; - JSONSchemaService2.prototype.getMatchingSchemas = function(document, jsonDocument, schema) { - if (schema) { - var id = schema.id || "schemaservice://untitled/matchingSchemas/" + idCounter++; - return this.resolveSchemaContent(new UnresolvedSchema(schema), id, {}).then(function(resolvedSchema) { - return jsonDocument.getMatchingSchemas(resolvedSchema.schema).filter(function(s) { - return !s.inverted; - }); - }); - } - return this.getSchemaForResource(document.uri, jsonDocument).then(function(schema2) { - if (schema2) { - return jsonDocument.getMatchingSchemas(schema2.schema).filter(function(s) { - return !s.inverted; - }); - } - return []; - }); - }; - return JSONSchemaService2; -}(); -var idCounter = 0; -function normalizeId(id) { - try { - return URI.parse(id).toString(); - } catch (e) { - return id; - } -} -function normalizeResourceForMatching(resource) { - try { - return URI.parse(resource).with({ fragment: null, query: null }).toString(); - } catch (e) { - return resource; - } -} -function toDisplayString(url) { - try { - var uri = URI.parse(url); - if (uri.scheme === "file") { - return uri.fsPath; - } - } catch (e) { - } - return url; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/utils/strings.js -"use strict"; -function getIndentation(lineContent, position) { - if (lineContent.length < position) { - return 0; - } - for (let i = 0; i < position; i++) { - const char = lineContent.charCodeAt(i); - if (char !== 32 && char !== 9) { - return i; - } - } - return position; -} -function safeCreateUnicodeRegExp(pattern) { - try { - return new RegExp(pattern, "u"); - } catch (ignore) { - return new RegExp(pattern); - } -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlSchemaService.js -import { parse as parse4 } from "yaml"; -import { - isAbsolute, - parse as parse5, - resolve -} from "path-browserify"; - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/yamlParser07.js -import { Parser as Parser5, Composer, LineCounter } from "yaml"; - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/jsonParser07.js -import { - findNodeAtOffset as findNodeAtOffset2, - getNodePath as getNodePath3, - getNodeValue as getNodeValue3 -} from "jsonc-parser"; - -// node_modules/yaml-language-server/lib/esm/languageservice/utils/objects.js -"use strict"; -function equals2(one, other) { - if (one === other) { - return true; - } - if (one === null || one === void 0 || other === null || other === void 0) { - return false; - } - if (typeof one !== typeof other) { - return false; - } - if (typeof one !== "object") { - return false; - } - if (Array.isArray(one) !== Array.isArray(other)) { - return false; - } - let i, key; - if (Array.isArray(one)) { - if (one.length !== other.length) { - return false; - } - for (i = 0; i < one.length; i++) { - if (!equals2(one[i], other[i])) { - return false; - } - } - } else { - const oneKeys = []; - for (key in one) { - oneKeys.push(key); - } - oneKeys.sort(); - const otherKeys = []; - for (key in other) { - otherKeys.push(key); - } - otherKeys.sort(); - if (!equals2(oneKeys, otherKeys)) { - return false; - } - for (i = 0; i < oneKeys.length; i++) { - if (!equals2(one[oneKeys[i]], other[oneKeys[i]])) { - return false; - } - } - } - return true; -} -function isNumber2(val) { - return typeof val === "number"; -} -function isDefined2(val) { - return typeof val !== "undefined"; -} -function isBoolean2(val) { - return typeof val === "boolean"; -} -function isString2(val) { - return typeof val === "string"; -} -function isIterable(val) { - return Symbol.iterator in Object(val); -} - -// node_modules/yaml-language-server/lib/esm/languageservice/utils/schemaUtils.js -function getSchemaTypeName(schema) { - if (schema.$id) { - const type = getSchemaRefTypeTitle(schema.$id); - return type; - } - if (schema.$ref || schema._$ref) { - const type = getSchemaRefTypeTitle(schema.$ref || schema._$ref); - return type; - } - const typeStr = schema.title || (Array.isArray(schema.type) ? schema.type.join(" | ") : schema.type); - return typeStr; -} -function getSchemaRefTypeTitle($ref) { - const match = $ref.match(/^(?:.*\/)?(.*?)(?:\.schema\.json)?$/); - let type = !!match && match[1]; - if (!type) { - type = "typeNotFound"; - console.error(`$ref (${$ref}) not parsed properly`); - } - return type; -} - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonCompletion.js -import { - createScanner as createScanner2 -} from "jsonc-parser"; - -// node_modules/vscode-json-languageservice/lib/esm/utils/json.js -function stringifyObject(obj, indent, stringifyLiteral) { - if (obj !== null && typeof obj === "object") { - var newIndent = indent + " "; - if (Array.isArray(obj)) { - if (obj.length === 0) { - return "[]"; - } - var result = "[\n"; - for (var i = 0; i < obj.length; i++) { - result += newIndent + stringifyObject(obj[i], newIndent, stringifyLiteral); - if (i < obj.length - 1) { - result += ","; - } - result += "\n"; - } - result += indent + "]"; - return result; - } else { - var keys = Object.keys(obj); - if (keys.length === 0) { - return "{}"; - } - var result = "{\n"; - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - result += newIndent + JSON.stringify(key) + ": " + stringifyObject(obj[key], newIndent, stringifyLiteral); - if (i < keys.length - 1) { - result += ","; - } - result += "\n"; - } - result += indent + "}"; - return result; - } - } - return stringifyLiteral(obj); -} - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonCompletion.js -var localize4 = loadMessageBundle(); -var valueCommitCharacters = [",", "}", "]"]; -var propertyCommitCharacters = [":"]; -var JSONCompletion = function() { - function JSONCompletion2(schemaService, contributions, promiseConstructor, clientCapabilities) { - if (contributions === void 0) { - contributions = []; - } - if (promiseConstructor === void 0) { - promiseConstructor = Promise; - } - if (clientCapabilities === void 0) { - clientCapabilities = {}; - } - this.schemaService = schemaService; - this.contributions = contributions; - this.promiseConstructor = promiseConstructor; - this.clientCapabilities = clientCapabilities; - } - JSONCompletion2.prototype.doResolve = function(item) { - for (var i = this.contributions.length - 1; i >= 0; i--) { - var resolveCompletion = this.contributions[i].resolveCompletion; - if (resolveCompletion) { - var resolver = resolveCompletion(item); - if (resolver) { - return resolver; - } - } - } - return this.promiseConstructor.resolve(item); - }; - JSONCompletion2.prototype.doComplete = function(document, position, doc) { - var _this = this; - var result = { - items: [], - isIncomplete: false - }; - var text = document.getText(); - var offset = document.offsetAt(position); - var node = doc.getNodeFromOffset(offset, true); - if (this.isInComment(document, node ? node.offset : 0, offset)) { - return Promise.resolve(result); - } - if (node && offset === node.offset + node.length && offset > 0) { - var ch = text[offset - 1]; - if (node.type === "object" && ch === "}" || node.type === "array" && ch === "]") { - node = node.parent; - } - } - var currentWord = this.getCurrentWord(document, offset); - var overwriteRange; - if (node && (node.type === "string" || node.type === "number" || node.type === "boolean" || node.type === "null")) { - overwriteRange = Range.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length)); - } else { - var overwriteStart = offset - currentWord.length; - if (overwriteStart > 0 && text[overwriteStart - 1] === '"') { - overwriteStart--; - } - overwriteRange = Range.create(document.positionAt(overwriteStart), position); - } - var supportsCommitCharacters = false; - var proposed = {}; - var collector = { - add: function(suggestion) { - var label = suggestion.label; - var existing = proposed[label]; - if (!existing) { - label = label.replace(/[\n]/g, "\u21B5"); - if (label.length > 60) { - var shortendedLabel = label.substr(0, 57).trim() + "..."; - if (!proposed[shortendedLabel]) { - label = shortendedLabel; - } - } - if (overwriteRange && suggestion.insertText !== void 0) { - suggestion.textEdit = TextEdit.replace(overwriteRange, suggestion.insertText); - } - if (supportsCommitCharacters) { - suggestion.commitCharacters = suggestion.kind === CompletionItemKind.Property ? propertyCommitCharacters : valueCommitCharacters; - } - suggestion.label = label; - proposed[label] = suggestion; - result.items.push(suggestion); - } else { - if (!existing.documentation) { - existing.documentation = suggestion.documentation; - } - if (!existing.detail) { - existing.detail = suggestion.detail; - } - } - }, - setAsIncomplete: function() { - result.isIncomplete = true; - }, - error: function(message) { - console.error(message); - }, - log: function(message) { - console.log(message); - }, - getNumberOfProposals: function() { - return result.items.length; - } - }; - return this.schemaService.getSchemaForResource(document.uri, doc).then(function(schema) { - var collectionPromises = []; - var addValue = true; - var currentKey = ""; - var currentProperty = void 0; - if (node) { - if (node.type === "string") { - var parent = node.parent; - if (parent && parent.type === "property" && parent.keyNode === node) { - addValue = !parent.valueNode; - currentProperty = parent; - currentKey = text.substr(node.offset + 1, node.length - 2); - if (parent) { - node = parent.parent; - } - } - } - } - if (node && node.type === "object") { - if (node.offset === offset) { - return result; - } - var properties = node.properties; - properties.forEach(function(p) { - if (!currentProperty || currentProperty !== p) { - proposed[p.keyNode.value] = CompletionItem.create("__"); - } - }); - var separatorAfter_1 = ""; - if (addValue) { - separatorAfter_1 = _this.evaluateSeparatorAfter(document, document.offsetAt(overwriteRange.end)); - } - if (schema) { - _this.getPropertyCompletions(schema, doc, node, addValue, separatorAfter_1, collector); - } else { - _this.getSchemaLessPropertyCompletions(doc, node, currentKey, collector); - } - var location_1 = getNodePath2(node); - _this.contributions.forEach(function(contribution) { - var collectPromise = contribution.collectPropertyCompletions(document.uri, location_1, currentWord, addValue, separatorAfter_1 === "", collector); - if (collectPromise) { - collectionPromises.push(collectPromise); - } - }); - if (!schema && currentWord.length > 0 && text.charAt(offset - currentWord.length - 1) !== '"') { - collector.add({ - kind: CompletionItemKind.Property, - label: _this.getLabelForValue(currentWord), - insertText: _this.getInsertTextForProperty(currentWord, void 0, false, separatorAfter_1), - insertTextFormat: InsertTextFormat.Snippet, - documentation: "" - }); - collector.setAsIncomplete(); - } - } - var types = {}; - if (schema) { - _this.getValueCompletions(schema, doc, node, offset, document, collector, types); - } else { - _this.getSchemaLessValueCompletions(doc, node, offset, document, collector); - } - if (_this.contributions.length > 0) { - _this.getContributedValueCompletions(doc, node, offset, document, collector, collectionPromises); - } - return _this.promiseConstructor.all(collectionPromises).then(function() { - if (collector.getNumberOfProposals() === 0) { - var offsetForSeparator = offset; - if (node && (node.type === "string" || node.type === "number" || node.type === "boolean" || node.type === "null")) { - offsetForSeparator = node.offset + node.length; - } - var separatorAfter = _this.evaluateSeparatorAfter(document, offsetForSeparator); - _this.addFillerValueCompletions(types, separatorAfter, collector); - } - return result; - }); - }); - }; - JSONCompletion2.prototype.getPropertyCompletions = function(schema, doc, node, addValue, separatorAfter, collector) { - var _this = this; - var matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset); - matchingSchemas.forEach(function(s) { - if (s.node === node && !s.inverted) { - var schemaProperties_1 = s.schema.properties; - if (schemaProperties_1) { - Object.keys(schemaProperties_1).forEach(function(key) { - var propertySchema = schemaProperties_1[key]; - if (typeof propertySchema === "object" && !propertySchema.deprecationMessage && !propertySchema.doNotSuggest) { - var proposal = { - kind: CompletionItemKind.Property, - label: key, - insertText: _this.getInsertTextForProperty(key, propertySchema, addValue, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - filterText: _this.getFilterTextForValue(key), - documentation: _this.fromMarkup(propertySchema.markdownDescription) || propertySchema.description || "" - }; - if (propertySchema.suggestSortText !== void 0) { - proposal.sortText = propertySchema.suggestSortText; - } - if (proposal.insertText && endsWith(proposal.insertText, "$1" + separatorAfter)) { - proposal.command = { - title: "Suggest", - command: "editor.action.triggerSuggest" - }; - } - collector.add(proposal); - } - }); - } - var schemaPropertyNames_1 = s.schema.propertyNames; - if (typeof schemaPropertyNames_1 === "object" && !schemaPropertyNames_1.deprecationMessage && !schemaPropertyNames_1.doNotSuggest) { - var propertyNameCompletionItem = function(name, enumDescription2) { - if (enumDescription2 === void 0) { - enumDescription2 = void 0; - } - var proposal = { - kind: CompletionItemKind.Property, - label: name, - insertText: _this.getInsertTextForProperty(name, void 0, addValue, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - filterText: _this.getFilterTextForValue(name), - documentation: enumDescription2 || _this.fromMarkup(schemaPropertyNames_1.markdownDescription) || schemaPropertyNames_1.description || "" - }; - if (schemaPropertyNames_1.suggestSortText !== void 0) { - proposal.sortText = schemaPropertyNames_1.suggestSortText; - } - if (proposal.insertText && endsWith(proposal.insertText, "$1" + separatorAfter)) { - proposal.command = { - title: "Suggest", - command: "editor.action.triggerSuggest" - }; - } - collector.add(proposal); - }; - if (schemaPropertyNames_1.enum) { - for (var i = 0; i < schemaPropertyNames_1.enum.length; i++) { - var enumDescription = void 0; - if (schemaPropertyNames_1.markdownEnumDescriptions && i < schemaPropertyNames_1.markdownEnumDescriptions.length) { - enumDescription = _this.fromMarkup(schemaPropertyNames_1.markdownEnumDescriptions[i]); - } else if (schemaPropertyNames_1.enumDescriptions && i < schemaPropertyNames_1.enumDescriptions.length) { - enumDescription = schemaPropertyNames_1.enumDescriptions[i]; - } - propertyNameCompletionItem(schemaPropertyNames_1.enum[i], enumDescription); - } - } - if (schemaPropertyNames_1.const) { - propertyNameCompletionItem(schemaPropertyNames_1.const); - } - } - } - }); - }; - JSONCompletion2.prototype.getSchemaLessPropertyCompletions = function(doc, node, currentKey, collector) { - var _this = this; - var collectCompletionsForSimilarObject = function(obj) { - obj.properties.forEach(function(p) { - var key = p.keyNode.value; - collector.add({ - kind: CompletionItemKind.Property, - label: key, - insertText: _this.getInsertTextForValue(key, ""), - insertTextFormat: InsertTextFormat.Snippet, - filterText: _this.getFilterTextForValue(key), - documentation: "" - }); - }); - }; - if (node.parent) { - if (node.parent.type === "property") { - var parentKey_1 = node.parent.keyNode.value; - doc.visit(function(n) { - if (n.type === "property" && n !== node.parent && n.keyNode.value === parentKey_1 && n.valueNode && n.valueNode.type === "object") { - collectCompletionsForSimilarObject(n.valueNode); - } - return true; - }); - } else if (node.parent.type === "array") { - node.parent.items.forEach(function(n) { - if (n.type === "object" && n !== node) { - collectCompletionsForSimilarObject(n); - } - }); - } - } else if (node.type === "object") { - collector.add({ - kind: CompletionItemKind.Property, - label: "$schema", - insertText: this.getInsertTextForProperty("$schema", void 0, true, ""), - insertTextFormat: InsertTextFormat.Snippet, - documentation: "", - filterText: this.getFilterTextForValue("$schema") - }); - } - }; - JSONCompletion2.prototype.getSchemaLessValueCompletions = function(doc, node, offset, document, collector) { - var _this = this; - var offsetForSeparator = offset; - if (node && (node.type === "string" || node.type === "number" || node.type === "boolean" || node.type === "null")) { - offsetForSeparator = node.offset + node.length; - node = node.parent; - } - if (!node) { - collector.add({ - kind: this.getSuggestionKind("object"), - label: "Empty object", - insertText: this.getInsertTextForValue({}, ""), - insertTextFormat: InsertTextFormat.Snippet, - documentation: "" - }); - collector.add({ - kind: this.getSuggestionKind("array"), - label: "Empty array", - insertText: this.getInsertTextForValue([], ""), - insertTextFormat: InsertTextFormat.Snippet, - documentation: "" - }); - return; - } - var separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator); - var collectSuggestionsForValues = function(value) { - if (value.parent && !contains(value.parent, offset, true)) { - collector.add({ - kind: _this.getSuggestionKind(value.type), - label: _this.getLabelTextForMatchingNode(value, document), - insertText: _this.getInsertTextForMatchingNode(value, document, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - documentation: "" - }); - } - if (value.type === "boolean") { - _this.addBooleanValueCompletion(!value.value, separatorAfter, collector); - } - }; - if (node.type === "property") { - if (offset > (node.colonOffset || 0)) { - var valueNode = node.valueNode; - if (valueNode && (offset > valueNode.offset + valueNode.length || valueNode.type === "object" || valueNode.type === "array")) { - return; - } - var parentKey_2 = node.keyNode.value; - doc.visit(function(n) { - if (n.type === "property" && n.keyNode.value === parentKey_2 && n.valueNode) { - collectSuggestionsForValues(n.valueNode); - } - return true; - }); - if (parentKey_2 === "$schema" && node.parent && !node.parent.parent) { - this.addDollarSchemaCompletions(separatorAfter, collector); - } - } - } - if (node.type === "array") { - if (node.parent && node.parent.type === "property") { - var parentKey_3 = node.parent.keyNode.value; - doc.visit(function(n) { - if (n.type === "property" && n.keyNode.value === parentKey_3 && n.valueNode && n.valueNode.type === "array") { - n.valueNode.items.forEach(collectSuggestionsForValues); - } - return true; - }); - } else { - node.items.forEach(collectSuggestionsForValues); - } - } - }; - JSONCompletion2.prototype.getValueCompletions = function(schema, doc, node, offset, document, collector, types) { - var offsetForSeparator = offset; - var parentKey = void 0; - var valueNode = void 0; - if (node && (node.type === "string" || node.type === "number" || node.type === "boolean" || node.type === "null")) { - offsetForSeparator = node.offset + node.length; - valueNode = node; - node = node.parent; - } - if (!node) { - this.addSchemaValueCompletions(schema.schema, "", collector, types); - return; - } - if (node.type === "property" && offset > (node.colonOffset || 0)) { - var valueNode_1 = node.valueNode; - if (valueNode_1 && offset > valueNode_1.offset + valueNode_1.length) { - return; - } - parentKey = node.keyNode.value; - node = node.parent; - } - if (node && (parentKey !== void 0 || node.type === "array")) { - var separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator); - var matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset, valueNode); - for (var _i = 0, matchingSchemas_1 = matchingSchemas; _i < matchingSchemas_1.length; _i++) { - var s = matchingSchemas_1[_i]; - if (s.node === node && !s.inverted && s.schema) { - if (node.type === "array" && s.schema.items) { - if (Array.isArray(s.schema.items)) { - var index = this.findItemAtOffset(node, document, offset); - if (index < s.schema.items.length) { - this.addSchemaValueCompletions(s.schema.items[index], separatorAfter, collector, types); - } - } else { - this.addSchemaValueCompletions(s.schema.items, separatorAfter, collector, types); - } - } - if (parentKey !== void 0) { - var propertyMatched = false; - if (s.schema.properties) { - var propertySchema = s.schema.properties[parentKey]; - if (propertySchema) { - propertyMatched = true; - this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types); - } - } - if (s.schema.patternProperties && !propertyMatched) { - for (var _a = 0, _b = Object.keys(s.schema.patternProperties); _a < _b.length; _a++) { - var pattern = _b[_a]; - var regex = extendedRegExp(pattern); - if (regex === null || regex === void 0 ? void 0 : regex.test(parentKey)) { - propertyMatched = true; - var propertySchema = s.schema.patternProperties[pattern]; - this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types); - } - } - } - if (s.schema.additionalProperties && !propertyMatched) { - var propertySchema = s.schema.additionalProperties; - this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types); - } - } - } - } - if (parentKey === "$schema" && !node.parent) { - this.addDollarSchemaCompletions(separatorAfter, collector); - } - if (types["boolean"]) { - this.addBooleanValueCompletion(true, separatorAfter, collector); - this.addBooleanValueCompletion(false, separatorAfter, collector); - } - if (types["null"]) { - this.addNullValueCompletion(separatorAfter, collector); - } - } - }; - JSONCompletion2.prototype.getContributedValueCompletions = function(doc, node, offset, document, collector, collectionPromises) { - if (!node) { - this.contributions.forEach(function(contribution) { - var collectPromise = contribution.collectDefaultCompletions(document.uri, collector); - if (collectPromise) { - collectionPromises.push(collectPromise); - } - }); - } else { - if (node.type === "string" || node.type === "number" || node.type === "boolean" || node.type === "null") { - node = node.parent; - } - if (node && node.type === "property" && offset > (node.colonOffset || 0)) { - var parentKey_4 = node.keyNode.value; - var valueNode = node.valueNode; - if ((!valueNode || offset <= valueNode.offset + valueNode.length) && node.parent) { - var location_2 = getNodePath2(node.parent); - this.contributions.forEach(function(contribution) { - var collectPromise = contribution.collectValueCompletions(document.uri, location_2, parentKey_4, collector); - if (collectPromise) { - collectionPromises.push(collectPromise); - } - }); - } - } - } - }; - JSONCompletion2.prototype.addSchemaValueCompletions = function(schema, separatorAfter, collector, types) { - var _this = this; - if (typeof schema === "object") { - this.addEnumValueCompletions(schema, separatorAfter, collector); - this.addDefaultValueCompletions(schema, separatorAfter, collector); - this.collectTypes(schema, types); - if (Array.isArray(schema.allOf)) { - schema.allOf.forEach(function(s) { - return _this.addSchemaValueCompletions(s, separatorAfter, collector, types); - }); - } - if (Array.isArray(schema.anyOf)) { - schema.anyOf.forEach(function(s) { - return _this.addSchemaValueCompletions(s, separatorAfter, collector, types); - }); - } - if (Array.isArray(schema.oneOf)) { - schema.oneOf.forEach(function(s) { - return _this.addSchemaValueCompletions(s, separatorAfter, collector, types); - }); - } - } - }; - JSONCompletion2.prototype.addDefaultValueCompletions = function(schema, separatorAfter, collector, arrayDepth) { - var _this = this; - if (arrayDepth === void 0) { - arrayDepth = 0; - } - var hasProposals = false; - if (isDefined(schema.default)) { - var type = schema.type; - var value = schema.default; - for (var i = arrayDepth; i > 0; i--) { - value = [value]; - type = "array"; - } - collector.add({ - kind: this.getSuggestionKind(type), - label: this.getLabelForValue(value), - insertText: this.getInsertTextForValue(value, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - detail: localize4("json.suggest.default", "Default value") - }); - hasProposals = true; - } - if (Array.isArray(schema.examples)) { - schema.examples.forEach(function(example) { - var type2 = schema.type; - var value2 = example; - for (var i2 = arrayDepth; i2 > 0; i2--) { - value2 = [value2]; - type2 = "array"; - } - collector.add({ - kind: _this.getSuggestionKind(type2), - label: _this.getLabelForValue(value2), - insertText: _this.getInsertTextForValue(value2, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet - }); - hasProposals = true; - }); - } - if (Array.isArray(schema.defaultSnippets)) { - schema.defaultSnippets.forEach(function(s) { - var type2 = schema.type; - var value2 = s.body; - var label = s.label; - var insertText; - var filterText; - if (isDefined(value2)) { - var type_1 = schema.type; - for (var i2 = arrayDepth; i2 > 0; i2--) { - value2 = [value2]; - type_1 = "array"; - } - insertText = _this.getInsertTextForSnippetValue(value2, separatorAfter); - filterText = _this.getFilterTextForSnippetValue(value2); - label = label || _this.getLabelForSnippetValue(value2); - } else if (typeof s.bodyText === "string") { - var prefix = "", suffix = "", indent = ""; - for (var i2 = arrayDepth; i2 > 0; i2--) { - prefix = prefix + indent + "[\n"; - suffix = suffix + "\n" + indent + "]"; - indent += " "; - type2 = "array"; - } - insertText = prefix + indent + s.bodyText.split("\n").join("\n" + indent) + suffix + separatorAfter; - label = label || insertText, filterText = insertText.replace(/[\n]/g, ""); - } else { - return; - } - collector.add({ - kind: _this.getSuggestionKind(type2), - label, - documentation: _this.fromMarkup(s.markdownDescription) || s.description, - insertText, - insertTextFormat: InsertTextFormat.Snippet, - filterText - }); - hasProposals = true; - }); - } - if (!hasProposals && typeof schema.items === "object" && !Array.isArray(schema.items) && arrayDepth < 5) { - this.addDefaultValueCompletions(schema.items, separatorAfter, collector, arrayDepth + 1); - } - }; - JSONCompletion2.prototype.addEnumValueCompletions = function(schema, separatorAfter, collector) { - if (isDefined(schema.const)) { - collector.add({ - kind: this.getSuggestionKind(schema.type), - label: this.getLabelForValue(schema.const), - insertText: this.getInsertTextForValue(schema.const, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - documentation: this.fromMarkup(schema.markdownDescription) || schema.description - }); - } - if (Array.isArray(schema.enum)) { - for (var i = 0, length = schema.enum.length; i < length; i++) { - var enm = schema.enum[i]; - var documentation = this.fromMarkup(schema.markdownDescription) || schema.description; - if (schema.markdownEnumDescriptions && i < schema.markdownEnumDescriptions.length && this.doesSupportMarkdown()) { - documentation = this.fromMarkup(schema.markdownEnumDescriptions[i]); - } else if (schema.enumDescriptions && i < schema.enumDescriptions.length) { - documentation = schema.enumDescriptions[i]; - } - collector.add({ - kind: this.getSuggestionKind(schema.type), - label: this.getLabelForValue(enm), - insertText: this.getInsertTextForValue(enm, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - documentation - }); - } - } - }; - JSONCompletion2.prototype.collectTypes = function(schema, types) { - if (Array.isArray(schema.enum) || isDefined(schema.const)) { - return; - } - var type = schema.type; - if (Array.isArray(type)) { - type.forEach(function(t) { - return types[t] = true; - }); - } else if (type) { - types[type] = true; - } - }; - JSONCompletion2.prototype.addFillerValueCompletions = function(types, separatorAfter, collector) { - if (types["object"]) { - collector.add({ - kind: this.getSuggestionKind("object"), - label: "{}", - insertText: this.getInsertTextForGuessedValue({}, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - detail: localize4("defaults.object", "New object"), - documentation: "" - }); - } - if (types["array"]) { - collector.add({ - kind: this.getSuggestionKind("array"), - label: "[]", - insertText: this.getInsertTextForGuessedValue([], separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - detail: localize4("defaults.array", "New array"), - documentation: "" - }); - } - }; - JSONCompletion2.prototype.addBooleanValueCompletion = function(value, separatorAfter, collector) { - collector.add({ - kind: this.getSuggestionKind("boolean"), - label: value ? "true" : "false", - insertText: this.getInsertTextForValue(value, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - documentation: "" - }); - }; - JSONCompletion2.prototype.addNullValueCompletion = function(separatorAfter, collector) { - collector.add({ - kind: this.getSuggestionKind("null"), - label: "null", - insertText: "null" + separatorAfter, - insertTextFormat: InsertTextFormat.Snippet, - documentation: "" - }); - }; - JSONCompletion2.prototype.addDollarSchemaCompletions = function(separatorAfter, collector) { - var _this = this; - var schemaIds = this.schemaService.getRegisteredSchemaIds(function(schema) { - return schema === "http" || schema === "https"; - }); - schemaIds.forEach(function(schemaId) { - return collector.add({ - kind: CompletionItemKind.Module, - label: _this.getLabelForValue(schemaId), - filterText: _this.getFilterTextForValue(schemaId), - insertText: _this.getInsertTextForValue(schemaId, separatorAfter), - insertTextFormat: InsertTextFormat.Snippet, - documentation: "" - }); - }); - }; - JSONCompletion2.prototype.getLabelForValue = function(value) { - return JSON.stringify(value); - }; - JSONCompletion2.prototype.getFilterTextForValue = function(value) { - return JSON.stringify(value); - }; - JSONCompletion2.prototype.getFilterTextForSnippetValue = function(value) { - return JSON.stringify(value).replace(/\$\{\d+:([^}]+)\}|\$\d+/g, "$1"); - }; - JSONCompletion2.prototype.getLabelForSnippetValue = function(value) { - var label = JSON.stringify(value); - return label.replace(/\$\{\d+:([^}]+)\}|\$\d+/g, "$1"); - }; - JSONCompletion2.prototype.getInsertTextForPlainText = function(text) { - return text.replace(/[\\\$\}]/g, "\\$&"); - }; - JSONCompletion2.prototype.getInsertTextForValue = function(value, separatorAfter) { - var text = JSON.stringify(value, null, " "); - if (text === "{}") { - return "{$1}" + separatorAfter; - } else if (text === "[]") { - return "[$1]" + separatorAfter; - } - return this.getInsertTextForPlainText(text + separatorAfter); - }; - JSONCompletion2.prototype.getInsertTextForSnippetValue = function(value, separatorAfter) { - var replacer = function(value2) { - if (typeof value2 === "string") { - if (value2[0] === "^") { - return value2.substr(1); - } - } - return JSON.stringify(value2); - }; - return stringifyObject(value, "", replacer) + separatorAfter; - }; - JSONCompletion2.prototype.getInsertTextForGuessedValue = function(value, separatorAfter) { - switch (typeof value) { - case "object": - if (value === null) { - return "${1:null}" + separatorAfter; - } - return this.getInsertTextForValue(value, separatorAfter); - case "string": - var snippetValue = JSON.stringify(value); - snippetValue = snippetValue.substr(1, snippetValue.length - 2); - snippetValue = this.getInsertTextForPlainText(snippetValue); - return '"${1:' + snippetValue + '}"' + separatorAfter; - case "number": - case "boolean": - return "${1:" + JSON.stringify(value) + "}" + separatorAfter; - } - return this.getInsertTextForValue(value, separatorAfter); - }; - JSONCompletion2.prototype.getSuggestionKind = function(type) { - if (Array.isArray(type)) { - var array = type; - type = array.length > 0 ? array[0] : void 0; - } - if (!type) { - return CompletionItemKind.Value; - } - switch (type) { - case "string": - return CompletionItemKind.Value; - case "object": - return CompletionItemKind.Module; - case "property": - return CompletionItemKind.Property; - default: - return CompletionItemKind.Value; - } - }; - JSONCompletion2.prototype.getLabelTextForMatchingNode = function(node, document) { - switch (node.type) { - case "array": - return "[]"; - case "object": - return "{}"; - default: - var content = document.getText().substr(node.offset, node.length); - return content; - } - }; - JSONCompletion2.prototype.getInsertTextForMatchingNode = function(node, document, separatorAfter) { - switch (node.type) { - case "array": - return this.getInsertTextForValue([], separatorAfter); - case "object": - return this.getInsertTextForValue({}, separatorAfter); - default: - var content = document.getText().substr(node.offset, node.length) + separatorAfter; - return this.getInsertTextForPlainText(content); - } - }; - JSONCompletion2.prototype.getInsertTextForProperty = function(key, propertySchema, addValue, separatorAfter) { - var propertyText = this.getInsertTextForValue(key, ""); - if (!addValue) { - return propertyText; - } - var resultText = propertyText + ": "; - var value; - var nValueProposals = 0; - if (propertySchema) { - if (Array.isArray(propertySchema.defaultSnippets)) { - if (propertySchema.defaultSnippets.length === 1) { - var body = propertySchema.defaultSnippets[0].body; - if (isDefined(body)) { - value = this.getInsertTextForSnippetValue(body, ""); - } - } - nValueProposals += propertySchema.defaultSnippets.length; - } - if (propertySchema.enum) { - if (!value && propertySchema.enum.length === 1) { - value = this.getInsertTextForGuessedValue(propertySchema.enum[0], ""); - } - nValueProposals += propertySchema.enum.length; - } - if (isDefined(propertySchema.default)) { - if (!value) { - value = this.getInsertTextForGuessedValue(propertySchema.default, ""); - } - nValueProposals++; - } - if (Array.isArray(propertySchema.examples) && propertySchema.examples.length) { - if (!value) { - value = this.getInsertTextForGuessedValue(propertySchema.examples[0], ""); - } - nValueProposals += propertySchema.examples.length; - } - if (nValueProposals === 0) { - var type = Array.isArray(propertySchema.type) ? propertySchema.type[0] : propertySchema.type; - if (!type) { - if (propertySchema.properties) { - type = "object"; - } else if (propertySchema.items) { - type = "array"; - } - } - switch (type) { - case "boolean": - value = "$1"; - break; - case "string": - value = '"$1"'; - break; - case "object": - value = "{$1}"; - break; - case "array": - value = "[$1]"; - break; - case "number": - case "integer": - value = "${1:0}"; - break; - case "null": - value = "${1:null}"; - break; - default: - return propertyText; - } - } - } - if (!value || nValueProposals > 1) { - value = "$1"; - } - return resultText + value + separatorAfter; - }; - JSONCompletion2.prototype.getCurrentWord = function(document, offset) { - var i = offset - 1; - var text = document.getText(); - while (i >= 0 && ' \n\r\v":{[,]}'.indexOf(text.charAt(i)) === -1) { - i--; - } - return text.substring(i + 1, offset); - }; - JSONCompletion2.prototype.evaluateSeparatorAfter = function(document, offset) { - var scanner = createScanner2(document.getText(), true); - scanner.setPosition(offset); - var token = scanner.scan(); - switch (token) { - case 5: - case 2: - case 4: - case 17: - return ""; - default: - return ","; - } - }; - JSONCompletion2.prototype.findItemAtOffset = function(node, document, offset) { - var scanner = createScanner2(document.getText(), true); - var children = node.items; - for (var i = children.length - 1; i >= 0; i--) { - var child = children[i]; - if (offset > child.offset + child.length) { - scanner.setPosition(child.offset + child.length); - var token = scanner.scan(); - if (token === 5 && offset >= scanner.getTokenOffset() + scanner.getTokenLength()) { - return i + 1; - } - return i; - } else if (offset >= child.offset) { - return i; - } - } - return 0; - }; - JSONCompletion2.prototype.isInComment = function(document, start, offset) { - var scanner = createScanner2(document.getText(), false); - scanner.setPosition(start); - var token = scanner.scan(); - while (token !== 17 && scanner.getTokenOffset() + scanner.getTokenLength() < offset) { - token = scanner.scan(); - } - return (token === 12 || token === 13) && scanner.getTokenOffset() <= offset; - }; - JSONCompletion2.prototype.fromMarkup = function(markupString) { - if (markupString && this.doesSupportMarkdown()) { - return { - kind: MarkupKind.Markdown, - value: markupString - }; - } - return void 0; - }; - JSONCompletion2.prototype.doesSupportMarkdown = function() { - if (!isDefined(this.supportsMarkdown)) { - var completion = this.clientCapabilities.textDocument && this.clientCapabilities.textDocument.completion; - this.supportsMarkdown = completion && completion.completionItem && Array.isArray(completion.completionItem.documentationFormat) && completion.completionItem.documentationFormat.indexOf(MarkupKind.Markdown) !== -1; - } - return this.supportsMarkdown; - }; - JSONCompletion2.prototype.doesSupportsCommitCharacters = function() { - if (!isDefined(this.supportsCommitCharacters)) { - var completion = this.clientCapabilities.textDocument && this.clientCapabilities.textDocument.completion; - this.supportsCommitCharacters = completion && completion.completionItem && !!completion.completionItem.commitCharactersSupport; - } - return this.supportsCommitCharacters; - }; - return JSONCompletion2; -}(); - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonHover.js -var JSONHover = function() { - function JSONHover2(schemaService, contributions, promiseConstructor) { - if (contributions === void 0) { - contributions = []; - } - this.schemaService = schemaService; - this.contributions = contributions; - this.promise = promiseConstructor || Promise; - } - JSONHover2.prototype.doHover = function(document, position, doc) { - var offset = document.offsetAt(position); - var node = doc.getNodeFromOffset(offset); - if (!node || (node.type === "object" || node.type === "array") && offset > node.offset + 1 && offset < node.offset + node.length - 1) { - return this.promise.resolve(null); - } - var hoverRangeNode = node; - if (node.type === "string") { - var parent = node.parent; - if (parent && parent.type === "property" && parent.keyNode === node) { - node = parent.valueNode; - if (!node) { - return this.promise.resolve(null); - } - } - } - var hoverRange = Range.create(document.positionAt(hoverRangeNode.offset), document.positionAt(hoverRangeNode.offset + hoverRangeNode.length)); - var createHover = function(contents) { - var result = { - contents, - range: hoverRange - }; - return result; - }; - var location = getNodePath2(node); - for (var i = this.contributions.length - 1; i >= 0; i--) { - var contribution = this.contributions[i]; - var promise = contribution.getInfoContribution(document.uri, location); - if (promise) { - return promise.then(function(htmlContent) { - return createHover(htmlContent); - }); - } - } - return this.schemaService.getSchemaForResource(document.uri, doc).then(function(schema) { - if (schema && node) { - var matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset); - var title_1 = void 0; - var markdownDescription_1 = void 0; - var markdownEnumValueDescription_1 = void 0, enumValue_1 = void 0; - matchingSchemas.every(function(s) { - if (s.node === node && !s.inverted && s.schema) { - title_1 = title_1 || s.schema.title; - markdownDescription_1 = markdownDescription_1 || s.schema.markdownDescription || toMarkdown(s.schema.description); - if (s.schema.enum) { - var idx = s.schema.enum.indexOf(getNodeValue2(node)); - if (s.schema.markdownEnumDescriptions) { - markdownEnumValueDescription_1 = s.schema.markdownEnumDescriptions[idx]; - } else if (s.schema.enumDescriptions) { - markdownEnumValueDescription_1 = toMarkdown(s.schema.enumDescriptions[idx]); - } - if (markdownEnumValueDescription_1) { - enumValue_1 = s.schema.enum[idx]; - if (typeof enumValue_1 !== "string") { - enumValue_1 = JSON.stringify(enumValue_1); - } - } - } - } - return true; - }); - var result = ""; - if (title_1) { - result = toMarkdown(title_1); - } - if (markdownDescription_1) { - if (result.length > 0) { - result += "\n\n"; - } - result += markdownDescription_1; - } - if (markdownEnumValueDescription_1) { - if (result.length > 0) { - result += "\n\n"; - } - result += "`" + toMarkdownCodeBlock(enumValue_1) + "`: " + markdownEnumValueDescription_1; - } - return createHover([result]); - } - return null; - }); - }; - return JSONHover2; -}(); -function toMarkdown(plain) { - if (plain) { - var res = plain.replace(/([^\n\r])(\r?\n)([^\n\r])/gm, "$1\n\n$3"); - return res.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); - } - return void 0; -} -function toMarkdownCodeBlock(content) { - if (content.indexOf("`") !== -1) { - return "`` " + content + " ``"; - } - return content; -} - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonValidation.js -var localize5 = loadMessageBundle(); -var JSONValidation = function() { - function JSONValidation2(jsonSchemaService, promiseConstructor) { - this.jsonSchemaService = jsonSchemaService; - this.promise = promiseConstructor; - this.validationEnabled = true; - } - JSONValidation2.prototype.configure = function(raw) { - if (raw) { - this.validationEnabled = raw.validate !== false; - this.commentSeverity = raw.allowComments ? void 0 : DiagnosticSeverity.Error; - } - }; - JSONValidation2.prototype.doValidation = function(textDocument, jsonDocument, documentSettings, schema) { - var _this = this; - if (!this.validationEnabled) { - return this.promise.resolve([]); - } - var diagnostics = []; - var added = {}; - var addProblem = function(problem) { - var signature = problem.range.start.line + " " + problem.range.start.character + " " + problem.message; - if (!added[signature]) { - added[signature] = true; - diagnostics.push(problem); - } - }; - var getDiagnostics = function(schema2) { - var trailingCommaSeverity = (documentSettings === null || documentSettings === void 0 ? void 0 : documentSettings.trailingCommas) ? toDiagnosticSeverity(documentSettings.trailingCommas) : DiagnosticSeverity.Error; - var commentSeverity = (documentSettings === null || documentSettings === void 0 ? void 0 : documentSettings.comments) ? toDiagnosticSeverity(documentSettings.comments) : _this.commentSeverity; - var schemaValidation = (documentSettings === null || documentSettings === void 0 ? void 0 : documentSettings.schemaValidation) ? toDiagnosticSeverity(documentSettings.schemaValidation) : DiagnosticSeverity.Warning; - var schemaRequest = (documentSettings === null || documentSettings === void 0 ? void 0 : documentSettings.schemaRequest) ? toDiagnosticSeverity(documentSettings.schemaRequest) : DiagnosticSeverity.Warning; - if (schema2) { - if (schema2.errors.length && jsonDocument.root && schemaRequest) { - var astRoot = jsonDocument.root; - var property = astRoot.type === "object" ? astRoot.properties[0] : void 0; - if (property && property.keyNode.value === "$schema") { - var node = property.valueNode || property; - var range = Range.create(textDocument.positionAt(node.offset), textDocument.positionAt(node.offset + node.length)); - addProblem(Diagnostic.create(range, schema2.errors[0], schemaRequest, ErrorCode.SchemaResolveError)); - } else { - var range = Range.create(textDocument.positionAt(astRoot.offset), textDocument.positionAt(astRoot.offset + 1)); - addProblem(Diagnostic.create(range, schema2.errors[0], schemaRequest, ErrorCode.SchemaResolveError)); - } - } else if (schemaValidation) { - var semanticErrors = jsonDocument.validate(textDocument, schema2.schema, schemaValidation); - if (semanticErrors) { - semanticErrors.forEach(addProblem); - } - } - if (schemaAllowsComments(schema2.schema)) { - commentSeverity = void 0; - } - if (schemaAllowsTrailingCommas(schema2.schema)) { - trailingCommaSeverity = void 0; - } - } - for (var _i = 0, _a = jsonDocument.syntaxErrors; _i < _a.length; _i++) { - var p = _a[_i]; - if (p.code === ErrorCode.TrailingComma) { - if (typeof trailingCommaSeverity !== "number") { - continue; - } - p.severity = trailingCommaSeverity; - } - addProblem(p); - } - if (typeof commentSeverity === "number") { - var message_1 = localize5("InvalidCommentToken", "Comments are not permitted in JSON."); - jsonDocument.comments.forEach(function(c) { - addProblem(Diagnostic.create(c, message_1, commentSeverity, ErrorCode.CommentNotPermitted)); - }); - } - return diagnostics; - }; - if (schema) { - var id = schema.id || "schemaservice://untitled/" + idCounter2++; - return this.jsonSchemaService.resolveSchemaContent(new UnresolvedSchema(schema), id, {}).then(function(resolvedSchema) { - return getDiagnostics(resolvedSchema); - }); - } - return this.jsonSchemaService.getSchemaForResource(textDocument.uri, jsonDocument).then(function(schema2) { - return getDiagnostics(schema2); - }); - }; - return JSONValidation2; -}(); -var idCounter2 = 0; -function schemaAllowsComments(schemaRef) { - if (schemaRef && typeof schemaRef === "object") { - if (isBoolean(schemaRef.allowComments)) { - return schemaRef.allowComments; - } - if (schemaRef.allOf) { - for (var _i = 0, _a = schemaRef.allOf; _i < _a.length; _i++) { - var schema = _a[_i]; - var allow = schemaAllowsComments(schema); - if (isBoolean(allow)) { - return allow; - } - } - } - } - return void 0; -} -function schemaAllowsTrailingCommas(schemaRef) { - if (schemaRef && typeof schemaRef === "object") { - if (isBoolean(schemaRef.allowTrailingCommas)) { - return schemaRef.allowTrailingCommas; - } - var deprSchemaRef = schemaRef; - if (isBoolean(deprSchemaRef["allowsTrailingCommas"])) { - return deprSchemaRef["allowsTrailingCommas"]; - } - if (schemaRef.allOf) { - for (var _i = 0, _a = schemaRef.allOf; _i < _a.length; _i++) { - var schema = _a[_i]; - var allow = schemaAllowsTrailingCommas(schema); - if (isBoolean(allow)) { - return allow; - } - } - } - } - return void 0; -} -function toDiagnosticSeverity(severityLevel) { - switch (severityLevel) { - case "error": - return DiagnosticSeverity.Error; - case "warning": - return DiagnosticSeverity.Warning; - case "ignore": - return void 0; - } - return void 0; -} - -// node_modules/vscode-json-languageservice/lib/esm/utils/colors.js -var Digit0 = 48; -var Digit9 = 57; -var A = 65; -var a = 97; -var f = 102; -function hexDigit(charCode) { - if (charCode < Digit0) { - return 0; - } - if (charCode <= Digit9) { - return charCode - Digit0; - } - if (charCode < a) { - charCode += a - A; - } - if (charCode >= a && charCode <= f) { - return charCode - a + 10; - } - return 0; -} -function colorFromHex(text) { - if (text[0] !== "#") { - return void 0; - } - switch (text.length) { - case 4: - return { - red: hexDigit(text.charCodeAt(1)) * 17 / 255, - green: hexDigit(text.charCodeAt(2)) * 17 / 255, - blue: hexDigit(text.charCodeAt(3)) * 17 / 255, - alpha: 1 - }; - case 5: - return { - red: hexDigit(text.charCodeAt(1)) * 17 / 255, - green: hexDigit(text.charCodeAt(2)) * 17 / 255, - blue: hexDigit(text.charCodeAt(3)) * 17 / 255, - alpha: hexDigit(text.charCodeAt(4)) * 17 / 255 - }; - case 7: - return { - red: (hexDigit(text.charCodeAt(1)) * 16 + hexDigit(text.charCodeAt(2))) / 255, - green: (hexDigit(text.charCodeAt(3)) * 16 + hexDigit(text.charCodeAt(4))) / 255, - blue: (hexDigit(text.charCodeAt(5)) * 16 + hexDigit(text.charCodeAt(6))) / 255, - alpha: 1 - }; - case 9: - return { - red: (hexDigit(text.charCodeAt(1)) * 16 + hexDigit(text.charCodeAt(2))) / 255, - green: (hexDigit(text.charCodeAt(3)) * 16 + hexDigit(text.charCodeAt(4))) / 255, - blue: (hexDigit(text.charCodeAt(5)) * 16 + hexDigit(text.charCodeAt(6))) / 255, - alpha: (hexDigit(text.charCodeAt(7)) * 16 + hexDigit(text.charCodeAt(8))) / 255 - }; - } - return void 0; -} - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonDocumentSymbols.js -var JSONDocumentSymbols = function() { - function JSONDocumentSymbols2(schemaService) { - this.schemaService = schemaService; - } - JSONDocumentSymbols2.prototype.findDocumentSymbols = function(document, doc, context) { - var _this = this; - if (context === void 0) { - context = { resultLimit: Number.MAX_VALUE }; - } - var root = doc.root; - if (!root) { - return []; - } - var limit = context.resultLimit || Number.MAX_VALUE; - var resourceString = document.uri; - if (resourceString === "vscode://defaultsettings/keybindings.json" || endsWith(resourceString.toLowerCase(), "/user/keybindings.json")) { - if (root.type === "array") { - var result_1 = []; - for (var _i = 0, _a = root.items; _i < _a.length; _i++) { - var item = _a[_i]; - if (item.type === "object") { - for (var _b = 0, _c = item.properties; _b < _c.length; _b++) { - var property = _c[_b]; - if (property.keyNode.value === "key" && property.valueNode) { - var location = Location.create(document.uri, getRange(document, item)); - result_1.push({ name: getNodeValue2(property.valueNode), kind: SymbolKind.Function, location }); - limit--; - if (limit <= 0) { - if (context && context.onResultLimitExceeded) { - context.onResultLimitExceeded(resourceString); - } - return result_1; - } - } - } - } - } - return result_1; - } - } - var toVisit = [ - { node: root, containerName: "" } - ]; - var nextToVisit = 0; - var limitExceeded = false; - var result = []; - var collectOutlineEntries = function(node, containerName) { - if (node.type === "array") { - node.items.forEach(function(node2) { - if (node2) { - toVisit.push({ node: node2, containerName }); - } - }); - } else if (node.type === "object") { - node.properties.forEach(function(property2) { - var valueNode = property2.valueNode; - if (valueNode) { - if (limit > 0) { - limit--; - var location2 = Location.create(document.uri, getRange(document, property2)); - var childContainerName = containerName ? containerName + "." + property2.keyNode.value : property2.keyNode.value; - result.push({ name: _this.getKeyLabel(property2), kind: _this.getSymbolKind(valueNode.type), location: location2, containerName }); - toVisit.push({ node: valueNode, containerName: childContainerName }); - } else { - limitExceeded = true; - } - } - }); - } - }; - while (nextToVisit < toVisit.length) { - var next = toVisit[nextToVisit++]; - collectOutlineEntries(next.node, next.containerName); - } - if (limitExceeded && context && context.onResultLimitExceeded) { - context.onResultLimitExceeded(resourceString); - } - return result; - }; - JSONDocumentSymbols2.prototype.findDocumentSymbols2 = function(document, doc, context) { - var _this = this; - if (context === void 0) { - context = { resultLimit: Number.MAX_VALUE }; - } - var root = doc.root; - if (!root) { - return []; - } - var limit = context.resultLimit || Number.MAX_VALUE; - var resourceString = document.uri; - if (resourceString === "vscode://defaultsettings/keybindings.json" || endsWith(resourceString.toLowerCase(), "/user/keybindings.json")) { - if (root.type === "array") { - var result_2 = []; - for (var _i = 0, _a = root.items; _i < _a.length; _i++) { - var item = _a[_i]; - if (item.type === "object") { - for (var _b = 0, _c = item.properties; _b < _c.length; _b++) { - var property = _c[_b]; - if (property.keyNode.value === "key" && property.valueNode) { - var range = getRange(document, item); - var selectionRange = getRange(document, property.keyNode); - result_2.push({ name: getNodeValue2(property.valueNode), kind: SymbolKind.Function, range, selectionRange }); - limit--; - if (limit <= 0) { - if (context && context.onResultLimitExceeded) { - context.onResultLimitExceeded(resourceString); - } - return result_2; - } - } - } - } - } - return result_2; - } - } - var result = []; - var toVisit = [ - { node: root, result } - ]; - var nextToVisit = 0; - var limitExceeded = false; - var collectOutlineEntries = function(node, result2) { - if (node.type === "array") { - node.items.forEach(function(node2, index) { - if (node2) { - if (limit > 0) { - limit--; - var range2 = getRange(document, node2); - var selectionRange2 = range2; - var name = String(index); - var symbol = { name, kind: _this.getSymbolKind(node2.type), range: range2, selectionRange: selectionRange2, children: [] }; - result2.push(symbol); - toVisit.push({ result: symbol.children, node: node2 }); - } else { - limitExceeded = true; - } - } - }); - } else if (node.type === "object") { - node.properties.forEach(function(property2) { - var valueNode = property2.valueNode; - if (valueNode) { - if (limit > 0) { - limit--; - var range2 = getRange(document, property2); - var selectionRange2 = getRange(document, property2.keyNode); - var children = []; - var symbol = { name: _this.getKeyLabel(property2), kind: _this.getSymbolKind(valueNode.type), range: range2, selectionRange: selectionRange2, children, detail: _this.getDetail(valueNode) }; - result2.push(symbol); - toVisit.push({ result: children, node: valueNode }); - } else { - limitExceeded = true; - } - } - }); - } - }; - while (nextToVisit < toVisit.length) { - var next = toVisit[nextToVisit++]; - collectOutlineEntries(next.node, next.result); - } - if (limitExceeded && context && context.onResultLimitExceeded) { - context.onResultLimitExceeded(resourceString); - } - return result; - }; - JSONDocumentSymbols2.prototype.getSymbolKind = function(nodeType) { - switch (nodeType) { - case "object": - return SymbolKind.Module; - case "string": - return SymbolKind.String; - case "number": - return SymbolKind.Number; - case "array": - return SymbolKind.Array; - case "boolean": - return SymbolKind.Boolean; - default: - return SymbolKind.Variable; - } - }; - JSONDocumentSymbols2.prototype.getKeyLabel = function(property) { - var name = property.keyNode.value; - if (name) { - name = name.replace(/[\n]/g, "\u21B5"); - } - if (name && name.trim()) { - return name; - } - return '"' + name + '"'; - }; - JSONDocumentSymbols2.prototype.getDetail = function(node) { - if (!node) { - return void 0; - } - if (node.type === "boolean" || node.type === "number" || node.type === "null" || node.type === "string") { - return String(node.value); - } else { - if (node.type === "array") { - return node.children.length ? void 0 : "[]"; - } else if (node.type === "object") { - return node.children.length ? void 0 : "{}"; - } - } - return void 0; - }; - JSONDocumentSymbols2.prototype.findDocumentColors = function(document, doc, context) { - return this.schemaService.getSchemaForResource(document.uri, doc).then(function(schema) { - var result = []; - if (schema) { - var limit = context && typeof context.resultLimit === "number" ? context.resultLimit : Number.MAX_VALUE; - var matchingSchemas = doc.getMatchingSchemas(schema.schema); - var visitedNode = {}; - for (var _i = 0, matchingSchemas_1 = matchingSchemas; _i < matchingSchemas_1.length; _i++) { - var s = matchingSchemas_1[_i]; - if (!s.inverted && s.schema && (s.schema.format === "color" || s.schema.format === "color-hex") && s.node && s.node.type === "string") { - var nodeId = String(s.node.offset); - if (!visitedNode[nodeId]) { - var color = colorFromHex(getNodeValue2(s.node)); - if (color) { - var range = getRange(document, s.node); - result.push({ color, range }); - } - visitedNode[nodeId] = true; - limit--; - if (limit <= 0) { - if (context && context.onResultLimitExceeded) { - context.onResultLimitExceeded(document.uri); - } - return result; - } - } - } - } - } - return result; - }); - }; - JSONDocumentSymbols2.prototype.getColorPresentations = function(document, doc, color, range) { - var result = []; - var red256 = Math.round(color.red * 255), green256 = Math.round(color.green * 255), blue256 = Math.round(color.blue * 255); - function toTwoDigitHex(n) { - var r = n.toString(16); - return r.length !== 2 ? "0" + r : r; - } - var label; - if (color.alpha === 1) { - label = "#" + toTwoDigitHex(red256) + toTwoDigitHex(green256) + toTwoDigitHex(blue256); - } else { - label = "#" + toTwoDigitHex(red256) + toTwoDigitHex(green256) + toTwoDigitHex(blue256) + toTwoDigitHex(Math.round(color.alpha * 255)); - } - result.push({ label, textEdit: TextEdit.replace(range, JSON.stringify(label)) }); - return result; - }; - return JSONDocumentSymbols2; -}(); -function getRange(document, node) { - return Range.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length)); -} - -// node_modules/vscode-json-languageservice/lib/esm/services/configuration.js -var localize6 = loadMessageBundle(); -var schemaContributions = { - schemaAssociations: [], - schemas: { - "http://json-schema.org/schema#": { - $ref: "http://json-schema.org/draft-07/schema#" - }, - "http://json-schema.org/draft-04/schema#": { - "$schema": "http://json-schema.org/draft-04/schema#", - "definitions": { - "schemaArray": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#" - } - }, - "positiveInteger": { - "type": "integer", - "minimum": 0 - }, - "positiveIntegerDefault0": { - "allOf": [ - { - "$ref": "#/definitions/positiveInteger" - }, - { - "default": 0 - } - ] - }, - "simpleTypes": { - "type": "string", - "enum": [ - "array", - "boolean", - "integer", - "null", - "number", - "object", - "string" - ] - }, - "stringArray": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1, - "uniqueItems": true - } - }, - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uri" - }, - "$schema": { - "type": "string", - "format": "uri" - }, - "title": { - "type": "string" - }, - "description": { - "type": "string" - }, - "default": {}, - "multipleOf": { - "type": "number", - "minimum": 0, - "exclusiveMinimum": true - }, - "maximum": { - "type": "number" - }, - "exclusiveMaximum": { - "type": "boolean", - "default": false - }, - "minimum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "boolean", - "default": false - }, - "maxLength": { - "allOf": [ - { - "$ref": "#/definitions/positiveInteger" - } - ] - }, - "minLength": { - "allOf": [ - { - "$ref": "#/definitions/positiveIntegerDefault0" - } - ] - }, - "pattern": { - "type": "string", - "format": "regex" - }, - "additionalItems": { - "anyOf": [ - { - "type": "boolean" - }, - { - "$ref": "#" - } - ], - "default": {} - }, - "items": { - "anyOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/schemaArray" - } - ], - "default": {} - }, - "maxItems": { - "allOf": [ - { - "$ref": "#/definitions/positiveInteger" - } - ] - }, - "minItems": { - "allOf": [ - { - "$ref": "#/definitions/positiveIntegerDefault0" - } - ] - }, - "uniqueItems": { - "type": "boolean", - "default": false - }, - "maxProperties": { - "allOf": [ - { - "$ref": "#/definitions/positiveInteger" - } - ] - }, - "minProperties": { - "allOf": [ - { - "$ref": "#/definitions/positiveIntegerDefault0" - } - ] - }, - "required": { - "allOf": [ - { - "$ref": "#/definitions/stringArray" - } - ] - }, - "additionalProperties": { - "anyOf": [ - { - "type": "boolean" - }, - { - "$ref": "#" - } - ], - "default": {} - }, - "definitions": { - "type": "object", - "additionalProperties": { - "$ref": "#" - }, - "default": {} - }, - "properties": { - "type": "object", - "additionalProperties": { - "$ref": "#" - }, - "default": {} - }, - "patternProperties": { - "type": "object", - "additionalProperties": { - "$ref": "#" - }, - "default": {} - }, - "dependencies": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { - "$ref": "#" - }, - { - "$ref": "#/definitions/stringArray" - } - ] - } - }, - "enum": { - "type": "array", - "minItems": 1, - "uniqueItems": true - }, - "type": { - "anyOf": [ - { - "$ref": "#/definitions/simpleTypes" - }, - { - "type": "array", - "items": { - "$ref": "#/definitions/simpleTypes" - }, - "minItems": 1, - "uniqueItems": true - } - ] - }, - "format": { - "anyOf": [ - { - "type": "string", - "enum": [ - "date-time", - "uri", - "email", - "hostname", - "ipv4", - "ipv6", - "regex" - ] - }, - { - "type": "string" - } - ] - }, - "allOf": { - "allOf": [ - { - "$ref": "#/definitions/schemaArray" - } - ] - }, - "anyOf": { - "allOf": [ - { - "$ref": "#/definitions/schemaArray" - } - ] - }, - "oneOf": { - "allOf": [ - { - "$ref": "#/definitions/schemaArray" - } - ] - }, - "not": { - "allOf": [ - { - "$ref": "#" - } - ] - } - }, - "dependencies": { - "exclusiveMaximum": [ - "maximum" - ], - "exclusiveMinimum": [ - "minimum" - ] - }, - "default": {} - }, - "http://json-schema.org/draft-07/schema#": { - "definitions": { - "schemaArray": { - "type": "array", - "minItems": 1, - "items": { "$ref": "#" } - }, - "nonNegativeInteger": { - "type": "integer", - "minimum": 0 - }, - "nonNegativeIntegerDefault0": { - "allOf": [ - { "$ref": "#/definitions/nonNegativeInteger" }, - { "default": 0 } - ] - }, - "simpleTypes": { - "enum": [ - "array", - "boolean", - "integer", - "null", - "number", - "object", - "string" - ] - }, - "stringArray": { - "type": "array", - "items": { "type": "string" }, - "uniqueItems": true, - "default": [] - } - }, - "type": ["object", "boolean"], - "properties": { - "$id": { - "type": "string", - "format": "uri-reference" - }, - "$schema": { - "type": "string", - "format": "uri" - }, - "$ref": { - "type": "string", - "format": "uri-reference" - }, - "$comment": { - "type": "string" - }, - "title": { - "type": "string" - }, - "description": { - "type": "string" - }, - "default": true, - "readOnly": { - "type": "boolean", - "default": false - }, - "examples": { - "type": "array", - "items": true - }, - "multipleOf": { - "type": "number", - "exclusiveMinimum": 0 - }, - "maximum": { - "type": "number" - }, - "exclusiveMaximum": { - "type": "number" - }, - "minimum": { - "type": "number" - }, - "exclusiveMinimum": { - "type": "number" - }, - "maxLength": { "$ref": "#/definitions/nonNegativeInteger" }, - "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, - "pattern": { - "type": "string", - "format": "regex" - }, - "additionalItems": { "$ref": "#" }, - "items": { - "anyOf": [ - { "$ref": "#" }, - { "$ref": "#/definitions/schemaArray" } - ], - "default": true - }, - "maxItems": { "$ref": "#/definitions/nonNegativeInteger" }, - "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, - "uniqueItems": { - "type": "boolean", - "default": false - }, - "contains": { "$ref": "#" }, - "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" }, - "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" }, - "required": { "$ref": "#/definitions/stringArray" }, - "additionalProperties": { "$ref": "#" }, - "definitions": { - "type": "object", - "additionalProperties": { "$ref": "#" }, - "default": {} - }, - "properties": { - "type": "object", - "additionalProperties": { "$ref": "#" }, - "default": {} - }, - "patternProperties": { - "type": "object", - "additionalProperties": { "$ref": "#" }, - "propertyNames": { "format": "regex" }, - "default": {} - }, - "dependencies": { - "type": "object", - "additionalProperties": { - "anyOf": [ - { "$ref": "#" }, - { "$ref": "#/definitions/stringArray" } - ] - } - }, - "propertyNames": { "$ref": "#" }, - "const": true, - "enum": { - "type": "array", - "items": true, - "minItems": 1, - "uniqueItems": true - }, - "type": { - "anyOf": [ - { "$ref": "#/definitions/simpleTypes" }, - { - "type": "array", - "items": { "$ref": "#/definitions/simpleTypes" }, - "minItems": 1, - "uniqueItems": true - } - ] - }, - "format": { "type": "string" }, - "contentMediaType": { "type": "string" }, - "contentEncoding": { "type": "string" }, - "if": { "$ref": "#" }, - "then": { "$ref": "#" }, - "else": { "$ref": "#" }, - "allOf": { "$ref": "#/definitions/schemaArray" }, - "anyOf": { "$ref": "#/definitions/schemaArray" }, - "oneOf": { "$ref": "#/definitions/schemaArray" }, - "not": { "$ref": "#" } - }, - "default": true - } - } -}; -var descriptions = { - id: localize6("schema.json.id", "A unique identifier for the schema."), - $schema: localize6("schema.json.$schema", "The schema to verify this document against."), - title: localize6("schema.json.title", "A descriptive title of the element."), - description: localize6("schema.json.description", "A long description of the element. Used in hover menus and suggestions."), - default: localize6("schema.json.default", "A default value. Used by suggestions."), - multipleOf: localize6("schema.json.multipleOf", "A number that should cleanly divide the current value (i.e. have no remainder)."), - maximum: localize6("schema.json.maximum", "The maximum numerical value, inclusive by default."), - exclusiveMaximum: localize6("schema.json.exclusiveMaximum", "Makes the maximum property exclusive."), - minimum: localize6("schema.json.minimum", "The minimum numerical value, inclusive by default."), - exclusiveMinimum: localize6("schema.json.exclusiveMininum", "Makes the minimum property exclusive."), - maxLength: localize6("schema.json.maxLength", "The maximum length of a string."), - minLength: localize6("schema.json.minLength", "The minimum length of a string."), - pattern: localize6("schema.json.pattern", "A regular expression to match the string against. It is not implicitly anchored."), - additionalItems: localize6("schema.json.additionalItems", "For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail."), - items: localize6("schema.json.items", "For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on."), - maxItems: localize6("schema.json.maxItems", "The maximum number of items that can be inside an array. Inclusive."), - minItems: localize6("schema.json.minItems", "The minimum number of items that can be inside an array. Inclusive."), - uniqueItems: localize6("schema.json.uniqueItems", "If all of the items in the array must be unique. Defaults to false."), - maxProperties: localize6("schema.json.maxProperties", "The maximum number of properties an object can have. Inclusive."), - minProperties: localize6("schema.json.minProperties", "The minimum number of properties an object can have. Inclusive."), - required: localize6("schema.json.required", "An array of strings that lists the names of all properties required on this object."), - additionalProperties: localize6("schema.json.additionalProperties", "Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail."), - definitions: localize6("schema.json.definitions", "Not used for validation. Place subschemas here that you wish to reference inline with $ref."), - properties: localize6("schema.json.properties", "A map of property names to schemas for each property."), - patternProperties: localize6("schema.json.patternProperties", "A map of regular expressions on property names to schemas for matching properties."), - dependencies: localize6("schema.json.dependencies", "A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object."), - enum: localize6("schema.json.enum", "The set of literal values that are valid."), - type: localize6("schema.json.type", "Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types."), - format: localize6("schema.json.format", "Describes the format expected for the value."), - allOf: localize6("schema.json.allOf", "An array of schemas, all of which must match."), - anyOf: localize6("schema.json.anyOf", "An array of schemas, where at least one must match."), - oneOf: localize6("schema.json.oneOf", "An array of schemas, exactly one of which must match."), - not: localize6("schema.json.not", "A schema which must not match."), - $id: localize6("schema.json.$id", "A unique identifier for the schema."), - $ref: localize6("schema.json.$ref", "Reference a definition hosted on any location."), - $comment: localize6("schema.json.$comment", "Comments from schema authors to readers or maintainers of the schema."), - readOnly: localize6("schema.json.readOnly", "Indicates that the value of the instance is managed exclusively by the owning authority."), - examples: localize6("schema.json.examples", "Sample JSON values associated with a particular schema, for the purpose of illustrating usage."), - contains: localize6("schema.json.contains", 'An array instance is valid against "contains" if at least one of its elements is valid against the given schema.'), - propertyNames: localize6("schema.json.propertyNames", "If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema."), - const: localize6("schema.json.const", "An instance validates successfully against this keyword if its value is equal to the value of the keyword."), - contentMediaType: localize6("schema.json.contentMediaType", "Describes the media type of a string property."), - contentEncoding: localize6("schema.json.contentEncoding", "Describes the content encoding of a string property."), - if: localize6("schema.json.if", 'The validation outcome of the "if" subschema controls which of the "then" or "else" keywords are evaluated.'), - then: localize6("schema.json.then", 'The "if" subschema is used for validation when the "if" subschema succeeds.'), - else: localize6("schema.json.else", 'The "else" subschema is used for validation when the "if" subschema fails.') -}; -for (schemaName in schemaContributions.schemas) { - schema = schemaContributions.schemas[schemaName]; - for (property in schema.properties) { - propertyObject = schema.properties[property]; - if (typeof propertyObject === "boolean") { - propertyObject = schema.properties[property] = {}; - } - description = descriptions[property]; - if (description) { - propertyObject["description"] = description; - } else { - console.log(property + ": localize('schema.json." + property + `', "")`); - } - } -} -var schema; -var propertyObject; -var description; -var property; -var schemaName; - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonFolding.js -import { createScanner as createScanner3 } from "jsonc-parser"; - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonSelectionRanges.js -import { createScanner as createScanner4 } from "jsonc-parser"; - -// node_modules/vscode-json-languageservice/lib/esm/jsonLanguageService.js -import { format as formatJSON } from "jsonc-parser"; - -// node_modules/vscode-json-languageservice/lib/esm/services/jsonLinks.js -function findLinks(document, doc) { - var links = []; - doc.visit(function(node) { - var _a; - if (node.type === "property" && node.keyNode.value === "$ref" && ((_a = node.valueNode) === null || _a === void 0 ? void 0 : _a.type) === "string") { - var path5 = node.valueNode.value; - var targetNode = findTargetNode(doc, path5); - if (targetNode) { - var targetPos = document.positionAt(targetNode.offset); - links.push({ - target: document.uri + "#" + (targetPos.line + 1) + "," + (targetPos.character + 1), - range: createRange(document, node.valueNode) - }); - } - } - return true; - }); - return Promise.resolve(links); -} -function createRange(document, node) { - return Range.create(document.positionAt(node.offset + 1), document.positionAt(node.offset + node.length - 1)); -} -function findTargetNode(doc, path5) { - var tokens = parseJSONPointer(path5); - if (!tokens) { - return null; - } - return findNode(tokens, doc.root); -} -function findNode(pointer, node) { - if (!node) { - return null; - } - if (pointer.length === 0) { - return node; - } - var token = pointer.shift(); - if (node && node.type === "object") { - var propertyNode = node.properties.find(function(propertyNode2) { - return propertyNode2.keyNode.value === token; - }); - if (!propertyNode) { - return null; - } - return findNode(pointer, propertyNode.valueNode); - } else if (node && node.type === "array") { - if (token.match(/^(0|[1-9][0-9]*)$/)) { - var index = Number.parseInt(token); - var arrayItem = node.items[index]; - if (!arrayItem) { - return null; - } - return findNode(pointer, arrayItem); - } - } - return null; -} -function parseJSONPointer(path5) { - if (path5 === "#") { - return []; - } - if (path5[0] !== "#" || path5[1] !== "/") { - return null; - } - return path5.substring(2).split(/\//).map(unescape); -} -function unescape(str) { - return str.replace(/~1/g, "/").replace(/~0/g, "~"); -} - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/jsonParser07.js -import { DiagnosticSeverity as DiagnosticSeverity2, Range as Range2 } from "vscode-languageserver-types"; -import { Diagnostic as Diagnostic2 } from "vscode-languageserver-types"; - -// node_modules/yaml-language-server/lib/esm/languageservice/utils/arrUtils.js -function matchOffsetToDocument(offset, jsonDocuments) { - for (const jsonDoc of jsonDocuments.documents) { - if (jsonDoc.internalDocument && jsonDoc.internalDocument.range[0] <= offset && jsonDoc.internalDocument.range[2] >= offset) { - return jsonDoc; - } - } - if (jsonDocuments.documents.length === 1) { - return jsonDocuments.documents[0]; - } - return null; -} -function filterInvalidCustomTags(customTags) { - const validCustomTags = ["mapping", "scalar", "sequence"]; - return customTags.filter((tag) => { - if (typeof tag === "string") { - const typeInfo = tag.split(" "); - const type = typeInfo[1] && typeInfo[1].toLowerCase() || "scalar"; - if (type === "map") { - return false; - } - return validCustomTags.indexOf(type) !== -1; - } - return false; - }); -} -function isArrayEqual(fst, snd) { - if (!snd || !fst) { - return false; - } - if (snd.length !== fst.length) { - return false; - } - for (let index = fst.length - 1; index >= 0; index--) { - if (fst[index] !== snd[index]) { - return false; - } - } - return true; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/jsonParser07.js -var localize7 = loadMessageBundle(); -var formats2 = { - "color-hex": { - errorMessage: localize7("colorHexFormatWarning", "Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA."), - pattern: /^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/ - }, - "date-time": { - errorMessage: localize7("dateTimeFormatWarning", "String is not a RFC3339 date-time."), - pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i - }, - date: { - errorMessage: localize7("dateFormatWarning", "String is not a RFC3339 date."), - pattern: /^(\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i - }, - time: { - errorMessage: localize7("timeFormatWarning", "String is not a RFC3339 time."), - pattern: /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(Z|(\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i - }, - email: { - errorMessage: localize7("emailFormatWarning", "String is not an e-mail address."), - pattern: /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/ - } -}; -var YAML_SOURCE = "YAML"; -var YAML_SCHEMA_PREFIX = "yaml-schema: "; -var ProblemType; -(function(ProblemType2) { - ProblemType2["missingRequiredPropWarning"] = "missingRequiredPropWarning"; - ProblemType2["typeMismatchWarning"] = "typeMismatchWarning"; - ProblemType2["constWarning"] = "constWarning"; -})(ProblemType || (ProblemType = {})); -var ProblemTypeMessages = { - [ProblemType.missingRequiredPropWarning]: 'Missing property "{0}".', - [ProblemType.typeMismatchWarning]: 'Incorrect type. Expected "{0}".', - [ProblemType.constWarning]: "Value must be {0}." -}; -var ASTNodeImpl2 = class { - constructor(parent, internalNode, offset, length) { - this.offset = offset; - this.length = length; - this.parent = parent; - this.internalNode = internalNode; - } - getNodeFromOffsetEndInclusive(offset) { - const collector = []; - const findNode2 = (node) => { - if (offset >= node.offset && offset <= node.offset + node.length) { - const children = node.children; - for (let i = 0; i < children.length && children[i].offset <= offset; i++) { - const item = findNode2(children[i]); - if (item) { - collector.push(item); - } - } - return node; - } - return null; - }; - const foundNode = findNode2(this); - let currMinDist = Number.MAX_VALUE; - let currMinNode = null; - for (const currNode of collector) { - const minDist = currNode.length + currNode.offset - offset + (offset - currNode.offset); - if (minDist < currMinDist) { - currMinNode = currNode; - currMinDist = minDist; - } - } - return currMinNode || foundNode; - } - get children() { - return []; - } - toString() { - return "type: " + this.type + " (" + this.offset + "/" + this.length + ")" + (this.parent ? " parent: {" + this.parent.toString() + "}" : ""); - } -}; -var NullASTNodeImpl2 = class extends ASTNodeImpl2 { - constructor(parent, internalNode, offset, length) { - super(parent, internalNode, offset, length); - this.type = "null"; - this.value = null; - } -}; -var BooleanASTNodeImpl2 = class extends ASTNodeImpl2 { - constructor(parent, internalNode, boolValue, offset, length) { - super(parent, internalNode, offset, length); - this.type = "boolean"; - this.value = boolValue; - } -}; -var ArrayASTNodeImpl2 = class extends ASTNodeImpl2 { - constructor(parent, internalNode, offset, length) { - super(parent, internalNode, offset, length); - this.type = "array"; - this.items = []; - } - get children() { - return this.items; - } -}; -var NumberASTNodeImpl2 = class extends ASTNodeImpl2 { - constructor(parent, internalNode, offset, length) { - super(parent, internalNode, offset, length); - this.type = "number"; - this.isInteger = true; - this.value = Number.NaN; - } -}; -var StringASTNodeImpl2 = class extends ASTNodeImpl2 { - constructor(parent, internalNode, offset, length) { - super(parent, internalNode, offset, length); - this.type = "string"; - this.value = ""; - } -}; -var PropertyASTNodeImpl2 = class extends ASTNodeImpl2 { - constructor(parent, internalNode, offset, length) { - super(parent, internalNode, offset, length); - this.type = "property"; - this.colonOffset = -1; - } - get children() { - return this.valueNode ? [this.keyNode, this.valueNode] : [this.keyNode]; - } -}; -var ObjectASTNodeImpl2 = class extends ASTNodeImpl2 { - constructor(parent, internalNode, offset, length) { - super(parent, internalNode, offset, length); - this.type = "object"; - this.properties = []; - } - get children() { - return this.properties; - } -}; -function asSchema2(schema) { - if (isBoolean2(schema)) { - return schema ? {} : { not: {} }; - } - return schema; -} -var EnumMatch2; -(function(EnumMatch3) { - EnumMatch3[EnumMatch3["Key"] = 0] = "Key"; - EnumMatch3[EnumMatch3["Enum"] = 1] = "Enum"; -})(EnumMatch2 || (EnumMatch2 = {})); -var SchemaCollector2 = class { - constructor(focusOffset = -1, exclude = null) { - this.focusOffset = focusOffset; - this.exclude = exclude; - this.schemas = []; - } - add(schema) { - this.schemas.push(schema); - } - merge(other) { - this.schemas.push(...other.schemas); - } - include(node) { - return (this.focusOffset === -1 || contains2(node, this.focusOffset)) && node !== this.exclude; - } - newSub() { - return new SchemaCollector2(-1, this.exclude); - } -}; -var NoOpSchemaCollector2 = class { - constructor() { - } - get schemas() { - return []; - } - add(schema) { - } - merge(other) { - } - include(node) { - return true; - } - newSub() { - return this; - } -}; -NoOpSchemaCollector2.instance = new NoOpSchemaCollector2(); -var ValidationResult2 = class { - constructor(isKubernetes) { - this.problems = []; - this.propertiesMatches = 0; - this.propertiesValueMatches = 0; - this.primaryValueMatches = 0; - this.enumValueMatch = false; - if (isKubernetes) { - this.enumValues = []; - } else { - this.enumValues = null; - } - } - hasProblems() { - return !!this.problems.length; - } - mergeAll(validationResults) { - for (const validationResult of validationResults) { - this.merge(validationResult); - } - } - merge(validationResult) { - this.problems = this.problems.concat(validationResult.problems); - } - mergeEnumValues(validationResult) { - if (!this.enumValueMatch && !validationResult.enumValueMatch && this.enumValues && validationResult.enumValues) { - this.enumValues = this.enumValues.concat(validationResult.enumValues); - for (const error of this.problems) { - if (error.code === ErrorCode.EnumValueMismatch) { - error.message = localize7("enumWarning", "Value is not accepted. Valid values: {0}.", [...new Set(this.enumValues)].map((v) => { - return JSON.stringify(v); - }).join(", ")); - } - } - } - } - mergeWarningGeneric(subValidationResult, problemTypesToMerge) { - var _a, _b; - if ((_a = this.problems) === null || _a === void 0 ? void 0 : _a.length) { - for (const problemType of problemTypesToMerge) { - const bestResults = this.problems.filter((p) => p.problemType === problemType); - for (const bestResult of bestResults) { - const mergingResult = (_b = subValidationResult.problems) === null || _b === void 0 ? void 0 : _b.find((p) => p.problemType === problemType && bestResult.location.offset === p.location.offset && (problemType !== ProblemType.missingRequiredPropWarning || isArrayEqual(p.problemArgs, bestResult.problemArgs))); - if (mergingResult) { - if (mergingResult.problemArgs.length) { - mergingResult.problemArgs.filter((p) => !bestResult.problemArgs.includes(p)).forEach((p) => bestResult.problemArgs.push(p)); - bestResult.message = getWarningMessage(bestResult.problemType, bestResult.problemArgs); - } - this.mergeSources(mergingResult, bestResult); - } - } - } - } - } - mergePropertyMatch(propertyValidationResult) { - this.merge(propertyValidationResult); - this.propertiesMatches++; - if (propertyValidationResult.enumValueMatch || !propertyValidationResult.hasProblems() && propertyValidationResult.propertiesMatches) { - this.propertiesValueMatches++; - } - if (propertyValidationResult.enumValueMatch && propertyValidationResult.enumValues) { - this.primaryValueMatches++; - } - } - mergeSources(mergingResult, bestResult) { - const mergingSource = mergingResult.source.replace(YAML_SCHEMA_PREFIX, ""); - if (!bestResult.source.includes(mergingSource)) { - bestResult.source = bestResult.source + " | " + mergingSource; - } - if (!bestResult.schemaUri.includes(mergingResult.schemaUri[0])) { - bestResult.schemaUri = bestResult.schemaUri.concat(mergingResult.schemaUri); - } - } - compareGeneric(other) { - const hasProblems = this.hasProblems(); - if (hasProblems !== other.hasProblems()) { - return hasProblems ? -1 : 1; - } - if (this.enumValueMatch !== other.enumValueMatch) { - return other.enumValueMatch ? -1 : 1; - } - if (this.propertiesValueMatches !== other.propertiesValueMatches) { - return this.propertiesValueMatches - other.propertiesValueMatches; - } - if (this.primaryValueMatches !== other.primaryValueMatches) { - return this.primaryValueMatches - other.primaryValueMatches; - } - return this.propertiesMatches - other.propertiesMatches; - } - compareKubernetes(other) { - const hasProblems = this.hasProblems(); - if (this.propertiesMatches !== other.propertiesMatches) { - return this.propertiesMatches - other.propertiesMatches; - } - if (this.enumValueMatch !== other.enumValueMatch) { - return other.enumValueMatch ? -1 : 1; - } - if (this.primaryValueMatches !== other.primaryValueMatches) { - return this.primaryValueMatches - other.primaryValueMatches; - } - if (this.propertiesValueMatches !== other.propertiesValueMatches) { - return this.propertiesValueMatches - other.propertiesValueMatches; - } - if (hasProblems !== other.hasProblems()) { - return hasProblems ? -1 : 1; - } - return this.propertiesMatches - other.propertiesMatches; - } -}; -function getNodeValue4(node) { - return getNodeValue3(node); -} -function contains2(node, offset, includeRightBound = false) { - return offset >= node.offset && offset <= node.offset + node.length || includeRightBound && offset === node.offset + node.length; -} -var JSONDocument2 = class { - constructor(root, syntaxErrors = [], comments = []) { - this.root = root; - this.syntaxErrors = syntaxErrors; - this.comments = comments; - } - getNodeFromOffset(offset, includeRightBound = false) { - if (this.root) { - return findNodeAtOffset2(this.root, offset, includeRightBound); - } - return void 0; - } - getNodeFromOffsetEndInclusive(offset) { - return this.root && this.root.getNodeFromOffsetEndInclusive(offset); - } - visit(visitor) { - if (this.root) { - const doVisit = (node) => { - let ctn = visitor(node); - const children = node.children; - if (Array.isArray(children)) { - for (let i = 0; i < children.length && ctn; i++) { - ctn = doVisit(children[i]); - } - } - return ctn; - }; - doVisit(this.root); - } - } - validate(textDocument, schema) { - if (this.root && schema) { - const validationResult = new ValidationResult2(this.isKubernetes); - validate2(this.root, schema, schema, validationResult, NoOpSchemaCollector2.instance, { - isKubernetes: this.isKubernetes, - disableAdditionalProperties: this.disableAdditionalProperties - }); - return validationResult.problems.map((p) => { - const range = Range2.create(textDocument.positionAt(p.location.offset), textDocument.positionAt(p.location.offset + p.location.length)); - const diagnostic = Diagnostic2.create(range, p.message, p.severity, p.code ? p.code : ErrorCode.Undefined, p.source); - diagnostic.data = { schemaUri: p.schemaUri }; - return diagnostic; - }); - } - return null; - } - getMatchingSchemas(schema, focusOffset = -1, exclude = null) { - const matchingSchemas = new SchemaCollector2(focusOffset, exclude); - if (this.root && schema) { - validate2(this.root, schema, schema, new ValidationResult2(this.isKubernetes), matchingSchemas, { - isKubernetes: this.isKubernetes, - disableAdditionalProperties: this.disableAdditionalProperties - }); - } - return matchingSchemas.schemas; - } -}; -function validate2(node, schema, originalSchema, validationResult, matchingSchemas, options) { - const { isKubernetes } = options; - if (!node || !matchingSchemas.include(node)) { - return; - } - if (!schema.url) { - schema.url = originalSchema.url; - } - if (!schema.title) { - schema.title = originalSchema.title; - } - switch (node.type) { - case "object": - _validateObjectNode(node, schema, validationResult, matchingSchemas); - break; - case "array": - _validateArrayNode(node, schema, validationResult, matchingSchemas); - break; - case "string": - _validateStringNode(node, schema, validationResult); - break; - case "number": - _validateNumberNode(node, schema, validationResult); - break; - case "property": - return validate2(node.valueNode, schema, schema, validationResult, matchingSchemas, options); - } - _validateNode(); - matchingSchemas.add({ node, schema }); - function _validateNode() { - function matchesType(type) { - return node.type === type || type === "integer" && node.type === "number" && node.isInteger; - } - if (Array.isArray(schema.type)) { - if (!schema.type.some(matchesType)) { - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - severity: DiagnosticSeverity2.Warning, - message: schema.errorMessage || localize7("typeArrayMismatchWarning", "Incorrect type. Expected one of {0}.", schema.type.join(", ")), - source: getSchemaSource(schema, originalSchema), - schemaUri: getSchemaUri(schema, originalSchema) - }); - } - } else if (schema.type) { - if (!matchesType(schema.type)) { - const schemaType = schema.type === "object" ? getSchemaTypeName(schema) : schema.type; - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - severity: DiagnosticSeverity2.Warning, - message: schema.errorMessage || getWarningMessage(ProblemType.typeMismatchWarning, [schemaType]), - source: getSchemaSource(schema, originalSchema), - schemaUri: getSchemaUri(schema, originalSchema), - problemType: ProblemType.typeMismatchWarning, - problemArgs: [schemaType] - }); - } - } - if (Array.isArray(schema.allOf)) { - for (const subSchemaRef of schema.allOf) { - validate2(node, asSchema2(subSchemaRef), schema, validationResult, matchingSchemas, options); - } - } - const notSchema = asSchema2(schema.not); - if (notSchema) { - const subValidationResult = new ValidationResult2(isKubernetes); - const subMatchingSchemas = matchingSchemas.newSub(); - validate2(node, notSchema, schema, subValidationResult, subMatchingSchemas, options); - if (!subValidationResult.hasProblems()) { - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("notSchemaWarning", "Matches a schema that is not allowed."), - source: getSchemaSource(schema, originalSchema), - schemaUri: getSchemaUri(schema, originalSchema) - }); - } - for (const ms of subMatchingSchemas.schemas) { - ms.inverted = !ms.inverted; - matchingSchemas.add(ms); - } - } - const testAlternatives = (alternatives, maxOneMatch) => { - const matches = []; - let bestMatch = null; - for (const subSchemaRef of alternatives) { - const subSchema = asSchema2(subSchemaRef); - const subValidationResult = new ValidationResult2(isKubernetes); - const subMatchingSchemas = matchingSchemas.newSub(); - validate2(node, subSchema, schema, subValidationResult, subMatchingSchemas, options); - if (!subValidationResult.hasProblems()) { - matches.push(subSchema); - } - if (!bestMatch) { - bestMatch = { - schema: subSchema, - validationResult: subValidationResult, - matchingSchemas: subMatchingSchemas - }; - } else if (isKubernetes) { - bestMatch = alternativeComparison(subValidationResult, bestMatch, subSchema, subMatchingSchemas); - } else { - bestMatch = genericComparison(maxOneMatch, subValidationResult, bestMatch, subSchema, subMatchingSchemas); - } - } - if (matches.length > 1 && maxOneMatch) { - validationResult.problems.push({ - location: { offset: node.offset, length: 1 }, - severity: DiagnosticSeverity2.Warning, - message: localize7("oneOfWarning", "Matches multiple schemas when only one must validate."), - source: getSchemaSource(schema, originalSchema), - schemaUri: getSchemaUri(schema, originalSchema) - }); - } - if (bestMatch !== null) { - validationResult.merge(bestMatch.validationResult); - validationResult.propertiesMatches += bestMatch.validationResult.propertiesMatches; - validationResult.propertiesValueMatches += bestMatch.validationResult.propertiesValueMatches; - matchingSchemas.merge(bestMatch.matchingSchemas); - } - return matches.length; - }; - if (Array.isArray(schema.anyOf)) { - testAlternatives(schema.anyOf, false); - } - if (Array.isArray(schema.oneOf)) { - testAlternatives(schema.oneOf, true); - } - const testBranch = (schema2, originalSchema2) => { - const subValidationResult = new ValidationResult2(isKubernetes); - const subMatchingSchemas = matchingSchemas.newSub(); - validate2(node, asSchema2(schema2), originalSchema2, subValidationResult, subMatchingSchemas, options); - validationResult.merge(subValidationResult); - validationResult.propertiesMatches += subValidationResult.propertiesMatches; - validationResult.propertiesValueMatches += subValidationResult.propertiesValueMatches; - matchingSchemas.merge(subMatchingSchemas); - }; - const testCondition = (ifSchema2, originalSchema2, thenSchema, elseSchema) => { - const subSchema = asSchema2(ifSchema2); - const subValidationResult = new ValidationResult2(isKubernetes); - const subMatchingSchemas = matchingSchemas.newSub(); - validate2(node, subSchema, originalSchema2, subValidationResult, subMatchingSchemas, options); - matchingSchemas.merge(subMatchingSchemas); - if (!subValidationResult.hasProblems()) { - if (thenSchema) { - testBranch(thenSchema, originalSchema2); - } - } else if (elseSchema) { - testBranch(elseSchema, originalSchema2); - } - }; - const ifSchema = asSchema2(schema.if); - if (ifSchema) { - testCondition(ifSchema, schema, asSchema2(schema.then), asSchema2(schema.else)); - } - if (Array.isArray(schema.enum)) { - const val = getNodeValue4(node); - let enumValueMatch = false; - for (const e of schema.enum) { - if (equals2(val, e)) { - enumValueMatch = true; - break; - } - } - validationResult.enumValues = schema.enum; - validationResult.enumValueMatch = enumValueMatch; - if (!enumValueMatch) { - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - severity: DiagnosticSeverity2.Warning, - code: ErrorCode.EnumValueMismatch, - message: schema.errorMessage || localize7("enumWarning", "Value is not accepted. Valid values: {0}.", schema.enum.map((v) => { - return JSON.stringify(v); - }).join(", ")), - source: getSchemaSource(schema, originalSchema), - schemaUri: getSchemaUri(schema, originalSchema) - }); - } - } - if (isDefined2(schema.const)) { - const val = getNodeValue4(node); - if (!equals2(val, schema.const)) { - validationResult.problems.push({ - location: { offset: node.offset, length: node.length }, - severity: DiagnosticSeverity2.Warning, - code: ErrorCode.EnumValueMismatch, - problemType: ProblemType.constWarning, - message: schema.errorMessage || getWarningMessage(ProblemType.constWarning, [JSON.stringify(schema.const)]), - source: getSchemaSource(schema, originalSchema), - schemaUri: getSchemaUri(schema, originalSchema), - problemArgs: [JSON.stringify(schema.const)] - }); - validationResult.enumValueMatch = false; - } else { - validationResult.enumValueMatch = true; - } - validationResult.enumValues = [schema.const]; - } - if (schema.deprecationMessage && node.parent) { - validationResult.problems.push({ - location: { offset: node.parent.offset, length: node.parent.length }, - severity: DiagnosticSeverity2.Warning, - message: schema.deprecationMessage, - source: getSchemaSource(schema, originalSchema), - schemaUri: getSchemaUri(schema, originalSchema) - }); - } - } - function _validateNumberNode(node2, schema2, validationResult2) { - const val = node2.value; - if (isNumber2(schema2.multipleOf)) { - if (val % schema2.multipleOf !== 0) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("multipleOfWarning", "Value is not divisible by {0}.", schema2.multipleOf), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - function getExclusiveLimit(limit, exclusive) { - if (isNumber2(exclusive)) { - return exclusive; - } - if (isBoolean2(exclusive) && exclusive) { - return limit; - } - return void 0; - } - function getLimit(limit, exclusive) { - if (!isBoolean2(exclusive) || !exclusive) { - return limit; - } - return void 0; - } - const exclusiveMinimum = getExclusiveLimit(schema2.minimum, schema2.exclusiveMinimum); - if (isNumber2(exclusiveMinimum) && val <= exclusiveMinimum) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("exclusiveMinimumWarning", "Value is below the exclusive minimum of {0}.", exclusiveMinimum), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - const exclusiveMaximum = getExclusiveLimit(schema2.maximum, schema2.exclusiveMaximum); - if (isNumber2(exclusiveMaximum) && val >= exclusiveMaximum) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("exclusiveMaximumWarning", "Value is above the exclusive maximum of {0}.", exclusiveMaximum), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - const minimum = getLimit(schema2.minimum, schema2.exclusiveMinimum); - if (isNumber2(minimum) && val < minimum) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("minimumWarning", "Value is below the minimum of {0}.", minimum), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - const maximum = getLimit(schema2.maximum, schema2.exclusiveMaximum); - if (isNumber2(maximum) && val > maximum) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("maximumWarning", "Value is above the maximum of {0}.", maximum), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - function _validateStringNode(node2, schema2, validationResult2) { - if (isNumber2(schema2.minLength) && node2.value.length < schema2.minLength) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("minLengthWarning", "String is shorter than the minimum length of {0}.", schema2.minLength), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - if (isNumber2(schema2.maxLength) && node2.value.length > schema2.maxLength) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("maxLengthWarning", "String is longer than the maximum length of {0}.", schema2.maxLength), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - if (isString2(schema2.pattern)) { - const regex = safeCreateUnicodeRegExp(schema2.pattern); - if (!regex.test(node2.value)) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: schema2.patternErrorMessage || schema2.errorMessage || localize7("patternWarning", 'String does not match the pattern of "{0}".', schema2.pattern), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - if (schema2.format) { - switch (schema2.format) { - case "uri": - case "uri-reference": - { - let errorMessage; - if (!node2.value) { - errorMessage = localize7("uriEmpty", "URI expected."); - } else { - try { - const uri = URI.parse(node2.value); - if (!uri.scheme && schema2.format === "uri") { - errorMessage = localize7("uriSchemeMissing", "URI with a scheme is expected."); - } - } catch (e) { - errorMessage = e.message; - } - } - if (errorMessage) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: schema2.patternErrorMessage || schema2.errorMessage || localize7("uriFormatWarning", "String is not a URI: {0}", errorMessage), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - break; - case "color-hex": - case "date-time": - case "date": - case "time": - case "email": - { - const format3 = formats2[schema2.format]; - if (!node2.value || !format3.pattern.exec(node2.value)) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: schema2.patternErrorMessage || schema2.errorMessage || format3.errorMessage, - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - break; - default: - } - } - } - function _validateArrayNode(node2, schema2, validationResult2, matchingSchemas2) { - if (Array.isArray(schema2.items)) { - const subSchemas = schema2.items; - for (let index = 0; index < subSchemas.length; index++) { - const subSchemaRef = subSchemas[index]; - const subSchema = asSchema2(subSchemaRef); - const itemValidationResult = new ValidationResult2(isKubernetes); - const item = node2.items[index]; - if (item) { - validate2(item, subSchema, schema2, itemValidationResult, matchingSchemas2, options); - validationResult2.mergePropertyMatch(itemValidationResult); - validationResult2.mergeEnumValues(itemValidationResult); - } else if (node2.items.length >= subSchemas.length) { - validationResult2.propertiesValueMatches++; - } - } - if (node2.items.length > subSchemas.length) { - if (typeof schema2.additionalItems === "object") { - for (let i = subSchemas.length; i < node2.items.length; i++) { - const itemValidationResult = new ValidationResult2(isKubernetes); - validate2(node2.items[i], schema2.additionalItems, schema2, itemValidationResult, matchingSchemas2, options); - validationResult2.mergePropertyMatch(itemValidationResult); - validationResult2.mergeEnumValues(itemValidationResult); - } - } else if (schema2.additionalItems === false) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("additionalItemsWarning", "Array has too many items according to schema. Expected {0} or fewer.", subSchemas.length), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - } else { - const itemSchema = asSchema2(schema2.items); - if (itemSchema) { - for (const item of node2.items) { - const itemValidationResult = new ValidationResult2(isKubernetes); - validate2(item, itemSchema, schema2, itemValidationResult, matchingSchemas2, options); - validationResult2.mergePropertyMatch(itemValidationResult); - validationResult2.mergeEnumValues(itemValidationResult); - } - } - } - const containsSchema = asSchema2(schema2.contains); - if (containsSchema) { - const doesContain = node2.items.some((item) => { - const itemValidationResult = new ValidationResult2(isKubernetes); - validate2(item, containsSchema, schema2, itemValidationResult, NoOpSchemaCollector2.instance, options); - return !itemValidationResult.hasProblems(); - }); - if (!doesContain) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: schema2.errorMessage || localize7("requiredItemMissingWarning", "Array does not contain required item."), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - if (isNumber2(schema2.minItems) && node2.items.length < schema2.minItems) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("minItemsWarning", "Array has too few items. Expected {0} or more.", schema2.minItems), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - if (isNumber2(schema2.maxItems) && node2.items.length > schema2.maxItems) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("maxItemsWarning", "Array has too many items. Expected {0} or fewer.", schema2.maxItems), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - if (schema2.uniqueItems === true) { - const values = getNodeValue4(node2); - const duplicates = values.some((value, index) => { - return index !== values.lastIndexOf(value); - }); - if (duplicates) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("uniqueItemsWarning", "Array has duplicate items."), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - } - function _validateObjectNode(node2, schema2, validationResult2, matchingSchemas2) { - var _a; - const seenKeys = Object.create(null); - const unprocessedProperties = []; - const unprocessedNodes = [...node2.properties]; - while (unprocessedNodes.length > 0) { - const propertyNode = unprocessedNodes.pop(); - const key = propertyNode.keyNode.value; - if (key === "<<" && propertyNode.valueNode) { - switch (propertyNode.valueNode.type) { - case "object": { - unprocessedNodes.push(...propertyNode.valueNode["properties"]); - break; - } - case "array": { - propertyNode.valueNode["items"].forEach((sequenceNode) => { - if (sequenceNode && isIterable(sequenceNode["properties"])) { - unprocessedNodes.push(...sequenceNode["properties"]); - } - }); - break; - } - default: { - break; - } - } - } else { - seenKeys[key] = propertyNode.valueNode; - unprocessedProperties.push(key); - } - } - if (Array.isArray(schema2.required)) { - for (const propertyName of schema2.required) { - if (!seenKeys[propertyName]) { - const keyNode = node2.parent && node2.parent.type === "property" && node2.parent.keyNode; - const location = keyNode ? { offset: keyNode.offset, length: keyNode.length } : { offset: node2.offset, length: 1 }; - validationResult2.problems.push({ - location, - severity: DiagnosticSeverity2.Warning, - message: getWarningMessage(ProblemType.missingRequiredPropWarning, [propertyName]), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema), - problemArgs: [propertyName], - problemType: ProblemType.missingRequiredPropWarning - }); - } - } - } - const propertyProcessed = (prop) => { - let index = unprocessedProperties.indexOf(prop); - while (index >= 0) { - unprocessedProperties.splice(index, 1); - index = unprocessedProperties.indexOf(prop); - } - }; - if (schema2.properties) { - for (const propertyName of Object.keys(schema2.properties)) { - propertyProcessed(propertyName); - const propertySchema = schema2.properties[propertyName]; - const child = seenKeys[propertyName]; - if (child) { - if (isBoolean2(propertySchema)) { - if (!propertySchema) { - const propertyNode = child.parent; - validationResult2.problems.push({ - location: { - offset: propertyNode.keyNode.offset, - length: propertyNode.keyNode.length - }, - severity: DiagnosticSeverity2.Warning, - message: schema2.errorMessage || localize7("DisallowedExtraPropWarning", "Property {0} is not allowed.", propertyName), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } else { - validationResult2.propertiesMatches++; - validationResult2.propertiesValueMatches++; - } - } else { - propertySchema.url = (_a = schema2.url) !== null && _a !== void 0 ? _a : originalSchema.url; - const propertyValidationResult = new ValidationResult2(isKubernetes); - validate2(child, propertySchema, schema2, propertyValidationResult, matchingSchemas2, options); - validationResult2.mergePropertyMatch(propertyValidationResult); - validationResult2.mergeEnumValues(propertyValidationResult); - } - } - } - } - if (schema2.patternProperties) { - for (const propertyPattern of Object.keys(schema2.patternProperties)) { - const regex = safeCreateUnicodeRegExp(propertyPattern); - for (const propertyName of unprocessedProperties.slice(0)) { - if (regex.test(propertyName)) { - propertyProcessed(propertyName); - const child = seenKeys[propertyName]; - if (child) { - const propertySchema = schema2.patternProperties[propertyPattern]; - if (isBoolean2(propertySchema)) { - if (!propertySchema) { - const propertyNode = child.parent; - validationResult2.problems.push({ - location: { - offset: propertyNode.keyNode.offset, - length: propertyNode.keyNode.length - }, - severity: DiagnosticSeverity2.Warning, - message: schema2.errorMessage || localize7("DisallowedExtraPropWarning", "Property {0} is not allowed.", propertyName), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } else { - validationResult2.propertiesMatches++; - validationResult2.propertiesValueMatches++; - } - } else { - const propertyValidationResult = new ValidationResult2(isKubernetes); - validate2(child, propertySchema, schema2, propertyValidationResult, matchingSchemas2, options); - validationResult2.mergePropertyMatch(propertyValidationResult); - validationResult2.mergeEnumValues(propertyValidationResult); - } - } - } - } - } - } - if (typeof schema2.additionalProperties === "object") { - for (const propertyName of unprocessedProperties) { - const child = seenKeys[propertyName]; - if (child) { - const propertyValidationResult = new ValidationResult2(isKubernetes); - validate2(child, schema2.additionalProperties, schema2, propertyValidationResult, matchingSchemas2, options); - validationResult2.mergePropertyMatch(propertyValidationResult); - validationResult2.mergeEnumValues(propertyValidationResult); - } - } - } else if (schema2.additionalProperties === false || schema2.type === "object" && schema2.additionalProperties === void 0 && options.disableAdditionalProperties === true) { - if (unprocessedProperties.length > 0) { - for (const propertyName of unprocessedProperties) { - const child = seenKeys[propertyName]; - if (child) { - let propertyNode = null; - if (child.type !== "property") { - propertyNode = child.parent; - if (propertyNode.type === "object") { - propertyNode = propertyNode.properties[0]; - } - } else { - propertyNode = child; - } - validationResult2.problems.push({ - location: { - offset: propertyNode.keyNode.offset, - length: propertyNode.keyNode.length - }, - severity: DiagnosticSeverity2.Warning, - message: schema2.errorMessage || localize7("DisallowedExtraPropWarning", "Property {0} is not allowed.", propertyName), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - } - } - if (isNumber2(schema2.maxProperties)) { - if (node2.properties.length > schema2.maxProperties) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("MaxPropWarning", "Object has more properties than limit of {0}.", schema2.maxProperties), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - if (isNumber2(schema2.minProperties)) { - if (node2.properties.length < schema2.minProperties) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("MinPropWarning", "Object has fewer properties than the required number of {0}", schema2.minProperties), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } - } - if (schema2.dependencies) { - for (const key of Object.keys(schema2.dependencies)) { - const prop = seenKeys[key]; - if (prop) { - const propertyDep = schema2.dependencies[key]; - if (Array.isArray(propertyDep)) { - for (const requiredProp of propertyDep) { - if (!seenKeys[requiredProp]) { - validationResult2.problems.push({ - location: { offset: node2.offset, length: node2.length }, - severity: DiagnosticSeverity2.Warning, - message: localize7("RequiredDependentPropWarning", "Object is missing property {0} required by property {1}.", requiredProp, key), - source: getSchemaSource(schema2, originalSchema), - schemaUri: getSchemaUri(schema2, originalSchema) - }); - } else { - validationResult2.propertiesValueMatches++; - } - } - } else { - const propertySchema = asSchema2(propertyDep); - if (propertySchema) { - const propertyValidationResult = new ValidationResult2(isKubernetes); - validate2(node2, propertySchema, schema2, propertyValidationResult, matchingSchemas2, options); - validationResult2.mergePropertyMatch(propertyValidationResult); - validationResult2.mergeEnumValues(propertyValidationResult); - } - } - } - } - } - const propertyNames = asSchema2(schema2.propertyNames); - if (propertyNames) { - for (const f2 of node2.properties) { - const key = f2.keyNode; - if (key) { - validate2(key, propertyNames, schema2, validationResult2, NoOpSchemaCollector2.instance, options); - } - } - } - } - function alternativeComparison(subValidationResult, bestMatch, subSchema, subMatchingSchemas) { - const compareResult = subValidationResult.compareKubernetes(bestMatch.validationResult); - if (compareResult > 0) { - bestMatch = { - schema: subSchema, - validationResult: subValidationResult, - matchingSchemas: subMatchingSchemas - }; - } else if (compareResult === 0) { - bestMatch.matchingSchemas.merge(subMatchingSchemas); - bestMatch.validationResult.mergeEnumValues(subValidationResult); - } - return bestMatch; - } - function genericComparison(maxOneMatch, subValidationResult, bestMatch, subSchema, subMatchingSchemas) { - if (!maxOneMatch && !subValidationResult.hasProblems() && !bestMatch.validationResult.hasProblems()) { - bestMatch.matchingSchemas.merge(subMatchingSchemas); - bestMatch.validationResult.propertiesMatches += subValidationResult.propertiesMatches; - bestMatch.validationResult.propertiesValueMatches += subValidationResult.propertiesValueMatches; - } else { - const compareResult = subValidationResult.compareGeneric(bestMatch.validationResult); - if (compareResult > 0) { - bestMatch = { - schema: subSchema, - validationResult: subValidationResult, - matchingSchemas: subMatchingSchemas - }; - } else if (compareResult === 0) { - bestMatch.matchingSchemas.merge(subMatchingSchemas); - bestMatch.validationResult.mergeEnumValues(subValidationResult); - bestMatch.validationResult.mergeWarningGeneric(subValidationResult, [ - ProblemType.missingRequiredPropWarning, - ProblemType.typeMismatchWarning, - ProblemType.constWarning - ]); - } - } - return bestMatch; - } -} -function getSchemaSource(schema, originalSchema) { - var _a; - if (schema) { - let label; - if (schema.title) { - label = schema.title; - } else if (originalSchema.title) { - label = originalSchema.title; - } else { - const uriString = (_a = schema.url) !== null && _a !== void 0 ? _a : originalSchema.url; - if (uriString) { - const url = URI.parse(uriString); - if (url.scheme === "file") { - label = url.fsPath; - } - label = url.toString(); - } - } - if (label) { - return `${YAML_SCHEMA_PREFIX}${label}`; - } - } - return YAML_SOURCE; -} -function getSchemaUri(schema, originalSchema) { - var _a; - const uriString = (_a = schema.url) !== null && _a !== void 0 ? _a : originalSchema.url; - return uriString ? [uriString] : []; -} -function getWarningMessage(problemType, args) { - return localize7(problemType, ProblemTypeMessages[problemType], args.join(" | ")); -} - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/yaml-documents.js -import { isPair as isPair2, isScalar as isScalar3, visit as visit2 } from "yaml"; - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/ast-converter.js -import { isScalar, isMap, isPair, isSeq, isNode, isAlias } from "yaml"; -var maxRefCount = 1e3; -var refDepth = 0; -function convertAST(parent, node, doc, lineCounter) { - if (!parent) { - refDepth = 0; - } - if (!node) { - return; - } - if (isMap(node)) { - return convertMap(node, parent, doc, lineCounter); - } - if (isPair(node)) { - return convertPair(node, parent, doc, lineCounter); - } - if (isSeq(node)) { - return convertSeq(node, parent, doc, lineCounter); - } - if (isScalar(node)) { - return convertScalar(node, parent); - } - if (isAlias(node)) { - if (refDepth > maxRefCount) { - return; - } - return convertAlias(node, parent, doc, lineCounter); - } -} -function convertMap(node, parent, doc, lineCounter) { - let range; - if (node.flow && !node.range) { - range = collectFlowMapRange(node); - } else { - range = node.range; - } - const result = new ObjectASTNodeImpl2(parent, node, ...toFixedOffsetLength(range, lineCounter)); - for (const it of node.items) { - if (isPair(it)) { - result.properties.push(convertAST(result, it, doc, lineCounter)); - } - } - return result; -} -function convertPair(node, parent, doc, lineCounter) { - const keyNode = node.key; - const valueNode = node.value; - const rangeStart = keyNode.range[0]; - let rangeEnd = keyNode.range[1]; - let nodeEnd = keyNode.range[2]; - if (valueNode) { - rangeEnd = valueNode.range[1]; - nodeEnd = valueNode.range[2]; - } - const result = new PropertyASTNodeImpl2(parent, node, ...toFixedOffsetLength([rangeStart, rangeEnd, nodeEnd], lineCounter)); - if (isAlias(keyNode)) { - const keyAlias = new StringASTNodeImpl2(parent, keyNode, ...toOffsetLength(keyNode.range)); - keyAlias.value = keyNode.source; - result.keyNode = keyAlias; - } else { - result.keyNode = convertAST(result, keyNode, doc, lineCounter); - } - result.valueNode = convertAST(result, valueNode, doc, lineCounter); - return result; -} -function convertSeq(node, parent, doc, lineCounter) { - const result = new ArrayASTNodeImpl2(parent, node, ...toOffsetLength(node.range)); - for (const it of node.items) { - if (isNode(it)) { - result.children.push(convertAST(result, it, doc, lineCounter)); - } - } - return result; -} -function convertScalar(node, parent) { - if (node.value === null) { - return new NullASTNodeImpl2(parent, node, ...toOffsetLength(node.range)); - } - switch (typeof node.value) { - case "string": { - const result = new StringASTNodeImpl2(parent, node, ...toOffsetLength(node.range)); - result.value = node.value; - return result; - } - case "boolean": - return new BooleanASTNodeImpl2(parent, node, node.value, ...toOffsetLength(node.range)); - case "number": { - const result = new NumberASTNodeImpl2(parent, node, ...toOffsetLength(node.range)); - result.value = node.value; - result.isInteger = Number.isInteger(result.value); - return result; - } - } -} -function convertAlias(node, parent, doc, lineCounter) { - refDepth++; - return convertAST(parent, node.resolve(doc), doc, lineCounter); -} -function toOffsetLength(range) { - return [range[0], range[1] - range[0]]; -} -function toFixedOffsetLength(range, lineCounter) { - const start = lineCounter.linePos(range[0]); - const end = lineCounter.linePos(range[1]); - const result = [range[0], range[1] - range[0]]; - if (start.line !== end.line && (lineCounter.lineStarts.length !== end.line || end.col === 1)) { - result[1]--; - } - return result; -} -function collectFlowMapRange(node) { - let start = Number.MAX_SAFE_INTEGER; - let end = 0; - for (const it of node.items) { - if (isPair(it)) { - if (isNode(it.key)) { - if (it.key.range && it.key.range[0] <= start) { - start = it.key.range[0]; - } - } - if (isNode(it.value)) { - if (it.value.range && it.value.range[2] >= end) { - end = it.value.range[2]; - } - } - } - } - return [start, end, end]; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/utils/astUtils.js -import { isDocument, isScalar as isScalar2, visit } from "yaml"; -function getParent(doc, nodeToFind) { - let parentNode; - visit(doc, (_, node, path5) => { - if (node === nodeToFind) { - parentNode = path5[path5.length - 1]; - return visit.BREAK; - } - }); - if (isDocument(parentNode)) { - return void 0; - } - return parentNode; -} -function isMapContainsEmptyPair(map) { - if (map.items.length > 1) { - return false; - } - const pair = map.items[0]; - if (isScalar2(pair.key) && isScalar2(pair.value) && pair.key.value === "" && !pair.value.value) { - return true; - } - return false; -} -function indexOf(seq, item) { - for (const [i, obj] of seq.items.entries()) { - if (item === obj) { - return i; - } - } - return void 0; -} -function isInComment(tokens, offset) { - let inComment = false; - for (const token of tokens) { - if (token.type === "document") { - _visit([], token, (item) => { - var _a; - if (isCollectionItem(item) && ((_a = item.value) === null || _a === void 0 ? void 0 : _a.type) === "comment") { - if (token.offset <= offset && item.value.source.length + item.value.offset >= offset) { - inComment = true; - return visit.BREAK; - } - } else if (item.type === "comment" && item.offset <= offset && item.offset + item.source.length >= offset) { - inComment = true; - return visit.BREAK; - } - }); - } else if (token.type === "comment") { - if (token.offset <= offset && token.source.length + token.offset >= offset) { - return true; - } - } - if (inComment) { - break; - } - } - return inComment; -} -function isCollectionItem(token) { - return token["start"] !== void 0; -} -function _visit(path5, item, visitor) { - let ctrl = visitor(item, path5); - if (typeof ctrl === "symbol") - return ctrl; - for (const field of ["key", "value"]) { - const token2 = item[field]; - if (token2 && "items" in token2) { - for (let i = 0; i < token2.items.length; ++i) { - const ci = _visit(Object.freeze(path5.concat([[field, i]])), token2.items[i], visitor); - if (typeof ci === "number") - i = ci - 1; - else if (ci === visit.BREAK) - return visit.BREAK; - else if (ci === visit.REMOVE) { - token2.items.splice(i, 1); - i -= 1; - } - } - if (typeof ctrl === "function" && field === "key") - ctrl = ctrl(item, path5); - } - } - const token = item["sep"]; - if (token) { - for (let i = 0; i < token.length; ++i) { - const ci = _visit(Object.freeze(path5), token[i], visitor); - if (typeof ci === "number") - i = ci - 1; - else if (ci === visit.BREAK) - return visit.BREAK; - else if (ci === visit.REMOVE) { - token.items.splice(i, 1); - i -= 1; - } - } - } - return typeof ctrl === "function" ? ctrl(item, path5) : ctrl; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/yaml-documents.js -var SingleYAMLDocument = class extends JSONDocument2 { - constructor(lineCounter) { - super(null, []); - this.lineCounter = lineCounter; - } - collectLineComments() { - this._lineComments = []; - if (this._internalDocument.commentBefore) { - this._lineComments.push(`#${this._internalDocument.commentBefore}`); - } - visit2(this.internalDocument, (_key, node) => { - if (node === null || node === void 0 ? void 0 : node.commentBefore) { - this._lineComments.push(`#${node.commentBefore}`); - } - if (node === null || node === void 0 ? void 0 : node.comment) { - this._lineComments.push(`#${node.comment}`); - } - }); - if (this._internalDocument.comment) { - this._lineComments.push(`#${this._internalDocument.comment}`); - } - } - set internalDocument(document) { - this._internalDocument = document; - this.root = convertAST(null, this._internalDocument.contents, this._internalDocument, this.lineCounter); - } - get internalDocument() { - return this._internalDocument; - } - get lineComments() { - if (!this._lineComments) { - this.collectLineComments(); - } - return this._lineComments; - } - set lineComments(val) { - this._lineComments = val; - } - get errors() { - return this.internalDocument.errors.map(YAMLErrorToYamlDocDiagnostics); - } - get warnings() { - return this.internalDocument.warnings.map(YAMLErrorToYamlDocDiagnostics); - } - getSchemas(schema, doc, node) { - const matchingSchemas = []; - doc.validate(schema, matchingSchemas, node.start); - return matchingSchemas; - } - getNodeFromPosition(positionOffset, textBuffer) { - const position = textBuffer.getPosition(positionOffset); - const lineContent = textBuffer.getLineContent(position.line); - if (lineContent.trim().length === 0) { - return [this.findClosestNode(positionOffset, textBuffer), true]; - } - let closestNode; - visit2(this.internalDocument, (key, node) => { - if (!node) { - return; - } - const range = node.range; - if (!range) { - return; - } - if (range[0] <= positionOffset && range[1] >= positionOffset) { - closestNode = node; - } else { - return visit2.SKIP; - } - }); - return [closestNode, false]; - } - findClosestNode(offset, textBuffer) { - let offsetDiff = this.internalDocument.range[2]; - let maxOffset = this.internalDocument.range[0]; - let closestNode; - visit2(this.internalDocument, (key, node) => { - if (!node) { - return; - } - const range = node.range; - if (!range) { - return; - } - const diff = Math.abs(range[2] - offset); - if (maxOffset <= range[0] && diff <= offsetDiff) { - offsetDiff = diff; - maxOffset = range[0]; - closestNode = node; - } - }); - const position = textBuffer.getPosition(offset); - const lineContent = textBuffer.getLineContent(position.line); - const indentation = getIndentation(lineContent, position.character); - if (isScalar3(closestNode) && closestNode.value === null) { - return closestNode; - } - if (indentation === position.character) { - closestNode = this.getProperParentByIndentation(indentation, closestNode, textBuffer); - } - return closestNode; - } - getProperParentByIndentation(indentation, node, textBuffer) { - if (!node) { - return this.internalDocument.contents; - } - if (node.range) { - const position = textBuffer.getPosition(node.range[0]); - if (position.character !== indentation && position.character > 0) { - const parent = this.getParent(node); - if (parent) { - return this.getProperParentByIndentation(indentation, parent, textBuffer); - } - } else { - return node; - } - } else if (isPair2(node)) { - const parent = this.getParent(node); - return this.getProperParentByIndentation(indentation, parent, textBuffer); - } - return node; - } - getParent(node) { - return getParent(this.internalDocument, node); - } -}; -var YAMLDocument = class { - constructor(documents, tokens) { - this.documents = documents; - this.tokens = tokens; - this.errors = []; - this.warnings = []; - } -}; -var YamlDocuments = class { - constructor() { - this.cache = new Map(); - } - getYamlDocument(document, parserOptions, addRootObject = false) { - this.ensureCache(document, parserOptions !== null && parserOptions !== void 0 ? parserOptions : defaultOptions, addRootObject); - return this.cache.get(document.uri).document; - } - clear() { - this.cache.clear(); - } - ensureCache(document, parserOptions, addRootObject) { - const key = document.uri; - if (!this.cache.has(key)) { - this.cache.set(key, { version: -1, document: new YAMLDocument([], []), parserOptions: defaultOptions }); - } - const cacheEntry = this.cache.get(key); - if (cacheEntry.version !== document.version || parserOptions.customTags && !isArrayEqual(cacheEntry.parserOptions.customTags, parserOptions.customTags)) { - let text = document.getText(); - if (addRootObject && !/\S/.test(text)) { - text = `{${text}}`; - } - const doc = parse3(text, parserOptions); - cacheEntry.document = doc; - cacheEntry.version = document.version; - cacheEntry.parserOptions = parserOptions; - } - } -}; -var yamlDocumentsCache = new YamlDocuments(); -function YAMLErrorToYamlDocDiagnostics(error) { - return { - message: error.message, - location: { - start: error.pos[0], - end: error.pos[1], - toLineEnd: true - }, - severity: 1, - code: ErrorCode.Undefined - }; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/custom-tag-provider.js -import { isSeq as isSeq2, isMap as isMap2 } from "yaml"; -var CommonTagImpl = class { - constructor(tag, type) { - this.tag = tag; - this.type = type; - } - get collection() { - if (this.type === "mapping") { - return "map"; - } - if (this.type === "sequence") { - return "seq"; - } - return void 0; - } - resolve(value) { - if (isMap2(value) && this.type === "mapping") { - return value; - } - if (isSeq2(value) && this.type === "sequence") { - return value; - } - if (typeof value === "string" && this.type === "scalar") { - return value; - } - } -}; -var IncludeTag = class { - constructor() { - this.tag = "!include"; - this.type = "scalar"; - } - resolve(value, onError) { - if (value && value.length > 0 && value.trim()) { - return value; - } - onError("!include without value"); - } -}; -function getCustomTags(customTags) { - const tags = []; - const filteredTags = filterInvalidCustomTags(customTags); - for (const tag of filteredTags) { - const typeInfo = tag.split(" "); - const tagName = typeInfo[0]; - const tagType = typeInfo[1] && typeInfo[1].toLowerCase() || "scalar"; - tags.push(new CommonTagImpl(tagName, tagType)); - } - tags.push(new IncludeTag()); - return tags; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/yamlParser07.js -"use strict"; -var defaultOptions = { - customTags: [], - yamlVersion: "1.2" -}; -function parse3(text, parserOptions = defaultOptions) { - const options = { - strict: false, - customTags: getCustomTags(parserOptions.customTags), - version: parserOptions.yamlVersion - }; - const composer = new Composer(options); - const lineCounter = new LineCounter(); - const parser2 = new Parser5(lineCounter.addNewLine); - const tokens = parser2.parse(text); - const tokensArr = Array.from(tokens); - const docs = composer.compose(tokensArr, true, text.length); - const yamlDocs = Array.from(docs, (doc) => parsedDocToSingleYAMLDocument(doc, lineCounter)); - return new YAMLDocument(yamlDocs, tokensArr); -} -function parsedDocToSingleYAMLDocument(parsedDoc, lineCounter) { - const syd = new SingleYAMLDocument(lineCounter); - syd.internalDocument = parsedDoc; - return syd; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/modelineUtil.js -"use strict"; -function getSchemaFromModeline(doc) { - if (doc instanceof SingleYAMLDocument) { - const yamlLanguageServerModeline = doc.lineComments.find((lineComment) => { - return isModeline(lineComment); - }); - if (yamlLanguageServerModeline != void 0) { - const schemaMatchs = yamlLanguageServerModeline.match(/\$schema=\S+/g); - if (schemaMatchs !== null && schemaMatchs.length >= 1) { - if (schemaMatchs.length >= 2) { - console.log("Several $schema attributes have been found on the yaml-language-server modeline. The first one will be picked."); - } - return schemaMatchs[0].substring("$schema=".length); - } - } - } - return void 0; -} -function isModeline(lineText) { - const matchModeline = lineText.match(/^#\s+yaml-language-server\s*:/g); - return matchModeline !== null && matchModeline.length === 1; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlSchemaService.js -"use strict"; -var __awaiter = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); - }); - } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var localize8 = loadMessageBundle(); -var MODIFICATION_ACTIONS; -(function(MODIFICATION_ACTIONS2) { - MODIFICATION_ACTIONS2[MODIFICATION_ACTIONS2["delete"] = 0] = "delete"; - MODIFICATION_ACTIONS2[MODIFICATION_ACTIONS2["add"] = 1] = "add"; - MODIFICATION_ACTIONS2[MODIFICATION_ACTIONS2["deleteAll"] = 2] = "deleteAll"; -})(MODIFICATION_ACTIONS || (MODIFICATION_ACTIONS = {})); -var YAMLSchemaService = class extends JSONSchemaService { - constructor(requestService, contextService, promiseConstructor) { - super(requestService, contextService, promiseConstructor); - this.schemaUriToNameAndDescription = new Map(); - this.customSchemaProvider = void 0; - this.requestService = requestService; - this.schemaPriorityMapping = new Map(); - } - registerCustomSchemaProvider(customSchemaProvider) { - this.customSchemaProvider = customSchemaProvider; - } - getAllSchemas() { - const result = []; - const schemaUris = new Set(); - for (const filePattern of this.filePatternAssociations) { - const schemaUri = filePattern.uris[0]; - if (schemaUris.has(schemaUri)) { - continue; - } - schemaUris.add(schemaUri); - const schemaHandle = { - uri: schemaUri, - fromStore: false, - usedForCurrentFile: false - }; - if (this.schemaUriToNameAndDescription.has(schemaUri)) { - const [name, description] = this.schemaUriToNameAndDescription.get(schemaUri); - schemaHandle.name = name; - schemaHandle.description = description; - schemaHandle.fromStore = true; - } - result.push(schemaHandle); - } - return result; - } - resolveSchemaContent(schemaToResolve, schemaURL, dependencies) { - return __awaiter(this, void 0, void 0, function* () { - const resolveErrors = schemaToResolve.errors.slice(0); - let schema = schemaToResolve.schema; - const contextService = this.contextService; - const findSection = (schema2, path5) => { - if (!path5) { - return schema2; - } - let current = schema2; - if (path5[0] === "/") { - path5 = path5.substr(1); - } - path5.split("/").some((part) => { - current = current[part]; - return !current; - }); - return current; - }; - const merge = (target, sourceRoot, sourceURI, path5) => { - const section = findSection(sourceRoot, path5); - if (section) { - for (const key in section) { - if (Object.prototype.hasOwnProperty.call(section, key) && !Object.prototype.hasOwnProperty.call(target, key)) { - target[key] = section[key]; - } - } - } else { - resolveErrors.push(localize8("json.schema.invalidref", "$ref '{0}' in '{1}' can not be resolved.", path5, sourceURI)); - } - }; - const resolveExternalLink = (node, uri, linkPath, parentSchemaURL, parentSchemaDependencies) => { - if (contextService && !/^\w+:\/\/.*/.test(uri)) { - uri = contextService.resolveRelativePath(uri, parentSchemaURL); - } - uri = this.normalizeId(uri); - const referencedHandle = this.getOrAddSchemaHandle(uri); - return referencedHandle.getUnresolvedSchema().then((unresolvedSchema) => { - parentSchemaDependencies[uri] = true; - if (unresolvedSchema.errors.length) { - const loc = linkPath ? uri + "#" + linkPath : uri; - resolveErrors.push(localize8("json.schema.problemloadingref", "Problems loading reference '{0}': {1}", loc, unresolvedSchema.errors[0])); - } - merge(node, unresolvedSchema.schema, uri, linkPath); - node.url = uri; - return resolveRefs(node, unresolvedSchema.schema, uri, referencedHandle.dependencies); - }); - }; - const resolveRefs = (node, parentSchema, parentSchemaURL, parentSchemaDependencies) => __awaiter(this, void 0, void 0, function* () { - if (!node || typeof node !== "object") { - return null; - } - const toWalk = [node]; - const seen = []; - const openPromises = []; - const collectEntries = (...entries) => { - for (const entry of entries) { - if (typeof entry === "object") { - toWalk.push(entry); - } - } - }; - const collectMapEntries = (...maps) => { - for (const map of maps) { - if (typeof map === "object") { - for (const key in map) { - const entry = map[key]; - if (typeof entry === "object") { - toWalk.push(entry); - } - } - } - } - }; - const collectArrayEntries = (...arrays) => { - for (const array of arrays) { - if (Array.isArray(array)) { - for (const entry of array) { - if (typeof entry === "object") { - toWalk.push(entry); - } - } - } - } - }; - const handleRef = (next) => { - const seenRefs = []; - while (next.$ref) { - const ref = next.$ref; - const segments = ref.split("#", 2); - next._$ref = next.$ref; - delete next.$ref; - if (segments[0].length > 0) { - openPromises.push(resolveExternalLink(next, segments[0], segments[1], parentSchemaURL, parentSchemaDependencies)); - return; - } else { - if (seenRefs.indexOf(ref) === -1) { - merge(next, parentSchema, parentSchemaURL, segments[1]); - seenRefs.push(ref); - } - } - } - collectEntries(next.items, next.additionalItems, next.additionalProperties, next.not, next.contains, next.propertyNames, next.if, next.then, next.else); - collectMapEntries(next.definitions, next.properties, next.patternProperties, next.dependencies); - collectArrayEntries(next.anyOf, next.allOf, next.oneOf, next.items, next.schemaSequence); - }; - if (parentSchemaURL.indexOf("#") > 0) { - const segments = parentSchemaURL.split("#", 2); - if (segments[0].length > 0 && segments[1].length > 0) { - const newSchema = {}; - yield resolveExternalLink(newSchema, segments[0], segments[1], parentSchemaURL, parentSchemaDependencies); - for (const key in schema) { - if (key === "required") { - continue; - } - if (Object.prototype.hasOwnProperty.call(schema, key) && !Object.prototype.hasOwnProperty.call(newSchema, key)) { - newSchema[key] = schema[key]; - } - } - schema = newSchema; - } - } - while (toWalk.length) { - const next = toWalk.pop(); - if (seen.indexOf(next) >= 0) { - continue; - } - seen.push(next); - handleRef(next); - } - return Promise.all(openPromises); - }); - yield resolveRefs(schema, schema, schemaURL, dependencies); - return new ResolvedSchema(schema, resolveErrors); - }); - } - getSchemaForResource(resource, doc) { - const resolveSchema = () => { - const seen = Object.create(null); - const schemas = []; - let schemaFromModeline = getSchemaFromModeline(doc); - if (schemaFromModeline !== void 0) { - if (!schemaFromModeline.startsWith("file:") && !schemaFromModeline.startsWith("http")) { - if (!isAbsolute(schemaFromModeline)) { - const resUri = URI.parse(resource); - schemaFromModeline = URI.file(resolve(parse5(resUri.fsPath).dir, schemaFromModeline)).toString(); - } else { - schemaFromModeline = URI.file(schemaFromModeline).toString(); - } - } - this.addSchemaPriority(schemaFromModeline, SchemaPriority.Modeline); - schemas.push(schemaFromModeline); - seen[schemaFromModeline] = true; - } - for (const entry of this.filePatternAssociations) { - if (entry.matchesPattern(resource)) { - for (const schemaId of entry.getURIs()) { - if (!seen[schemaId]) { - schemas.push(schemaId); - seen[schemaId] = true; - } - } - } - } - const normalizedResourceID = this.normalizeId(resource); - if (this.schemasById[normalizedResourceID]) { - schemas.push(normalizedResourceID); - } - if (schemas.length > 0) { - const highestPrioSchemas = this.highestPrioritySchemas(schemas); - const schemaHandle = super.createCombinedSchema(resource, highestPrioSchemas); - return schemaHandle.getResolvedSchema().then((schema) => { - if (schema.schema && typeof schema.schema !== "string") { - schema.schema.url = schemaHandle.url; - } - if (schema.schema && schema.schema.schemaSequence && schema.schema.schemaSequence[doc.currentDocIndex]) { - return new ResolvedSchema(schema.schema.schemaSequence[doc.currentDocIndex]); - } - return schema; - }); - } - return Promise.resolve(null); - }; - if (this.customSchemaProvider) { - return this.customSchemaProvider(resource).then((schemaUri) => { - if (Array.isArray(schemaUri)) { - if (schemaUri.length === 0) { - return resolveSchema(); - } - return Promise.all(schemaUri.map((schemaUri2) => { - return this.resolveCustomSchema(schemaUri2, doc); - })).then((schemas) => { - return { - errors: [], - schema: { - anyOf: schemas.map((schemaObj) => { - return schemaObj.schema; - }) - } - }; - }, () => { - return resolveSchema(); - }); - } - if (!schemaUri) { - return resolveSchema(); - } - return this.resolveCustomSchema(schemaUri, doc); - }).then((schema) => { - return schema; - }, () => { - return resolveSchema(); - }); - } else { - return resolveSchema(); - } - } - addSchemaPriority(uri, priority) { - let currSchemaArray = this.schemaPriorityMapping.get(uri); - if (currSchemaArray) { - currSchemaArray = currSchemaArray.add(priority); - this.schemaPriorityMapping.set(uri, currSchemaArray); - } else { - this.schemaPriorityMapping.set(uri, new Set().add(priority)); - } - } - highestPrioritySchemas(schemas) { - let highestPrio = 0; - const priorityMapping = new Map(); - schemas.forEach((schema) => { - const priority = this.schemaPriorityMapping.get(schema) || [0]; - priority.forEach((prio) => { - if (prio > highestPrio) { - highestPrio = prio; - } - let currPriorityArray = priorityMapping.get(prio); - if (currPriorityArray) { - currPriorityArray = currPriorityArray.concat(schema); - priorityMapping.set(prio, currPriorityArray); - } else { - priorityMapping.set(prio, [schema]); - } - }); - }); - return priorityMapping.get(highestPrio) || []; - } - resolveCustomSchema(schemaUri, doc) { - return __awaiter(this, void 0, void 0, function* () { - const unresolvedSchema = yield this.loadSchema(schemaUri); - const schema = yield this.resolveSchemaContent(unresolvedSchema, schemaUri, []); - if (schema.schema) { - schema.schema.url = schemaUri; - } - if (schema.schema && schema.schema.schemaSequence && schema.schema.schemaSequence[doc.currentDocIndex]) { - return new ResolvedSchema(schema.schema.schemaSequence[doc.currentDocIndex]); - } - return schema; - }); - } - saveSchema(schemaId, schemaContent) { - return __awaiter(this, void 0, void 0, function* () { - const id = this.normalizeId(schemaId); - this.getOrAddSchemaHandle(id, schemaContent); - this.schemaPriorityMapping.set(id, new Set().add(SchemaPriority.Settings)); - return Promise.resolve(void 0); - }); - } - deleteSchemas(deletions) { - return __awaiter(this, void 0, void 0, function* () { - deletions.schemas.forEach((s) => { - this.deleteSchema(s); - }); - return Promise.resolve(void 0); - }); - } - deleteSchema(schemaId) { - return __awaiter(this, void 0, void 0, function* () { - const id = this.normalizeId(schemaId); - if (this.schemasById[id]) { - delete this.schemasById[id]; - } - this.schemaPriorityMapping.delete(id); - return Promise.resolve(void 0); - }); - } - addContent(additions) { - return __awaiter(this, void 0, void 0, function* () { - const schema = yield this.getResolvedSchema(additions.schema); - if (schema) { - const resolvedSchemaLocation = this.resolveJSONSchemaToSection(schema.schema, additions.path); - if (typeof resolvedSchemaLocation === "object") { - resolvedSchemaLocation[additions.key] = additions.content; - } - yield this.saveSchema(additions.schema, schema.schema); - } - }); - } - deleteContent(deletions) { - return __awaiter(this, void 0, void 0, function* () { - const schema = yield this.getResolvedSchema(deletions.schema); - if (schema) { - const resolvedSchemaLocation = this.resolveJSONSchemaToSection(schema.schema, deletions.path); - if (typeof resolvedSchemaLocation === "object") { - delete resolvedSchemaLocation[deletions.key]; - } - yield this.saveSchema(deletions.schema, schema.schema); - } - }); - } - resolveJSONSchemaToSection(schema, paths) { - const splitPathway = paths.split("/"); - let resolvedSchemaLocation = schema; - for (const path5 of splitPathway) { - if (path5 === "") { - continue; - } - this.resolveNext(resolvedSchemaLocation, path5); - resolvedSchemaLocation = resolvedSchemaLocation[path5]; - } - return resolvedSchemaLocation; - } - resolveNext(object, token) { - if (Array.isArray(object) && isNaN(token)) { - throw new Error("Expected a number after the array object"); - } else if (typeof object === "object" && typeof token !== "string") { - throw new Error("Expected a string after the object"); - } - } - normalizeId(id) { - try { - return URI.parse(id).toString(); - } catch (e) { - return id; - } - } - getOrAddSchemaHandle(id, unresolvedSchemaContent) { - return super.getOrAddSchemaHandle(id, unresolvedSchemaContent); - } - loadSchema(schemaUri) { - const requestService = this.requestService; - return super.loadSchema(schemaUri).then((unresolvedJsonSchema) => { - if (unresolvedJsonSchema.errors && unresolvedJsonSchema.schema === void 0) { - return requestService(schemaUri).then((content) => { - if (!content) { - const errorMessage = localize8("json.schema.nocontent", "Unable to load schema from '{0}': No content.", toDisplayString2(schemaUri)); - return new UnresolvedSchema({}, [errorMessage]); - } - try { - const schemaContent = parse4(content); - return new UnresolvedSchema(schemaContent, []); - } catch (yamlError) { - const errorMessage = localize8("json.schema.invalidFormat", "Unable to parse content from '{0}': {1}.", toDisplayString2(schemaUri), yamlError); - return new UnresolvedSchema({}, [errorMessage]); - } - }, (error) => { - let errorMessage = error.toString(); - const errorSplit = error.toString().split("Error: "); - if (errorSplit.length > 1) { - errorMessage = errorSplit[1]; - } - return new UnresolvedSchema({}, [errorMessage]); - }); - } - unresolvedJsonSchema.uri = schemaUri; - if (this.schemaUriToNameAndDescription.has(schemaUri)) { - const [name, description] = this.schemaUriToNameAndDescription.get(schemaUri); - unresolvedJsonSchema.schema.title = name !== null && name !== void 0 ? name : unresolvedJsonSchema.schema.title; - unresolvedJsonSchema.schema.description = description !== null && description !== void 0 ? description : unresolvedJsonSchema.schema.description; - } - return unresolvedJsonSchema; - }); - } - registerExternalSchema(uri, filePatterns, unresolvedSchema, name, description) { - if (name || description) { - this.schemaUriToNameAndDescription.set(uri, [name, description]); - } - return super.registerExternalSchema(uri, filePatterns, unresolvedSchema); - } - clearExternalSchemas() { - super.clearExternalSchemas(); - } - setSchemaContributions(schemaContributions2) { - super.setSchemaContributions(schemaContributions2); - } - getRegisteredSchemaIds(filter) { - return super.getRegisteredSchemaIds(filter); - } - getResolvedSchema(schemaId) { - return super.getResolvedSchema(schemaId); - } - onResourceChange(uri) { - return super.onResourceChange(uri); - } -}; -function toDisplayString2(url) { - try { - const uri = URI.parse(url); - if (uri.scheme === "file") { - return uri.fsPath; - } - } catch (e) { - } - return url; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/documentSymbols.js -"use strict"; -var YAMLDocumentSymbols = class { - constructor(schemaService, telemetry) { - this.telemetry = telemetry; - this.jsonDocumentSymbols = new JSONDocumentSymbols(schemaService); - const origKeyLabel = this.jsonDocumentSymbols.getKeyLabel; - this.jsonDocumentSymbols.getKeyLabel = (property) => { - if (typeof property.keyNode.value === "object") { - return property.keyNode.value.value; - } else { - return origKeyLabel.call(this.jsonDocumentSymbols, property); - } - }; - } - findDocumentSymbols(document, context = { resultLimit: Number.MAX_VALUE }) { - let results = []; - try { - const doc = yamlDocumentsCache.getYamlDocument(document); - if (!doc || doc["documents"].length === 0) { - return null; - } - for (const yamlDoc of doc["documents"]) { - if (yamlDoc.root) { - results = results.concat(this.jsonDocumentSymbols.findDocumentSymbols(document, yamlDoc, context)); - } - } - } catch (err) { - this.telemetry.sendError("yaml.documentSymbols.error", { error: err, documentUri: document.uri }); - } - return results; - } - findHierarchicalDocumentSymbols(document, context = { resultLimit: Number.MAX_VALUE }) { - let results = []; - try { - const doc = yamlDocumentsCache.getYamlDocument(document); - if (!doc || doc["documents"].length === 0) { - return null; - } - for (const yamlDoc of doc["documents"]) { - if (yamlDoc.root) { - results = results.concat(this.jsonDocumentSymbols.findDocumentSymbols2(document, yamlDoc, context)); - } - } - } catch (err) { - this.telemetry.sendError("yaml.hierarchicalDocumentSymbols.error", { error: err, documentUri: document.uri }); - } - return results; - } -}; - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlHover.js -import { Range as Range3 } from "vscode-languageserver-types"; - -// node_modules/yaml-language-server/lib/esm/languageservice/parser/isKubernetes.js -function setKubernetesParserOption(jsonDocuments, option) { - for (const jsonDoc of jsonDocuments) { - jsonDoc.isKubernetes = option; - } -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlHover.js -import { - basename -} from "path-browserify"; -"use strict"; -var YAMLHover = class { - constructor(schemaService, telemetry) { - this.telemetry = telemetry; - this.shouldHover = true; - this.schemaService = schemaService; - } - configure(languageSettings) { - if (languageSettings) { - this.shouldHover = languageSettings.hover; - } - } - doHover(document, position, isKubernetes = false) { - try { - if (!this.shouldHover || !document) { - return Promise.resolve(void 0); - } - const doc = yamlDocumentsCache.getYamlDocument(document); - const offset = document.offsetAt(position); - const currentDoc = matchOffsetToDocument(offset, doc); - if (currentDoc === null) { - return Promise.resolve(void 0); - } - setKubernetesParserOption(doc.documents, isKubernetes); - const currentDocIndex = doc.documents.indexOf(currentDoc); - currentDoc.currentDocIndex = currentDocIndex; - return this.getHover(document, position, currentDoc); - } catch (error) { - this.telemetry.sendError("yaml.hover.error", { error, documentUri: document.uri }); - } - } - getHover(document, position, doc) { - const offset = document.offsetAt(position); - let node = doc.getNodeFromOffset(offset); - if (!node || (node.type === "object" || node.type === "array") && offset > node.offset + 1 && offset < node.offset + node.length - 1) { - return Promise.resolve(null); - } - const hoverRangeNode = node; - if (node.type === "string") { - const parent = node.parent; - if (parent && parent.type === "property" && parent.keyNode === node) { - node = parent.valueNode; - if (!node) { - return Promise.resolve(null); - } - } - } - const hoverRange = Range3.create(document.positionAt(hoverRangeNode.offset), document.positionAt(hoverRangeNode.offset + hoverRangeNode.length)); - const createHover = (contents) => { - const markupContent = { - kind: "markdown", - value: contents - }; - const result = { - contents: markupContent, - range: hoverRange - }; - return result; - }; - return this.schemaService.getSchemaForResource(document.uri, doc).then((schema) => { - if (schema && node && !schema.errors.length) { - const matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset); - let title = void 0; - let markdownDescription = void 0; - let markdownEnumValueDescription = void 0, enumValue = void 0; - matchingSchemas.every((s) => { - if (s.node === node && !s.inverted && s.schema) { - title = title || s.schema.title; - markdownDescription = markdownDescription || s.schema.markdownDescription || toMarkdown2(s.schema.description); - if (s.schema.enum) { - const idx = s.schema.enum.indexOf(getNodeValue4(node)); - if (s.schema.markdownEnumDescriptions) { - markdownEnumValueDescription = s.schema.markdownEnumDescriptions[idx]; - } else if (s.schema.enumDescriptions) { - markdownEnumValueDescription = toMarkdown2(s.schema.enumDescriptions[idx]); - } - if (markdownEnumValueDescription) { - enumValue = s.schema.enum[idx]; - if (typeof enumValue !== "string") { - enumValue = JSON.stringify(enumValue); - } - } - } - } - return true; - }); - let result = ""; - if (title) { - result = "#### " + toMarkdown2(title); - } - if (markdownDescription) { - if (result.length > 0) { - result += "\n\n"; - } - result += markdownDescription; - } - if (markdownEnumValueDescription) { - if (result.length > 0) { - result += "\n\n"; - } - result += `\`${toMarkdownCodeBlock2(enumValue)}\`: ${markdownEnumValueDescription}`; - } - if (result.length > 0 && schema.schema.url) { - result += ` - -Source: [${getSchemaName(schema.schema)}](${schema.schema.url})`; - } - return createHover(result); - } - return null; - }); - } -}; -function getSchemaName(schema) { - let result = "JSON Schema"; - const urlString = schema.url; - if (urlString) { - const url = URI.parse(urlString); - result = basename(url.fsPath); - } else if (schema.title) { - result = schema.title; - } - return result; -} -function toMarkdown2(plain) { - if (plain) { - const res = plain.replace(/([^\n\r])(\r?\n)([^\n\r])/gm, "$1\n\n$3"); - return res.replace(/[\\`*_{}[\]()#+\-.!]/g, "\\$&"); - } - return void 0; -} -function toMarkdownCodeBlock2(content) { - if (content.indexOf("`") !== -1) { - return "`` " + content + " ``"; - } - return content; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlValidation.js -import { Diagnostic as Diagnostic3, Position as Position2 } from "vscode-languageserver-types"; - -// node_modules/yaml-language-server/lib/esm/languageservice/utils/textBuffer.js -import { Range as Range4 } from "vscode-languageserver-types"; -var TextBuffer = class { - constructor(doc) { - this.doc = doc; - } - getLineCount() { - return this.doc.lineCount; - } - getLineLength(lineNumber) { - const lineOffsets = this.doc.getLineOffsets(); - if (lineNumber >= lineOffsets.length) { - return this.doc.getText().length; - } else if (lineNumber < 0) { - return 0; - } - const nextLineOffset = lineNumber + 1 < lineOffsets.length ? lineOffsets[lineNumber + 1] : this.doc.getText().length; - return nextLineOffset - lineOffsets[lineNumber]; - } - getLineContent(lineNumber) { - const lineOffsets = this.doc.getLineOffsets(); - if (lineNumber >= lineOffsets.length) { - return this.doc.getText(); - } else if (lineNumber < 0) { - return ""; - } - const nextLineOffset = lineNumber + 1 < lineOffsets.length ? lineOffsets[lineNumber + 1] : this.doc.getText().length; - return this.doc.getText().substring(lineOffsets[lineNumber], nextLineOffset); - } - getLineCharCode(lineNumber, index) { - return this.doc.getText(Range4.create(lineNumber - 1, index - 1, lineNumber - 1, index)).charCodeAt(0); - } - getText(range) { - return this.doc.getText(range); - } - getPosition(offest) { - return this.doc.positionAt(offest); - } -}; - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlValidation.js -"use strict"; -var __awaiter2 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); - }); - } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var yamlDiagToLSDiag = (yamlDiag, textDocument) => { - const start = textDocument.positionAt(yamlDiag.location.start); - const range = { - start, - end: yamlDiag.location.toLineEnd ? Position2.create(start.line, new TextBuffer(textDocument).getLineLength(start.line)) : textDocument.positionAt(yamlDiag.location.end) - }; - return Diagnostic3.create(range, yamlDiag.message, yamlDiag.severity, yamlDiag.code, YAML_SOURCE); -}; -var YAMLValidation = class { - constructor(schemaService) { - this.MATCHES_MULTIPLE = "Matches multiple schemas when only one must validate."; - this.validationEnabled = true; - this.jsonValidation = new JSONValidation(schemaService, Promise); - } - configure(settings) { - if (settings) { - this.validationEnabled = settings.validate; - this.customTags = settings.customTags; - this.disableAdditionalProperties = settings.disableAdditionalProperties; - this.yamlVersion = settings.yamlVersion; - } - } - doValidation(textDocument, isKubernetes = false) { - return __awaiter2(this, void 0, void 0, function* () { - if (!this.validationEnabled) { - return Promise.resolve([]); - } - const validationResult = []; - try { - const yamlDocument = yamlDocumentsCache.getYamlDocument(textDocument, { customTags: this.customTags, yamlVersion: this.yamlVersion }, true); - let index = 0; - for (const currentYAMLDoc of yamlDocument.documents) { - currentYAMLDoc.isKubernetes = isKubernetes; - currentYAMLDoc.currentDocIndex = index; - currentYAMLDoc.disableAdditionalProperties = this.disableAdditionalProperties; - const validation = yield this.jsonValidation.doValidation(textDocument, currentYAMLDoc); - const syd = currentYAMLDoc; - if (syd.errors.length > 0) { - validationResult.push(...syd.errors); - } - if (syd.warnings.length > 0) { - validationResult.push(...syd.warnings); - } - validationResult.push(...validation); - index++; - } - } catch (err) { - console.error(err.toString()); - } - let previousErr; - const foundSignatures = new Set(); - const duplicateMessagesRemoved = []; - for (let err of validationResult) { - if (isKubernetes && err.message === this.MATCHES_MULTIPLE) { - continue; - } - if (Object.prototype.hasOwnProperty.call(err, "location")) { - err = yamlDiagToLSDiag(err, textDocument); - } - if (!err.source) { - err.source = YAML_SOURCE; - } - if (previousErr && previousErr.message === err.message && previousErr.range.end.line === err.range.start.line && Math.abs(previousErr.range.end.character - err.range.end.character) >= 1) { - previousErr.range.end = err.range.end; - continue; - } else { - previousErr = err; - } - const errSig = err.range.start.line + " " + err.range.start.character + " " + err.message; - if (!foundSignatures.has(errSig)) { - duplicateMessagesRemoved.push(err); - foundSignatures.add(errSig); - } - } - return duplicateMessagesRemoved; - }); - } -}; - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlFormatter.js -import { Range as Range5, Position as Position3, TextEdit as TextEdit2 } from "vscode-languageserver-types"; -import { - format as format2 -} from "prettier/standalone.js"; -import * as parser from "prettier/parser-yaml.js"; -"use strict"; -var YAMLFormatter = class { - constructor() { - this.formatterEnabled = true; - } - configure(shouldFormat) { - if (shouldFormat) { - this.formatterEnabled = shouldFormat.format; - } - } - format(document, options) { - if (!this.formatterEnabled) { - return []; - } - try { - const text = document.getText(); - const prettierOptions = { - parser: "yaml", - plugins: [parser], - tabWidth: options.tabWidth || options.tabSize, - singleQuote: options.singleQuote, - bracketSpacing: options.bracketSpacing, - proseWrap: options.proseWrap === "always" ? "always" : options.proseWrap === "never" ? "never" : "preserve", - printWidth: options.printWidth - }; - const formatted = format2(text, prettierOptions); - return [TextEdit2.replace(Range5.create(Position3.create(0, 0), document.positionAt(text.length)), formatted)]; - } catch (error) { - return []; - } - } -}; - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlLinks.js -function findLinks2(document) { - try { - const doc = yamlDocumentsCache.getYamlDocument(document); - const linkPromises = []; - for (const yamlDoc of doc.documents) { - linkPromises.push(findLinks(document, yamlDoc)); - } - return Promise.all(linkPromises).then((yamlLinkArray) => [].concat(...yamlLinkArray)); - } catch (err) { - this.telemetry.sendError("yaml.documentLink.error", { error: err }); - } -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlFolding.js -import { FoldingRange as FoldingRange2, Range as Range6 } from "vscode-languageserver-types"; -function getFoldingRanges2(document, context) { - if (!document) { - return; - } - const result = []; - const doc = yamlDocumentsCache.getYamlDocument(document); - for (const ymlDoc of doc.documents) { - ymlDoc.visit((node) => { - var _a; - if (node.type === "property" && node.valueNode.type === "array" || node.type === "object" && ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.type) === "array") { - result.push(creteNormalizedFolding(document, node)); - } - if (node.type === "property" && node.valueNode.type === "object") { - result.push(creteNormalizedFolding(document, node)); - } - return true; - }); - } - const rangeLimit = context && context.rangeLimit; - if (typeof rangeLimit !== "number" || result.length <= rangeLimit) { - return result; - } - if (context && context.onRangeLimitExceeded) { - context.onRangeLimitExceeded(document.uri); - } - return result.slice(0, context.rangeLimit); -} -function creteNormalizedFolding(document, node) { - const startPos = document.positionAt(node.offset); - let endPos = document.positionAt(node.offset + node.length); - const textFragment = document.getText(Range6.create(startPos, endPos)); - const newLength = textFragment.length - textFragment.trimRight().length; - if (newLength > 0) { - endPos = document.positionAt(node.offset + node.length - newLength); - } - return FoldingRange2.create(startPos.line, endPos.line, startPos.character, endPos.character); -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlCodeActions.js -import { CodeAction as CodeAction2, CodeActionKind as CodeActionKind2, Command as Command2, Position as Position4, Range as Range7, TextEdit as TextEdit3 } from "vscode-languageserver-types"; - -// node_modules/yaml-language-server/lib/esm/commands.js -var YamlCommands; -(function(YamlCommands2) { - YamlCommands2["JUMP_TO_SCHEMA"] = "jumpToSchema"; -})(YamlCommands || (YamlCommands = {})); - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlCodeActions.js -import { - basename as basename2 -} from "path-browserify"; -var YamlCodeActions = class { - constructor(clientCapabilities) { - this.clientCapabilities = clientCapabilities; - this.indentation = " "; - } - configure(settings) { - this.indentation = settings.indentation; - } - getCodeAction(document, params) { - if (!params.context.diagnostics) { - return; - } - const result = []; - result.push(...this.getJumpToSchemaActions(params.context.diagnostics)); - result.push(...this.getTabToSpaceConverting(params.context.diagnostics, document)); - return result; - } - getJumpToSchemaActions(diagnostics) { - var _a, _b, _c, _d, _e; - const isOpenTextDocumentEnabled = (_d = (_c = (_b = (_a = this.clientCapabilities) === null || _a === void 0 ? void 0 : _a.window) === null || _b === void 0 ? void 0 : _b.showDocument) === null || _c === void 0 ? void 0 : _c.support) !== null && _d !== void 0 ? _d : false; - if (!isOpenTextDocumentEnabled) { - return []; - } - const schemaUriToDiagnostic = new Map(); - for (const diagnostic of diagnostics) { - const schemaUri = ((_e = diagnostic.data) === null || _e === void 0 ? void 0 : _e.schemaUri) || []; - for (const schemaUriStr of schemaUri) { - if (schemaUriStr) { - if (!schemaUriToDiagnostic.has(schemaUriStr)) { - schemaUriToDiagnostic.set(schemaUriStr, []); - } - schemaUriToDiagnostic.get(schemaUriStr).push(diagnostic); - } - } - } - const result = []; - for (const schemaUri of schemaUriToDiagnostic.keys()) { - const action = CodeAction2.create(`Jump to schema location (${basename2(schemaUri)})`, Command2.create("JumpToSchema", YamlCommands.JUMP_TO_SCHEMA, schemaUri)); - action.diagnostics = schemaUriToDiagnostic.get(schemaUri); - result.push(action); - } - return result; - } - getTabToSpaceConverting(diagnostics, document) { - const result = []; - const textBuff = new TextBuffer(document); - const processedLine = []; - for (const diag of diagnostics) { - if (diag.message === "Using tabs can lead to unpredictable results") { - if (processedLine.includes(diag.range.start.line)) { - continue; - } - const lineContent = textBuff.getLineContent(diag.range.start.line); - let replacedTabs = 0; - let newText = ""; - for (let i = diag.range.start.character; i <= diag.range.end.character; i++) { - const char = lineContent.charAt(i); - if (char !== " ") { - break; - } - replacedTabs++; - newText += this.indentation; - } - processedLine.push(diag.range.start.line); - let resultRange = diag.range; - if (replacedTabs !== diag.range.end.character - diag.range.start.character) { - resultRange = Range7.create(diag.range.start, Position4.create(diag.range.end.line, diag.range.start.character + replacedTabs)); - } - result.push(CodeAction2.create("Convert Tab to Spaces", createWorkspaceEdit(document.uri, [TextEdit3.replace(resultRange, newText)]), CodeActionKind2.QuickFix)); - } - } - if (result.length !== 0) { - const replaceEdits = []; - for (let i = 0; i <= textBuff.getLineCount(); i++) { - const lineContent = textBuff.getLineContent(i); - let replacedTabs = 0; - let newText = ""; - for (let j = 0; j < lineContent.length; j++) { - const char = lineContent.charAt(j); - if (char !== " " && char !== " ") { - if (replacedTabs !== 0) { - replaceEdits.push(TextEdit3.replace(Range7.create(i, j - replacedTabs, i, j), newText)); - replacedTabs = 0; - newText = ""; - } - break; - } - if (char === " " && replacedTabs !== 0) { - replaceEdits.push(TextEdit3.replace(Range7.create(i, j - replacedTabs, i, j), newText)); - replacedTabs = 0; - newText = ""; - continue; - } - if (char === " ") { - newText += this.indentation; - replacedTabs++; - } - } - if (replacedTabs !== 0) { - replaceEdits.push(TextEdit3.replace(Range7.create(i, 0, i, textBuff.getLineLength(i)), newText)); - } - } - if (replaceEdits.length > 0) { - result.push(CodeAction2.create("Convert all Tabs to Spaces", createWorkspaceEdit(document.uri, replaceEdits), CodeActionKind2.QuickFix)); - } - } - return result; - } -}; -function createWorkspaceEdit(uri, edits) { - const changes = {}; - changes[uri] = edits; - const edit = { - changes - }; - return edit; -} - -// node_modules/yaml-language-server/lib/esm/languageserver/commandExecutor.js -var CommandExecutor = class { - constructor() { - this.commands = new Map(); - } - executeCommand(params) { - if (this.commands.has(params.command)) { - const handler = this.commands.get(params.command); - return handler(...params.arguments); - } - throw new Error(`Command '${params.command}' not found`); - } - registerCommand(commandId, handler) { - this.commands.set(commandId, handler); - } -}; -var commandExecutor = new CommandExecutor(); - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlOnTypeFormatting.js -import { Position as Position5, Range as Range8, TextEdit as TextEdit4 } from "vscode-languageserver-types"; -function doDocumentOnTypeFormatting(document, params) { - const { position } = params; - const tb = new TextBuffer(document); - if (params.ch === "\n") { - const previousLine = tb.getLineContent(position.line - 1); - if (previousLine.trimRight().endsWith(":")) { - const currentLine = tb.getLineContent(position.line); - const subLine = currentLine.substring(position.character, currentLine.length); - const isInArray = previousLine.indexOf(" - ") !== -1; - if (subLine.trimRight().length === 0) { - const indentationFix = position.character - (previousLine.length - previousLine.trimLeft().length); - if (indentationFix === params.options.tabSize && !isInArray) { - return; - } - const result = []; - if (currentLine.length > 0) { - result.push(TextEdit4.del(Range8.create(position, Position5.create(position.line, currentLine.length - 1)))); - } - result.push(TextEdit4.insert(position, " ".repeat(params.options.tabSize + (isInArray ? 2 - indentationFix : 0)))); - return result; - } - if (isInArray) { - return [TextEdit4.insert(position, " ".repeat(params.options.tabSize))]; - } - } - if (previousLine.trimRight().endsWith("|")) { - return [TextEdit4.insert(position, " ".repeat(params.options.tabSize))]; - } - if (previousLine.includes(" - ") && !previousLine.includes(": ")) { - return [TextEdit4.insert(position, "- ")]; - } - if (previousLine.includes(" - ") && previousLine.includes(": ")) { - return [TextEdit4.insert(position, " ")]; - } - } - return; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlCodeLens.js -import { CodeLens, Range as Range9 } from "vscode-languageserver-types"; -import { - basename as basename3, - extname -} from "path-browserify"; -var __awaiter3 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); - }); - } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var YamlCodeLens = class { - constructor(schemaService, telemetry) { - this.schemaService = schemaService; - this.telemetry = telemetry; - } - getCodeLens(document, params) { - return __awaiter3(this, void 0, void 0, function* () { - const result = []; - try { - const yamlDocument = yamlDocumentsCache.getYamlDocument(document); - for (const currentYAMLDoc of yamlDocument.documents) { - const schema = yield this.schemaService.getSchemaForResource(document.uri, currentYAMLDoc); - if (schema === null || schema === void 0 ? void 0 : schema.schema) { - const schemaUrls = getSchemaUrl(schema === null || schema === void 0 ? void 0 : schema.schema); - if (schemaUrls.size === 0) { - continue; - } - for (const urlToSchema of schemaUrls) { - const lens = CodeLens.create(Range9.create(0, 0, 0, 0)); - lens.command = { - title: getCommandTitle(urlToSchema[0], urlToSchema[1]), - command: YamlCommands.JUMP_TO_SCHEMA, - arguments: [urlToSchema[0]] - }; - result.push(lens); - } - } - } - } catch (err) { - this.telemetry.sendError("yaml.codeLens.error", { error: err, documentUri: document.uri }); - } - return result; - }); - } - resolveCodeLens(param) { - return param; - } -}; -function getCommandTitle(url, schema) { - const uri = URI.parse(url); - let baseName = basename3(uri.fsPath); - if (!extname(uri.fsPath)) { - baseName += ".json"; - } - if (Object.getOwnPropertyDescriptor(schema, "name")) { - return Object.getOwnPropertyDescriptor(schema, "name").value + ` (${baseName})`; - } else if (schema.title) { - return schema.title + ` (${baseName})`; - } - return baseName; -} -function getSchemaUrl(schema) { - const result = new Map(); - if (!schema) { - return result; - } - const url = schema.url; - if (url) { - if (url.startsWith("schemaservice://combinedSchema/")) { - addSchemasForOf(schema, result); - } else { - result.set(schema.url, schema); - } - } else { - addSchemasForOf(schema, result); - } - return result; -} -function addSchemasForOf(schema, result) { - if (schema.allOf) { - addInnerSchemaUrls(schema.allOf, result); - } - if (schema.anyOf) { - addInnerSchemaUrls(schema.anyOf, result); - } - if (schema.oneOf) { - addInnerSchemaUrls(schema.oneOf, result); - } -} -function addInnerSchemaUrls(schemas, result) { - for (const subSchema of schemas) { - if (!isBoolean2(subSchema)) { - if (subSchema.url && !result.has(subSchema.url)) { - result.set(subSchema.url, subSchema); - } - } - } -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlCommands.js -var __awaiter4 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); - }); - } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -function registerCommands(commandExecutor2, connection) { - commandExecutor2.registerCommand(YamlCommands.JUMP_TO_SCHEMA, (uri) => __awaiter4(this, void 0, void 0, function* () { - if (!uri) { - return; - } - if (!uri.startsWith("file") && !/^[a-z]:[\\/]/i.test(uri)) { - const origUri = URI.parse(uri); - const customUri = URI.from({ - scheme: "json-schema", - authority: origUri.authority, - path: origUri.path.endsWith(".json") ? origUri.path : origUri.path + ".json", - fragment: uri - }); - uri = customUri.toString(); - } - if (/^[a-z]:[\\/]/i.test(uri)) { - const winUri = URI.file(uri); - uri = winUri.toString(); - } - const result = yield connection.window.showDocument({ uri, external: false, takeFocus: true }); - if (!result) { - connection.window.showErrorMessage(`Cannot open ${uri}`); - } - })); -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlCompletion.js -import { CompletionItem as CompletionItem2, CompletionItemKind as CompletionItemKind2, CompletionList as CompletionList2, InsertTextFormat as InsertTextFormat2, InsertTextMode, MarkupKind as MarkupKind2, Range as Range10, TextEdit as TextEdit5 } from "vscode-languageserver-types"; -import { isPair as isPair3, isScalar as isScalar4, isMap as isMap3, isSeq as isSeq3, isNode as isNode2 } from "yaml"; - -// node_modules/yaml-language-server/lib/esm/languageservice/utils/indentationGuesser.js -var SpacesDiffResult = class { - constructor() { - this.spacesDiff = 0; - this.looksLikeAlignment = false; - } -}; -function spacesDiff(a2, aLength, b, bLength, result) { - result.spacesDiff = 0; - result.looksLikeAlignment = false; - let i; - for (i = 0; i < aLength && i < bLength; i++) { - const aCharCode = a2.charCodeAt(i); - const bCharCode = b.charCodeAt(i); - if (aCharCode !== bCharCode) { - break; - } - } - let aSpacesCnt = 0, aTabsCount = 0; - for (let j = i; j < aLength; j++) { - const aCharCode = a2.charCodeAt(j); - if (aCharCode === 32) { - aSpacesCnt++; - } else { - aTabsCount++; - } - } - let bSpacesCnt = 0, bTabsCount = 0; - for (let j = i; j < bLength; j++) { - const bCharCode = b.charCodeAt(j); - if (bCharCode === 32) { - bSpacesCnt++; - } else { - bTabsCount++; - } - } - if (aSpacesCnt > 0 && aTabsCount > 0) { - return; - } - if (bSpacesCnt > 0 && bTabsCount > 0) { - return; - } - const tabsDiff = Math.abs(aTabsCount - bTabsCount); - const spacesDiff2 = Math.abs(aSpacesCnt - bSpacesCnt); - if (tabsDiff === 0) { - result.spacesDiff = spacesDiff2; - if (spacesDiff2 > 0 && 0 <= bSpacesCnt - 1 && bSpacesCnt - 1 < a2.length && bSpacesCnt < b.length) { - if (b.charCodeAt(bSpacesCnt) !== 32 && a2.charCodeAt(bSpacesCnt - 1) === 32) { - if (a2.charCodeAt(a2.length - 1) === 44) { - result.looksLikeAlignment = true; - } - } - } - return; - } - if (spacesDiff2 % tabsDiff === 0) { - result.spacesDiff = spacesDiff2 / tabsDiff; - return; - } -} -function guessIndentation(source, defaultTabSize, defaultInsertSpaces) { - const linesCount = Math.min(source.getLineCount(), 1e4); - let linesIndentedWithTabsCount = 0; - let linesIndentedWithSpacesCount = 0; - let previousLineText = ""; - let previousLineIndentation = 0; - const ALLOWED_TAB_SIZE_GUESSES = [2, 4, 6, 8, 3, 5, 7]; - const MAX_ALLOWED_TAB_SIZE_GUESS = 8; - const spacesDiffCount = [0, 0, 0, 0, 0, 0, 0, 0, 0]; - const tmp = new SpacesDiffResult(); - for (let lineNumber = 1; lineNumber <= linesCount; lineNumber++) { - const currentLineLength = source.getLineLength(lineNumber); - const currentLineText = source.getLineContent(lineNumber); - const useCurrentLineText = currentLineLength <= 65536; - let currentLineHasContent = false; - let currentLineIndentation = 0; - let currentLineSpacesCount = 0; - let currentLineTabsCount = 0; - for (let j = 0, lenJ = currentLineLength; j < lenJ; j++) { - const charCode = useCurrentLineText ? currentLineText.charCodeAt(j) : source.getLineCharCode(lineNumber, j); - if (charCode === 9) { - currentLineTabsCount++; - } else if (charCode === 32) { - currentLineSpacesCount++; - } else { - currentLineHasContent = true; - currentLineIndentation = j; - break; - } - } - if (!currentLineHasContent) { - continue; - } - if (currentLineTabsCount > 0) { - linesIndentedWithTabsCount++; - } else if (currentLineSpacesCount > 1) { - linesIndentedWithSpacesCount++; - } - spacesDiff(previousLineText, previousLineIndentation, currentLineText, currentLineIndentation, tmp); - if (tmp.looksLikeAlignment) { - if (!(defaultInsertSpaces && defaultTabSize === tmp.spacesDiff)) { - continue; - } - } - const currentSpacesDiff = tmp.spacesDiff; - if (currentSpacesDiff <= MAX_ALLOWED_TAB_SIZE_GUESS) { - spacesDiffCount[currentSpacesDiff]++; - } - previousLineText = currentLineText; - previousLineIndentation = currentLineIndentation; - } - let insertSpaces = defaultInsertSpaces; - if (linesIndentedWithTabsCount !== linesIndentedWithSpacesCount) { - insertSpaces = linesIndentedWithTabsCount < linesIndentedWithSpacesCount; - } - let tabSize = defaultTabSize; - if (insertSpaces) { - let tabSizeScore = insertSpaces ? 0 : 0.1 * linesCount; - ALLOWED_TAB_SIZE_GUESSES.forEach((possibleTabSize) => { - const possibleTabSizeScore = spacesDiffCount[possibleTabSize]; - if (possibleTabSizeScore > tabSizeScore) { - tabSizeScore = possibleTabSizeScore; - tabSize = possibleTabSize; - } - }); - if (tabSize === 4 && spacesDiffCount[4] > 0 && spacesDiffCount[2] > 0 && spacesDiffCount[2] >= spacesDiffCount[4] / 2) { - tabSize = 2; - } - } - return { - insertSpaces, - tabSize - }; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/utils/json.js -function stringifyObject2(obj, indent, stringifyLiteral, settings, depth = 0, consecutiveArrays = 0) { - if (obj !== null && typeof obj === "object") { - const newIndent = depth === 0 && settings.shouldIndentWithTab || depth > 0 ? indent + " " : ""; - if (Array.isArray(obj)) { - consecutiveArrays += 1; - if (obj.length === 0) { - return ""; - } - let result = ""; - for (let i = 0; i < obj.length; i++) { - let pseudoObj = obj[i]; - if (!Array.isArray(obj[i])) { - pseudoObj = preprendToObject(obj[i], consecutiveArrays); - } - result += newIndent + stringifyObject2(pseudoObj, indent, stringifyLiteral, settings, depth += 1, consecutiveArrays); - if (i < obj.length - 1) { - result += "\n"; - } - } - result += indent; - return result; - } else { - const keys = Object.keys(obj); - if (keys.length === 0) { - return ""; - } - let result = depth === 0 && settings.newLineFirst || depth > 0 ? "\n" : ""; - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (depth === 0 && i === 0 && !settings.indentFirstObject) { - result += indent + key + ": " + stringifyObject2(obj[key], newIndent, stringifyLiteral, settings, depth += 1, 0); - } else { - result += newIndent + key + ": " + stringifyObject2(obj[key], newIndent, stringifyLiteral, settings, depth += 1, 0); - } - if (i < keys.length - 1) { - result += "\n"; - } - } - result += indent; - return result; - } - } - return stringifyLiteral(obj); -} -function preprendToObject(obj, consecutiveArrays) { - const newObj = {}; - for (let i = 0; i < Object.keys(obj).length; i++) { - const key = Object.keys(obj)[i]; - if (i === 0) { - newObj["- ".repeat(consecutiveArrays) + key] = obj[key]; - } else { - newObj[" ".repeat(consecutiveArrays) + key] = obj[key]; - } - } - return newObj; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlCompletion.js -var __awaiter5 = function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve2) { - resolve2(value); - }); - } - return new (P || (P = Promise))(function(resolve2, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -var localize9 = loadMessageBundle(); -var doubleQuotesEscapeRegExp = /[\\]+"/g; -var YamlCompletion = class { - constructor(schemaService, clientCapabilities = {}, yamlDocument, telemetry) { - this.schemaService = schemaService; - this.clientCapabilities = clientCapabilities; - this.yamlDocument = yamlDocument; - this.telemetry = telemetry; - this.completionEnabled = true; - } - configure(languageSettings) { - if (languageSettings) { - this.completionEnabled = languageSettings.completion; - } - this.customTags = languageSettings.customTags; - this.yamlVersion = languageSettings.yamlVersion; - this.configuredIndentation = languageSettings.indentation; - } - doComplete(document, position, isKubernetes = false) { - return __awaiter5(this, void 0, void 0, function* () { - const result = CompletionList2.create([], false); - if (!this.completionEnabled) { - return result; - } - const doc = this.yamlDocument.getYamlDocument(document, { customTags: this.customTags, yamlVersion: this.yamlVersion }, true); - const textBuffer = new TextBuffer(document); - if (!this.configuredIndentation) { - const indent = guessIndentation(textBuffer, 2, true); - this.indentation = indent.insertSpaces ? " ".repeat(indent.tabSize) : " "; - } else { - this.indentation = this.configuredIndentation; - } - setKubernetesParserOption(doc.documents, isKubernetes); - const offset = document.offsetAt(position); - if (document.getText().charAt(offset - 1) === ":") { - return Promise.resolve(result); - } - const currentDoc = matchOffsetToDocument(offset, doc); - if (currentDoc === null) { - return Promise.resolve(result); - } - let [node, foundByClosest] = currentDoc.getNodeFromPosition(offset, textBuffer); - const currentWord = this.getCurrentWord(document, offset); - let overwriteRange = null; - if (node && isScalar4(node) && node.value === "null") { - const nodeStartPos = document.positionAt(node.range[0]); - nodeStartPos.character += 1; - const nodeEndPos = document.positionAt(node.range[2]); - nodeEndPos.character += 1; - overwriteRange = Range10.create(nodeStartPos, nodeEndPos); - } else if (node && isScalar4(node) && node.value) { - const start = document.positionAt(node.range[0]); - if (offset > 0 && start.character > 0 && document.getText().charAt(offset - 1) === "-") { - start.character -= 1; - } - overwriteRange = Range10.create(start, document.positionAt(node.range[1])); - } else { - let overwriteStart = document.offsetAt(position) - currentWord.length; - if (overwriteStart > 0 && document.getText()[overwriteStart - 1] === '"') { - overwriteStart--; - } - overwriteRange = Range10.create(document.positionAt(overwriteStart), position); - } - const proposed = {}; - const collector = { - add: (completionItem) => { - let label = completionItem.label; - if (!label) { - console.warn(`Ignoring CompletionItem without label: ${JSON.stringify(completionItem)}`); - return; - } - if (!isString2(label)) { - label = String(label); - } - const existing = proposed[label]; - if (!existing) { - label = label.replace(/[\n]/g, "\u21B5"); - if (label.length > 60) { - const shortendedLabel = label.substr(0, 57).trim() + "..."; - if (!proposed[shortendedLabel]) { - label = shortendedLabel; - } - } - if (overwriteRange && overwriteRange.start.line === overwriteRange.end.line) { - completionItem.textEdit = TextEdit5.replace(overwriteRange, completionItem.insertText); - } - completionItem.label = label; - proposed[label] = completionItem; - result.items.push(completionItem); - } - }, - error: (message) => { - console.error(message); - this.telemetry.sendError("yaml.completion.error", { error: message }); - }, - log: (message) => { - console.log(message); - }, - getNumberOfProposals: () => { - return result.items.length; - } - }; - if (this.customTags.length > 0) { - this.getCustomTagValueCompletions(collector); - } - let lineContent = textBuffer.getLineContent(position.line); - if (lineContent.endsWith("\n")) { - lineContent = lineContent.substr(0, lineContent.length - 1); - } - try { - const schema = yield this.schemaService.getSchemaForResource(document.uri, currentDoc); - if (!schema || schema.errors.length) { - if (position.line === 0 && position.character === 0 && !isModeline(lineContent)) { - const inlineSchemaCompletion = { - kind: CompletionItemKind2.Text, - label: "Inline schema", - insertText: "# yaml-language-server: $schema=", - insertTextFormat: InsertTextFormat2.PlainText - }; - result.items.push(inlineSchemaCompletion); - } - } - if (isModeline(lineContent) || isInComment(doc.tokens, offset)) { - const schemaIndex = lineContent.indexOf("$schema="); - if (schemaIndex !== -1 && schemaIndex + "$schema=".length <= position.character) { - this.schemaService.getAllSchemas().forEach((schema2) => { - var _a; - const schemaIdCompletion = { - kind: CompletionItemKind2.Constant, - label: (_a = schema2.name) !== null && _a !== void 0 ? _a : schema2.uri, - detail: schema2.description, - insertText: schema2.uri, - insertTextFormat: InsertTextFormat2.PlainText, - insertTextMode: InsertTextMode.asIs - }; - result.items.push(schemaIdCompletion); - }); - } - return result; - } - if (!schema || schema.errors.length) { - return result; - } - let currentProperty = null; - if (!node) { - if (!currentDoc.internalDocument.contents || isScalar4(currentDoc.internalDocument.contents)) { - const map = currentDoc.internalDocument.createNode({}); - map.range = [offset, offset + 1, offset + 1]; - currentDoc.internalDocument.contents = map; - currentDoc.internalDocument = currentDoc.internalDocument; - node = map; - } else { - node = currentDoc.findClosestNode(offset, textBuffer); - foundByClosest = true; - } - } - if (node) { - if (lineContent.length === 0) { - node = currentDoc.internalDocument.contents; - } else { - const parent = currentDoc.getParent(node); - if (parent) { - if (isScalar4(node)) { - if (node.value) { - if (isPair3(parent)) { - if (parent.value === node) { - if (lineContent.trim().length > 0 && lineContent.indexOf(":") < 0) { - const map = this.createTempObjNode(currentWord, node, currentDoc); - if (isSeq3(currentDoc.internalDocument.contents)) { - const index = indexOf(currentDoc.internalDocument.contents, parent); - if (typeof index === "number") { - currentDoc.internalDocument.set(index, map); - currentDoc.internalDocument = currentDoc.internalDocument; - } - } else { - currentDoc.internalDocument.set(parent.key, map); - currentDoc.internalDocument = currentDoc.internalDocument; - } - currentProperty = map.items[0]; - node = map; - } else if (lineContent.trim().length === 0) { - const parentParent = currentDoc.getParent(parent); - if (parentParent) { - node = parentParent; - } - } - } else if (parent.key === node) { - const parentParent = currentDoc.getParent(parent); - currentProperty = parent; - if (parentParent) { - node = parentParent; - } - } - } else if (isSeq3(parent)) { - if (lineContent.trim().length > 0) { - const map = this.createTempObjNode(currentWord, node, currentDoc); - parent.delete(node); - parent.add(map); - currentDoc.internalDocument = currentDoc.internalDocument; - node = map; - } else { - node = parent; - } - } - } else if (node.value === null) { - if (isPair3(parent)) { - if (parent.key === node) { - node = parent; - } else { - if (isNode2(parent.key) && parent.key.range) { - const parentParent = currentDoc.getParent(parent); - if (foundByClosest && parentParent && isMap3(parentParent) && isMapContainsEmptyPair(parentParent)) { - node = parentParent; - } else { - const parentPosition = document.positionAt(parent.key.range[0]); - if (position.character > parentPosition.character && position.line !== parentPosition.line) { - const map = this.createTempObjNode(currentWord, node, currentDoc); - if (parentParent && (isMap3(parentParent) || isSeq3(parentParent))) { - parentParent.set(parent.key, map); - currentDoc.internalDocument = currentDoc.internalDocument; - } else { - currentDoc.internalDocument.set(parent.key, map); - currentDoc.internalDocument = currentDoc.internalDocument; - } - currentProperty = map.items[0]; - node = map; - } else if (parentPosition.character === position.character) { - if (parentParent) { - node = parentParent; - } - } - } - } - } - } else if (isSeq3(parent)) { - if (lineContent.charAt(position.character - 1) !== "-") { - const map = this.createTempObjNode(currentWord, node, currentDoc); - parent.delete(node); - parent.add(map); - currentDoc.internalDocument = currentDoc.internalDocument; - node = map; - } else { - node = parent; - } - } - } - } else if (isMap3(node)) { - if (!foundByClosest && lineContent.trim().length === 0 && isSeq3(parent)) { - const nextLine = textBuffer.getLineContent(position.line + 1); - if (textBuffer.getLineCount() === position.line + 1 || nextLine.trim().length === 0) { - node = parent; - } - } - } - } else if (isScalar4(node)) { - const map = this.createTempObjNode(currentWord, node, currentDoc); - currentDoc.internalDocument.contents = map; - currentDoc.internalDocument = currentDoc.internalDocument; - currentProperty = map.items[0]; - node = map; - } else if (isMap3(node)) { - for (const pair of node.items) { - if (isNode2(pair.value) && pair.value.range && pair.value.range[0] === offset + 1) { - node = pair.value; - } - } - } - } - } - if (node && isMap3(node)) { - const properties = node.items; - for (const p of properties) { - if (!currentProperty || currentProperty !== p) { - if (isScalar4(p.key)) { - proposed[p.key.value.toString()] = CompletionItem2.create("__"); - } - } - } - this.addPropertyCompletions(schema, currentDoc, node, "", collector, textBuffer, overwriteRange); - if (!schema && currentWord.length > 0 && document.getText().charAt(offset - currentWord.length - 1) !== '"') { - collector.add({ - kind: CompletionItemKind2.Property, - label: currentWord, - insertText: this.getInsertTextForProperty(currentWord, null, ""), - insertTextFormat: InsertTextFormat2.Snippet - }); - } - } - const types = {}; - this.getValueCompletions(schema, currentDoc, node, offset, document, collector, types); - } catch (err) { - if (err.stack) { - console.error(err.stack); - } else { - console.error(err); - } - this.telemetry.sendError("yaml.completion.error", { error: err }); - } - return result; - }); - } - createTempObjNode(currentWord, node, currentDoc) { - const obj = {}; - obj[currentWord] = null; - const map = currentDoc.internalDocument.createNode(obj); - map.range = node.range; - map.items[0].key.range = node.range; - map.items[0].value.range = node.range; - return map; - } - addPropertyCompletions(schema, doc, node, separatorAfter, collector, textBuffer, overwriteRange) { - const matchingSchemas = doc.getMatchingSchemas(schema.schema); - const existingKey = textBuffer.getText(overwriteRange); - const hasColumn = textBuffer.getLineContent(overwriteRange.start.line).indexOf(":") === -1; - const nodeParent = doc.getParent(node); - for (const schema2 of matchingSchemas) { - if (schema2.node.internalNode === node && !schema2.inverted) { - this.collectDefaultSnippets(schema2.schema, separatorAfter, collector, { - newLineFirst: false, - indentFirstObject: false, - shouldIndentWithTab: false - }); - const schemaProperties = schema2.schema.properties; - if (schemaProperties) { - const maxProperties = schema2.schema.maxProperties; - if (maxProperties === void 0 || node.items === void 0 || node.items.length < maxProperties || isMapContainsEmptyPair(node)) { - for (const key in schemaProperties) { - if (Object.prototype.hasOwnProperty.call(schemaProperties, key)) { - const propertySchema = schemaProperties[key]; - if (typeof propertySchema === "object" && !propertySchema.deprecationMessage && !propertySchema["doNotSuggest"]) { - let identCompensation = ""; - if (nodeParent && isSeq3(nodeParent) && node.items.length <= 1) { - const sourceText = textBuffer.getText(); - const indexOfSlash = sourceText.lastIndexOf("-", node.range[0] - 1); - if (indexOfSlash >= 0) { - identCompensation = " " + sourceText.slice(indexOfSlash + 1, node.range[0]); - } - } - let pair; - if (propertySchema.type === "array" && (pair = node.items.find((it) => isScalar4(it.key) && it.key.range && it.key.value === key && isScalar4(it.value) && !it.value.value && textBuffer.getPosition(it.key.range[2]).line === overwriteRange.end.line - 1)) && pair) { - if (Array.isArray(propertySchema.items)) { - this.addSchemaValueCompletions(propertySchema.items[0], separatorAfter, collector, {}); - } else if (typeof propertySchema.items === "object" && propertySchema.items.type === "object") { - collector.add({ - kind: this.getSuggestionKind(propertySchema.items.type), - label: "- (array item)", - documentation: `Create an item of an array${propertySchema.description === void 0 ? "" : "(" + propertySchema.description + ")"}`, - insertText: `- ${this.getInsertTextForObject(propertySchema.items, separatorAfter, " ").insertText.trimLeft()}`, - insertTextFormat: InsertTextFormat2.Snippet - }); - } - } - let insertText = key; - if (!key.startsWith(existingKey) || hasColumn) { - insertText = this.getInsertTextForProperty(key, propertySchema, separatorAfter, identCompensation + this.indentation); - } - collector.add({ - kind: CompletionItemKind2.Property, - label: key, - insertText, - insertTextFormat: InsertTextFormat2.Snippet, - documentation: this.fromMarkup(propertySchema.markdownDescription) || propertySchema.description || "" - }); - } - } - } - } - } - if (nodeParent && isSeq3(nodeParent) && schema2.schema.type !== "object") { - this.addSchemaValueCompletions(schema2.schema, separatorAfter, collector, {}); - } - } - if (nodeParent && schema2.node.internalNode === nodeParent && schema2.schema.defaultSnippets) { - if (node.items.length === 1) { - this.collectDefaultSnippets(schema2.schema, separatorAfter, collector, { - newLineFirst: false, - indentFirstObject: false, - shouldIndentWithTab: true - }, 1); - } else { - this.collectDefaultSnippets(schema2.schema, separatorAfter, collector, { - newLineFirst: false, - indentFirstObject: true, - shouldIndentWithTab: false - }, 1); - } - } - } - } - getValueCompletions(schema, doc, node, offset, document, collector, types) { - let parentKey = null; - if (node && isScalar4(node)) { - node = doc.getParent(node); - } - if (!node) { - this.addSchemaValueCompletions(schema.schema, "", collector, types); - return; - } - if (isPair3(node)) { - const valueNode = node.value; - if (valueNode && valueNode.range && offset > valueNode.range[0] + valueNode.range[2]) { - return; - } - parentKey = isScalar4(node.key) ? node.key.value.toString() : null; - node = doc.getParent(node); - } - if (node && (parentKey !== null || isSeq3(node))) { - const separatorAfter = ""; - const matchingSchemas = doc.getMatchingSchemas(schema.schema); - for (const s of matchingSchemas) { - if (s.node.internalNode === node && !s.inverted && s.schema) { - if (s.schema.items) { - this.collectDefaultSnippets(s.schema, separatorAfter, collector, { - newLineFirst: false, - indentFirstObject: false, - shouldIndentWithTab: false - }); - if (isSeq3(node) && node.items) { - if (Array.isArray(s.schema.items)) { - const index = this.findItemAtOffset(node, document, offset); - if (index < s.schema.items.length) { - this.addSchemaValueCompletions(s.schema.items[index], separatorAfter, collector, types); - } - } else if (typeof s.schema.items === "object" && s.schema.items.type === "object") { - collector.add({ - kind: this.getSuggestionKind(s.schema.items.type), - label: "- (array item)", - documentation: `Create an item of an array${s.schema.description === void 0 ? "" : "(" + s.schema.description + ")"}`, - insertText: `- ${this.getInsertTextForObject(s.schema.items, separatorAfter, " ").insertText.trimLeft()}`, - insertTextFormat: InsertTextFormat2.Snippet - }); - this.addSchemaValueCompletions(s.schema.items, separatorAfter, collector, types); - } else if (typeof s.schema.items === "object" && s.schema.items.anyOf) { - s.schema.items.anyOf.filter((i) => typeof i === "object").forEach((i, index) => { - const insertText = `- ${this.getInsertTextForObject(i, separatorAfter).insertText.trimLeft()}`; - const documentation = this.getDocumentationWithMarkdownText(`Create an item of an array${s.schema.description === void 0 ? "" : "(" + s.schema.description + ")"}`, insertText); - collector.add({ - kind: this.getSuggestionKind(i.type), - label: "- (array item) " + (index + 1), - documentation, - insertText, - insertTextFormat: InsertTextFormat2.Snippet - }); - }); - this.addSchemaValueCompletions(s.schema.items, separatorAfter, collector, types); - } else { - this.addSchemaValueCompletions(s.schema.items, separatorAfter, collector, types); - } - } - } - if (s.schema.properties) { - const propertySchema = s.schema.properties[parentKey]; - if (propertySchema) { - this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types); - } - } - } - } - if (types["boolean"]) { - this.addBooleanValueCompletion(true, separatorAfter, collector); - this.addBooleanValueCompletion(false, separatorAfter, collector); - } - if (types["null"]) { - this.addNullValueCompletion(separatorAfter, collector); - } - } - } - getInsertTextForProperty(key, propertySchema, separatorAfter, ident = this.indentation) { - const propertyText = this.getInsertTextForValue(key, "", "string"); - const resultText = propertyText + ":"; - let value; - let nValueProposals = 0; - if (propertySchema) { - let type = Array.isArray(propertySchema.type) ? propertySchema.type[0] : propertySchema.type; - if (!type) { - if (propertySchema.properties) { - type = "object"; - } else if (propertySchema.items) { - type = "array"; - } - } - if (Array.isArray(propertySchema.defaultSnippets)) { - if (propertySchema.defaultSnippets.length === 1) { - const body = propertySchema.defaultSnippets[0].body; - if (isDefined2(body)) { - value = this.getInsertTextForSnippetValue(body, "", { - newLineFirst: true, - indentFirstObject: false, - shouldIndentWithTab: false - }, 1); - if (!value.startsWith(" ") && !value.startsWith("\n")) { - value = " " + value; - } - } - } - nValueProposals += propertySchema.defaultSnippets.length; - } - if (propertySchema.enum) { - if (!value && propertySchema.enum.length === 1) { - value = " " + this.getInsertTextForGuessedValue(propertySchema.enum[0], "", type); - } - nValueProposals += propertySchema.enum.length; - } - if (isDefined2(propertySchema.default)) { - if (!value) { - value = " " + this.getInsertTextForGuessedValue(propertySchema.default, "", type); - } - nValueProposals++; - } - if (Array.isArray(propertySchema.examples) && propertySchema.examples.length) { - if (!value) { - value = " " + this.getInsertTextForGuessedValue(propertySchema.examples[0], "", type); - } - nValueProposals += propertySchema.examples.length; - } - if (propertySchema.properties) { - return `${resultText} -${this.getInsertTextForObject(propertySchema, separatorAfter, ident).insertText}`; - } else if (propertySchema.items) { - return `${resultText} -${this.indentation}- ${this.getInsertTextForArray(propertySchema.items, separatorAfter).insertText}`; - } - if (nValueProposals === 0) { - switch (type) { - case "boolean": - value = " $1"; - break; - case "string": - value = " $1"; - break; - case "object": - value = ` -${ident}`; - break; - case "array": - value = ` -${ident}- `; - break; - case "number": - case "integer": - value = " ${1:0}"; - break; - case "null": - value = " ${1:null}"; - break; - default: - return propertyText; - } - } - } - if (!value || nValueProposals > 1) { - value = " $1"; - } - return resultText + value + separatorAfter; - } - getInsertTextForObject(schema, separatorAfter, indent = this.indentation, insertIndex = 1) { - let insertText = ""; - if (!schema.properties) { - insertText = `${indent}$${insertIndex++} -`; - return { insertText, insertIndex }; - } - Object.keys(schema.properties).forEach((key) => { - const propertySchema = schema.properties[key]; - let type = Array.isArray(propertySchema.type) ? propertySchema.type[0] : propertySchema.type; - if (!type) { - if (propertySchema.properties) { - type = "object"; - } - if (propertySchema.items) { - type = "array"; - } - } - if (schema.required && schema.required.indexOf(key) > -1) { - switch (type) { - case "boolean": - case "string": - case "number": - case "integer": - insertText += `${indent}${key}: $${insertIndex++} -`; - break; - case "array": - { - const arrayInsertResult = this.getInsertTextForArray(propertySchema.items, separatorAfter, insertIndex++); - const arrayInsertLines = arrayInsertResult.insertText.split("\n"); - let arrayTemplate = arrayInsertResult.insertText; - if (arrayInsertLines.length > 1) { - for (let index = 1; index < arrayInsertLines.length; index++) { - const element = arrayInsertLines[index]; - arrayInsertLines[index] = `${indent}${this.indentation} ${element.trimLeft()}`; - } - arrayTemplate = arrayInsertLines.join("\n"); - } - insertIndex = arrayInsertResult.insertIndex; - insertText += `${indent}${key}: -${indent}${this.indentation}- ${arrayTemplate} -`; - } - break; - case "object": - { - const objectInsertResult = this.getInsertTextForObject(propertySchema, separatorAfter, `${indent}${this.indentation}`, insertIndex++); - insertIndex = objectInsertResult.insertIndex; - insertText += `${indent}${key}: -${objectInsertResult.insertText} -`; - } - break; - } - } else if (propertySchema.default !== void 0) { - switch (type) { - case "boolean": - case "number": - case "integer": - insertText += `${indent}${key}: \${${insertIndex++}:${propertySchema.default}} -`; - break; - case "string": - insertText += `${indent}${key}: \${${insertIndex++}:${convertToStringValue(propertySchema.default)}} -`; - break; - case "array": - case "object": - break; - } - } - }); - if (insertText.trim().length === 0) { - insertText = `${indent}$${insertIndex++} -`; - } - insertText = insertText.trimRight() + separatorAfter; - return { insertText, insertIndex }; - } - getInsertTextForArray(schema, separatorAfter, insertIndex = 1) { - let insertText = ""; - if (!schema) { - insertText = `$${insertIndex++}`; - return { insertText, insertIndex }; - } - let type = Array.isArray(schema.type) ? schema.type[0] : schema.type; - if (!type) { - if (schema.properties) { - type = "object"; - } - if (schema.items) { - type = "array"; - } - } - switch (schema.type) { - case "boolean": - insertText = `\${${insertIndex++}:false}`; - break; - case "number": - case "integer": - insertText = `\${${insertIndex++}:0}`; - break; - case "string": - insertText = `\${${insertIndex++}:""}`; - break; - case "object": - { - const objectInsertResult = this.getInsertTextForObject(schema, separatorAfter, `${this.indentation} `, insertIndex++); - insertText = objectInsertResult.insertText.trimLeft(); - insertIndex = objectInsertResult.insertIndex; - } - break; - } - return { insertText, insertIndex }; - } - getInsertTextForGuessedValue(value, separatorAfter, type) { - switch (typeof value) { - case "object": - if (value === null) { - return "${1:null}" + separatorAfter; - } - return this.getInsertTextForValue(value, separatorAfter, type); - case "string": { - let snippetValue = JSON.stringify(value); - snippetValue = snippetValue.substr(1, snippetValue.length - 2); - snippetValue = this.getInsertTextForPlainText(snippetValue); - if (type === "string") { - snippetValue = convertToStringValue(snippetValue); - } - return "${1:" + snippetValue + "}" + separatorAfter; - } - case "number": - case "boolean": - return "${1:" + value + "}" + separatorAfter; - } - return this.getInsertTextForValue(value, separatorAfter, type); - } - getInsertTextForPlainText(text) { - return text.replace(/[\\$}]/g, "\\$&"); - } - getInsertTextForValue(value, separatorAfter, type) { - if (value === null) { - value = "null"; - } - switch (typeof value) { - case "object": { - const indent = this.indentation; - return this.getInsertTemplateForValue(value, indent, { index: 1 }, separatorAfter); - } - } - type = Array.isArray(type) ? type[0] : type; - if (type === "string") { - value = convertToStringValue(value); - } - return this.getInsertTextForPlainText(value + separatorAfter); - } - getInsertTemplateForValue(value, indent, navOrder, separatorAfter) { - if (Array.isArray(value)) { - let insertText = "\n"; - for (const arrValue of value) { - insertText += `${indent}- \${${navOrder.index++}:${arrValue}} -`; - } - return insertText; - } else if (typeof value === "object") { - let insertText = "\n"; - for (const key in value) { - if (Object.prototype.hasOwnProperty.call(value, key)) { - const element = value[key]; - insertText += `${indent}\${${navOrder.index++}:${key}}:`; - let valueTemplate; - if (typeof element === "object") { - valueTemplate = `${this.getInsertTemplateForValue(element, indent + this.indentation, navOrder, separatorAfter)}`; - } else { - valueTemplate = ` \${${navOrder.index++}:${this.getInsertTextForPlainText(element + separatorAfter)}} -`; - } - insertText += `${valueTemplate}`; - } - } - return insertText; - } - return this.getInsertTextForPlainText(value + separatorAfter); - } - addSchemaValueCompletions(schema, separatorAfter, collector, types) { - if (typeof schema === "object") { - this.addEnumValueCompletions(schema, separatorAfter, collector); - this.addDefaultValueCompletions(schema, separatorAfter, collector); - this.collectTypes(schema, types); - if (Array.isArray(schema.allOf)) { - schema.allOf.forEach((s) => { - return this.addSchemaValueCompletions(s, separatorAfter, collector, types); - }); - } - if (Array.isArray(schema.anyOf)) { - schema.anyOf.forEach((s) => { - return this.addSchemaValueCompletions(s, separatorAfter, collector, types); - }); - } - if (Array.isArray(schema.oneOf)) { - schema.oneOf.forEach((s) => { - return this.addSchemaValueCompletions(s, separatorAfter, collector, types); - }); - } - } - } - collectTypes(schema, types) { - if (Array.isArray(schema.enum) || isDefined2(schema.const)) { - return; - } - const type = schema.type; - if (Array.isArray(type)) { - type.forEach(function(t) { - return types[t] = true; - }); - } else if (type) { - types[type] = true; - } - } - addDefaultValueCompletions(schema, separatorAfter, collector, arrayDepth = 0) { - let hasProposals = false; - if (isDefined2(schema.default)) { - let type = schema.type; - let value = schema.default; - for (let i = arrayDepth; i > 0; i--) { - value = [value]; - type = "array"; - } - let label; - if (typeof value == "object") { - label = "Default value"; - } else { - label = value.toString().replace(doubleQuotesEscapeRegExp, '"'); - } - collector.add({ - kind: this.getSuggestionKind(type), - label, - insertText: this.getInsertTextForValue(value, separatorAfter, type), - insertTextFormat: InsertTextFormat2.Snippet, - detail: localize9("json.suggest.default", "Default value") - }); - hasProposals = true; - } - if (Array.isArray(schema.examples)) { - schema.examples.forEach((example) => { - let type = schema.type; - let value = example; - for (let i = arrayDepth; i > 0; i--) { - value = [value]; - type = "array"; - } - collector.add({ - kind: this.getSuggestionKind(type), - label: this.getLabelForValue(value), - insertText: this.getInsertTextForValue(value, separatorAfter, type), - insertTextFormat: InsertTextFormat2.Snippet - }); - hasProposals = true; - }); - } - this.collectDefaultSnippets(schema, separatorAfter, collector, { - newLineFirst: true, - indentFirstObject: true, - shouldIndentWithTab: true - }); - if (!hasProposals && typeof schema.items === "object" && !Array.isArray(schema.items)) { - this.addDefaultValueCompletions(schema.items, separatorAfter, collector, arrayDepth + 1); - } - } - addEnumValueCompletions(schema, separatorAfter, collector) { - if (isDefined2(schema.const)) { - collector.add({ - kind: this.getSuggestionKind(schema.type), - label: this.getLabelForValue(schema.const), - insertText: this.getInsertTextForValue(schema.const, separatorAfter, void 0), - insertTextFormat: InsertTextFormat2.Snippet, - documentation: this.fromMarkup(schema.markdownDescription) || schema.description - }); - } - if (Array.isArray(schema.enum)) { - for (let i = 0, length = schema.enum.length; i < length; i++) { - const enm = schema.enum[i]; - let documentation = this.fromMarkup(schema.markdownDescription) || schema.description; - if (schema.markdownEnumDescriptions && i < schema.markdownEnumDescriptions.length && this.doesSupportMarkdown()) { - documentation = this.fromMarkup(schema.markdownEnumDescriptions[i]); - } else if (schema.enumDescriptions && i < schema.enumDescriptions.length) { - documentation = schema.enumDescriptions[i]; - } - collector.add({ - kind: this.getSuggestionKind(schema.type), - label: this.getLabelForValue(enm), - insertText: this.getInsertTextForValue(enm, separatorAfter, void 0), - insertTextFormat: InsertTextFormat2.Snippet, - documentation - }); - } - } - } - getLabelForValue(value) { - if (value === null) { - return "null"; - } - if (Array.isArray(value)) { - return JSON.stringify(value); - } - return value; - } - collectDefaultSnippets(schema, separatorAfter, collector, settings, arrayDepth = 0) { - if (Array.isArray(schema.defaultSnippets)) { - for (const s of schema.defaultSnippets) { - let type = schema.type; - let value = s.body; - let label = s.label; - let insertText; - let filterText; - if (isDefined2(value)) { - const type2 = s.type || schema.type; - if (arrayDepth === 0 && type2 === "array") { - const fixedObj = {}; - Object.keys(value).forEach((val, index) => { - if (index === 0 && !val.startsWith("-")) { - fixedObj[`- ${val}`] = value[val]; - } else { - fixedObj[` ${val}`] = value[val]; - } - }); - value = fixedObj; - } - insertText = this.getInsertTextForSnippetValue(value, separatorAfter, settings); - label = label || this.getLabelForSnippetValue(value); - } else if (typeof s.bodyText === "string") { - let prefix = "", suffix = "", indent = ""; - for (let i = arrayDepth; i > 0; i--) { - prefix = prefix + indent + "[\n"; - suffix = suffix + "\n" + indent + "]"; - indent += this.indentation; - type = "array"; - } - insertText = prefix + indent + s.bodyText.split("\n").join("\n" + indent) + suffix + separatorAfter; - label = label || insertText; - filterText = insertText.replace(/[\n]/g, ""); - } - collector.add({ - kind: s.suggestionKind || this.getSuggestionKind(type), - label, - documentation: this.fromMarkup(s.markdownDescription) || s.description, - insertText, - insertTextFormat: InsertTextFormat2.Snippet, - filterText - }); - } - } - } - getInsertTextForSnippetValue(value, separatorAfter, settings, depth) { - const replacer = (value2) => { - if (typeof value2 === "string") { - if (value2[0] === "^") { - return value2.substr(1); - } - if (value2 === "true" || value2 === "false") { - return `"${value2}"`; - } - } - return value2; - }; - return stringifyObject2(value, "", replacer, settings, depth) + separatorAfter; - } - addBooleanValueCompletion(value, separatorAfter, collector) { - collector.add({ - kind: this.getSuggestionKind("boolean"), - label: value ? "true" : "false", - insertText: this.getInsertTextForValue(value, separatorAfter, "boolean"), - insertTextFormat: InsertTextFormat2.Snippet, - documentation: "" - }); - } - addNullValueCompletion(separatorAfter, collector) { - collector.add({ - kind: this.getSuggestionKind("null"), - label: "null", - insertText: "null" + separatorAfter, - insertTextFormat: InsertTextFormat2.Snippet, - documentation: "" - }); - } - getLabelForSnippetValue(value) { - const label = JSON.stringify(value); - return label.replace(/\$\{\d+:([^}]+)\}|\$\d+/g, "$1"); - } - getCustomTagValueCompletions(collector) { - const validCustomTags = filterInvalidCustomTags(this.customTags); - validCustomTags.forEach((validTag) => { - const label = validTag.split(" ")[0]; - this.addCustomTagValueCompletion(collector, " ", label); - }); - } - addCustomTagValueCompletion(collector, separatorAfter, label) { - collector.add({ - kind: this.getSuggestionKind("string"), - label, - insertText: label + separatorAfter, - insertTextFormat: InsertTextFormat2.Snippet, - documentation: "" - }); - } - getDocumentationWithMarkdownText(documentation, insertText) { - let res = documentation; - if (this.doesSupportMarkdown()) { - insertText = insertText.replace(/\${[0-9]+[:|](.*)}/g, (s, arg) => { - return arg; - }).replace(/\$([0-9]+)/g, ""); - res = this.fromMarkup(`${documentation} - \`\`\` -${insertText} -\`\`\``); - } - return res; - } - getSuggestionKind(type) { - if (Array.isArray(type)) { - const array = type; - type = array.length > 0 ? array[0] : null; - } - if (!type) { - return CompletionItemKind2.Value; - } - switch (type) { - case "string": - return CompletionItemKind2.Value; - case "object": - return CompletionItemKind2.Module; - case "property": - return CompletionItemKind2.Property; - default: - return CompletionItemKind2.Value; - } - } - getCurrentWord(doc, offset) { - let i = offset - 1; - const text = doc.getText(); - while (i >= 0 && ' \n\r\v":{[,]}'.indexOf(text.charAt(i)) === -1) { - i--; - } - return text.substring(i + 1, offset); - } - fromMarkup(markupString) { - if (markupString && this.doesSupportMarkdown()) { - return { - kind: MarkupKind2.Markdown, - value: markupString - }; - } - return void 0; - } - doesSupportMarkdown() { - if (this.supportsMarkdown === void 0) { - const completion = this.clientCapabilities.textDocument && this.clientCapabilities.textDocument.completion; - this.supportsMarkdown = completion && completion.completionItem && Array.isArray(completion.completionItem.documentationFormat) && completion.completionItem.documentationFormat.indexOf(MarkupKind2.Markdown) !== -1; - } - return this.supportsMarkdown; - } - findItemAtOffset(seqNode, doc, offset) { - for (let i = seqNode.items.length - 1; i >= 0; i--) { - const node = seqNode.items[i]; - if (isNode2(node)) { - if (node.range) { - if (offset > node.range[1]) { - return i; - } else if (offset >= node.range[0]) { - return i; - } - } - } - } - return 0; - } -}; -var isNumberExp = /^\d+$/; -function convertToStringValue(value) { - if (value.length === 0) { - return value; - } - if (value === "true" || value === "false" || value === "null" || isNumberExp.test(value)) { - return `"${value}"`; - } - if (value.indexOf('"') !== -1) { - value = value.replace(doubleQuotesEscapeRegExp, '"'); - } - let doQuote = value.charAt(0) === "@"; - if (!doQuote) { - let idx = value.indexOf(":", 0); - for (; idx > 0 && idx < value.length; idx = value.indexOf(":", idx + 1)) { - if (idx === value.length - 1) { - doQuote = true; - break; - } - const nextChar = value.charAt(idx + 1); - if (nextChar === " " || nextChar === " ") { - doQuote = true; - break; - } - } - } - if (doQuote) { - value = `"${value}"`; - } - return value; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/services/yamlDefinition.js -import { LocationLink, Range as Range11 } from "vscode-languageserver-types"; -import { isAlias as isAlias2 } from "yaml"; -function getDefinition(document, params) { - try { - const yamlDocument = yamlDocumentsCache.getYamlDocument(document); - const offset = document.offsetAt(params.position); - const currentDoc = matchOffsetToDocument(offset, yamlDocument); - if (currentDoc) { - const [node] = currentDoc.getNodeFromPosition(offset, new TextBuffer(document)); - if (node && isAlias2(node)) { - const defNode = node.resolve(currentDoc.internalDocument); - if (defNode && defNode.range) { - const targetRange = Range11.create(document.positionAt(defNode.range[0]), document.positionAt(defNode.range[2])); - const selectionRange = Range11.create(document.positionAt(defNode.range[0]), document.positionAt(defNode.range[1])); - return [LocationLink.create(document.uri, targetRange, selectionRange)]; - } - } - } - } catch (err) { - this.telemetry.sendError("yaml.definition.error", { error: err }); - } - return void 0; -} - -// node_modules/yaml-language-server/lib/esm/languageservice/yamlLanguageService.js -var SchemaPriority; -(function(SchemaPriority2) { - SchemaPriority2[SchemaPriority2["SchemaStore"] = 1] = "SchemaStore"; - SchemaPriority2[SchemaPriority2["SchemaAssociation"] = 2] = "SchemaAssociation"; - SchemaPriority2[SchemaPriority2["Settings"] = 3] = "Settings"; - SchemaPriority2[SchemaPriority2["Modeline"] = 4] = "Modeline"; -})(SchemaPriority || (SchemaPriority = {})); -function getLanguageService(schemaRequestService2, workspaceContext, connection, telemetry, clientCapabilities) { - const schemaService = new YAMLSchemaService(schemaRequestService2, workspaceContext); - const completer = new YamlCompletion(schemaService, clientCapabilities, yamlDocumentsCache, telemetry); - const hover = new YAMLHover(schemaService, telemetry); - const yamlDocumentSymbols = new YAMLDocumentSymbols(schemaService, telemetry); - const yamlValidation = new YAMLValidation(schemaService); - const formatter = new YAMLFormatter(); - const yamlCodeActions = new YamlCodeActions(clientCapabilities); - const yamlCodeLens = new YamlCodeLens(schemaService, telemetry); - registerCommands(commandExecutor, connection); - return { - configure: (settings) => { - schemaService.clearExternalSchemas(); - if (settings.schemas) { - schemaService.schemaPriorityMapping = new Map(); - settings.schemas.forEach((settings2) => { - const currPriority = settings2.priority ? settings2.priority : 0; - schemaService.addSchemaPriority(settings2.uri, currPriority); - schemaService.registerExternalSchema(settings2.uri, settings2.fileMatch, settings2.schema, settings2.name, settings2.description); - }); - } - yamlValidation.configure(settings); - hover.configure(settings); - completer.configure(settings); - formatter.configure(settings); - yamlCodeActions.configure(settings); - }, - registerCustomSchemaProvider: (schemaProvider) => { - schemaService.registerCustomSchemaProvider(schemaProvider); - }, - findLinks: findLinks2, - doComplete: completer.doComplete.bind(completer), - doValidation: yamlValidation.doValidation.bind(yamlValidation), - doHover: hover.doHover.bind(hover), - findDocumentSymbols: yamlDocumentSymbols.findDocumentSymbols.bind(yamlDocumentSymbols), - findDocumentSymbols2: yamlDocumentSymbols.findHierarchicalDocumentSymbols.bind(yamlDocumentSymbols), - doDefinition: getDefinition.bind(getDefinition), - resetSchema: (uri) => { - return schemaService.onResourceChange(uri); - }, - doFormat: formatter.format.bind(formatter), - doDocumentOnTypeFormatting, - addSchema: (schemaID, schema) => { - return schemaService.saveSchema(schemaID, schema); - }, - deleteSchema: (schemaID) => { - return schemaService.deleteSchema(schemaID); - }, - modifySchemaContent: (schemaAdditions) => { - return schemaService.addContent(schemaAdditions); - }, - deleteSchemaContent: (schemaDeletions) => { - return schemaService.deleteContent(schemaDeletions); - }, - deleteSchemasWhole: (schemaDeletions) => { - return schemaService.deleteSchemas(schemaDeletions); - }, - getFoldingRanges: getFoldingRanges2, - getCodeAction: (document, params) => { - return yamlCodeActions.getCodeAction(document, params); - }, - getCodeLens: (document, params) => { - return yamlCodeLens.getCodeLens(document, params); - }, - resolveCodeLens: (param) => yamlCodeLens.resolveCodeLens(param) - }; -} - -// src/constants.ts -var languageId = "yaml"; - -// src/yamlWorker.ts -async function schemaRequestService(uri) { - const response = await fetch(uri); - if (response.ok) { - return response.text(); - } - throw new Error(`Schema request failed for ${uri}`); -} -function createYAMLWorker(ctx, { enableSchemaRequest, languageSettings }) { - const languageService = getLanguageService(enableSchemaRequest ? schemaRequestService : null, null, null, null); - languageService.configure(languageSettings); - const getTextDocument = (uri) => { - const models = ctx.getMirrorModels(); - for (const model of models) { - if (String(model.uri) === uri) { - return TextDocument2.create(uri, languageId, model.version, model.getValue()); - } - } - return null; - }; - return { - doValidation(uri) { - const document = getTextDocument(uri); - if (document) { - return languageService.doValidation(document, languageSettings.isKubernetes); - } - return []; - }, - doComplete(uri, position) { - const document = getTextDocument(uri); - return languageService.doComplete(document, position, languageSettings.isKubernetes); - }, - doDefinition(uri, position) { - const document = getTextDocument(uri); - return languageService.doDefinition(document, { position, textDocument: { uri } }); - }, - doHover(uri, position) { - const document = getTextDocument(uri); - return languageService.doHover(document, position); - }, - format(uri, options) { - const document = getTextDocument(uri); - return languageService.doFormat(document, options); - }, - resetSchema(uri) { - return languageService.resetSchema(uri); - }, - findDocumentSymbols(uri) { - const document = getTextDocument(uri); - return languageService.findDocumentSymbols2(document, {}); - }, - findLinks(uri) { - const document = getTextDocument(uri); - return Promise.resolve(languageService.findLinks(document)); - } - }; -} - -// src/yaml.worker.ts -self.onmessage = () => { - initialize((ctx, createData) => Object.create(createYAMLWorker(ctx, createData))); -}; -//# sourceMappingURL=yaml.worker.js.map diff --git a/experimental/live-editor/src/monaco-yaml/yaml.worker.js.map b/experimental/live-editor/src/monaco-yaml/yaml.worker.js.map deleted file mode 100644 index 3596dd625..000000000 --- a/experimental/live-editor/src/monaco-yaml/yaml.worker.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["src/yaml.worker.ts", "src/yamlWorker.ts", "node_modules/vscode-json-languageservice/lib/esm/services/jsonSchemaService.js", "node_modules/vscode-uri/lib/esm/webpack:/LIB/node_modules/path-browserify/index.js", "node_modules/vscode-uri/lib/esm/webpack:/LIB/src/platform.ts", "node_modules/vscode-uri/lib/esm/webpack:/LIB/src/uri.ts", "node_modules/vscode-uri/lib/esm/webpack:/LIB/src/utils.ts", "node_modules/vscode-uri/lib/esm/webpack:/LIB/webpack/bootstrap", "node_modules/vscode-uri/lib/esm/webpack:/LIB/webpack/startup", "node_modules/vscode-uri/lib/esm/webpack:/LIB/webpack/runtime/define property getters", "node_modules/vscode-uri/lib/esm/webpack:/LIB/webpack/runtime/hasOwnProperty shorthand", "node_modules/vscode-uri/lib/esm/webpack:/LIB/webpack/runtime/make namespace object", "node_modules/vscode-json-languageservice/lib/esm/utils/strings.js", "node_modules/vscode-json-languageservice/lib/esm/parser/jsonParser.js", "node_modules/vscode-json-languageservice/lib/esm/utils/objects.js", "node_modules/vscode-json-languageservice/lib/esm/jsonLanguageTypes.js", "src/fillers/vscode-nls.ts", "node_modules/vscode-json-languageservice/lib/esm/utils/glob.js", "node_modules/yaml-language-server/src/languageservice/utils/strings.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlSchemaService.ts", "node_modules/yaml-language-server/src/languageservice/parser/yamlParser07.ts", "node_modules/yaml-language-server/src/languageservice/parser/jsonParser07.ts", "node_modules/yaml-language-server/src/languageservice/utils/objects.ts", "node_modules/yaml-language-server/src/languageservice/utils/schemaUtils.ts", "node_modules/vscode-json-languageservice/lib/esm/services/jsonCompletion.js", "node_modules/vscode-json-languageservice/lib/esm/utils/json.js", "node_modules/vscode-json-languageservice/lib/esm/services/jsonHover.js", "node_modules/vscode-json-languageservice/lib/esm/services/jsonValidation.js", "node_modules/vscode-json-languageservice/lib/esm/utils/colors.js", "node_modules/vscode-json-languageservice/lib/esm/services/jsonDocumentSymbols.js", "node_modules/vscode-json-languageservice/lib/esm/services/configuration.js", "node_modules/vscode-json-languageservice/lib/esm/services/jsonFolding.js", "node_modules/vscode-json-languageservice/lib/esm/services/jsonSelectionRanges.js", "node_modules/vscode-json-languageservice/lib/esm/jsonLanguageService.js", "node_modules/vscode-json-languageservice/lib/esm/services/jsonLinks.js", "node_modules/yaml-language-server/src/languageservice/utils/arrUtils.ts", "node_modules/yaml-language-server/src/languageservice/parser/yaml-documents.ts", "node_modules/yaml-language-server/src/languageservice/parser/ast-converter.ts", "node_modules/yaml-language-server/src/languageservice/utils/astUtils.ts", "node_modules/yaml-language-server/src/languageservice/parser/custom-tag-provider.ts", "node_modules/yaml-language-server/src/languageservice/services/modelineUtil.ts", "node_modules/yaml-language-server/src/languageservice/services/documentSymbols.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlHover.ts", "node_modules/yaml-language-server/src/languageservice/parser/isKubernetes.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlValidation.ts", "node_modules/yaml-language-server/src/languageservice/utils/textBuffer.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlFormatter.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlLinks.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlFolding.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlCodeActions.ts", "node_modules/yaml-language-server/src/commands.ts", "node_modules/yaml-language-server/src/languageserver/commandExecutor.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlOnTypeFormatting.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlCodeLens.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlCommands.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlCompletion.ts", "node_modules/yaml-language-server/src/languageservice/utils/indentationGuesser.ts", "node_modules/yaml-language-server/src/languageservice/utils/json.ts", "node_modules/yaml-language-server/src/languageservice/services/yamlDefinition.ts", "node_modules/yaml-language-server/src/languageservice/yamlLanguageService.ts", "src/constants.ts"], - "sourcesContent": ["import { initialize } from 'monaco-editor/esm/vs/editor/editor.worker.js';\n\nimport { createYAMLWorker, ICreateData } from './yamlWorker';\n\nself.onmessage = () => {\n initialize((ctx, createData: ICreateData) => Object.create(createYAMLWorker(ctx, createData)));\n};\n", "import { worker } from 'monaco-editor/esm/vs/editor/editor.api.js';\nimport { Promisable } from 'type-fest';\nimport { TextDocument } from 'vscode-languageserver-textdocument';\nimport * as ls from 'vscode-languageserver-types';\nimport {\n CustomFormatterOptions,\n getLanguageService,\n LanguageSettings,\n} from 'yaml-language-server/lib/esm/languageservice/yamlLanguageService.js';\n\nimport { languageId } from './constants';\n\nasync function schemaRequestService(uri: string): Promise {\n const response = await fetch(uri);\n if (response.ok) {\n return response.text();\n }\n throw new Error(`Schema request failed for ${uri}`);\n}\n\nexport interface YAMLWorker {\n doValidation: (uri: string) => Promisable;\n\n doComplete: (uri: string, position: ls.Position) => Promisable;\n\n doDefinition: (uri: string, position: ls.Position) => Promisable;\n\n doHover: (uri: string, position: ls.Position) => Promisable;\n\n format: (uri: string, options: CustomFormatterOptions) => Promisable;\n\n resetSchema: (uri: string) => Promisable;\n\n findDocumentSymbols: (uri: string) => Promisable;\n\n findLinks: (uri: string) => Promisable;\n}\n\nexport function createYAMLWorker(\n ctx: worker.IWorkerContext,\n { enableSchemaRequest, languageSettings }: ICreateData,\n): YAMLWorker {\n const languageService = getLanguageService(\n enableSchemaRequest ? schemaRequestService : null,\n null,\n null,\n null,\n );\n languageService.configure(languageSettings);\n\n const getTextDocument = (uri: string): TextDocument => {\n const models = ctx.getMirrorModels();\n for (const model of models) {\n if (String(model.uri) === uri) {\n return TextDocument.create(uri, languageId, model.version, model.getValue());\n }\n }\n return null;\n };\n\n return {\n doValidation(uri) {\n const document = getTextDocument(uri);\n if (document) {\n return languageService.doValidation(document, languageSettings.isKubernetes);\n }\n return [];\n },\n\n doComplete(uri, position) {\n const document = getTextDocument(uri);\n return languageService.doComplete(document, position, languageSettings.isKubernetes);\n },\n\n doDefinition(uri, position) {\n const document = getTextDocument(uri);\n return languageService.doDefinition(document, { position, textDocument: { uri } });\n },\n\n doHover(uri, position) {\n const document = getTextDocument(uri);\n return languageService.doHover(document, position);\n },\n\n format(uri, options) {\n const document = getTextDocument(uri);\n return languageService.doFormat(document, options);\n },\n\n resetSchema(uri) {\n return languageService.resetSchema(uri);\n },\n\n findDocumentSymbols(uri) {\n const document = getTextDocument(uri);\n return languageService.findDocumentSymbols2(document, {});\n },\n\n findLinks(uri) {\n const document = getTextDocument(uri);\n return Promise.resolve(languageService.findLinks(document));\n },\n };\n}\n\nexport interface ICreateData {\n languageSettings: LanguageSettings;\n enableSchemaRequest: boolean;\n isKubernetes?: boolean;\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Json from 'jsonc-parser';\nimport { URI } from 'vscode-uri';\nimport * as Strings from '../utils/strings';\nimport * as Parser from '../parser/jsonParser';\nimport * as nls from 'vscode-nls';\nimport { createRegex } from '../utils/glob';\nvar localize = nls.loadMessageBundle();\nvar BANG = '!';\nvar PATH_SEP = '/';\nvar FilePatternAssociation = /** @class */ (function () {\n function FilePatternAssociation(pattern, uris) {\n this.globWrappers = [];\n try {\n for (var _i = 0, pattern_1 = pattern; _i < pattern_1.length; _i++) {\n var patternString = pattern_1[_i];\n var include = patternString[0] !== BANG;\n if (!include) {\n patternString = patternString.substring(1);\n }\n if (patternString.length > 0) {\n if (patternString[0] === PATH_SEP) {\n patternString = patternString.substring(1);\n }\n this.globWrappers.push({\n regexp: createRegex('**/' + patternString, { extended: true, globstar: true }),\n include: include,\n });\n }\n }\n ;\n this.uris = uris;\n }\n catch (e) {\n this.globWrappers.length = 0;\n this.uris = [];\n }\n }\n FilePatternAssociation.prototype.matchesPattern = function (fileName) {\n var match = false;\n for (var _i = 0, _a = this.globWrappers; _i < _a.length; _i++) {\n var _b = _a[_i], regexp = _b.regexp, include = _b.include;\n if (regexp.test(fileName)) {\n match = include;\n }\n }\n return match;\n };\n FilePatternAssociation.prototype.getURIs = function () {\n return this.uris;\n };\n return FilePatternAssociation;\n}());\nvar SchemaHandle = /** @class */ (function () {\n function SchemaHandle(service, url, unresolvedSchemaContent) {\n this.service = service;\n this.url = url;\n this.dependencies = {};\n if (unresolvedSchemaContent) {\n this.unresolvedSchema = this.service.promise.resolve(new UnresolvedSchema(unresolvedSchemaContent));\n }\n }\n SchemaHandle.prototype.getUnresolvedSchema = function () {\n if (!this.unresolvedSchema) {\n this.unresolvedSchema = this.service.loadSchema(this.url);\n }\n return this.unresolvedSchema;\n };\n SchemaHandle.prototype.getResolvedSchema = function () {\n var _this = this;\n if (!this.resolvedSchema) {\n this.resolvedSchema = this.getUnresolvedSchema().then(function (unresolved) {\n return _this.service.resolveSchemaContent(unresolved, _this.url, _this.dependencies);\n });\n }\n return this.resolvedSchema;\n };\n SchemaHandle.prototype.clearSchema = function () {\n this.resolvedSchema = undefined;\n this.unresolvedSchema = undefined;\n this.dependencies = {};\n };\n return SchemaHandle;\n}());\nvar UnresolvedSchema = /** @class */ (function () {\n function UnresolvedSchema(schema, errors) {\n if (errors === void 0) { errors = []; }\n this.schema = schema;\n this.errors = errors;\n }\n return UnresolvedSchema;\n}());\nexport { UnresolvedSchema };\nvar ResolvedSchema = /** @class */ (function () {\n function ResolvedSchema(schema, errors) {\n if (errors === void 0) { errors = []; }\n this.schema = schema;\n this.errors = errors;\n }\n ResolvedSchema.prototype.getSection = function (path) {\n var schemaRef = this.getSectionRecursive(path, this.schema);\n if (schemaRef) {\n return Parser.asSchema(schemaRef);\n }\n return undefined;\n };\n ResolvedSchema.prototype.getSectionRecursive = function (path, schema) {\n if (!schema || typeof schema === 'boolean' || path.length === 0) {\n return schema;\n }\n var next = path.shift();\n if (schema.properties && typeof schema.properties[next]) {\n return this.getSectionRecursive(path, schema.properties[next]);\n }\n else if (schema.patternProperties) {\n for (var _i = 0, _a = Object.keys(schema.patternProperties); _i < _a.length; _i++) {\n var pattern = _a[_i];\n var regex = Strings.extendedRegExp(pattern);\n if (regex === null || regex === void 0 ? void 0 : regex.test(next)) {\n return this.getSectionRecursive(path, schema.patternProperties[pattern]);\n }\n }\n }\n else if (typeof schema.additionalProperties === 'object') {\n return this.getSectionRecursive(path, schema.additionalProperties);\n }\n else if (next.match('[0-9]+')) {\n if (Array.isArray(schema.items)) {\n var index = parseInt(next, 10);\n if (!isNaN(index) && schema.items[index]) {\n return this.getSectionRecursive(path, schema.items[index]);\n }\n }\n else if (schema.items) {\n return this.getSectionRecursive(path, schema.items);\n }\n }\n return undefined;\n };\n return ResolvedSchema;\n}());\nexport { ResolvedSchema };\nvar JSONSchemaService = /** @class */ (function () {\n function JSONSchemaService(requestService, contextService, promiseConstructor) {\n this.contextService = contextService;\n this.requestService = requestService;\n this.promiseConstructor = promiseConstructor || Promise;\n this.callOnDispose = [];\n this.contributionSchemas = {};\n this.contributionAssociations = [];\n this.schemasById = {};\n this.filePatternAssociations = [];\n this.registeredSchemasIds = {};\n }\n JSONSchemaService.prototype.getRegisteredSchemaIds = function (filter) {\n return Object.keys(this.registeredSchemasIds).filter(function (id) {\n var scheme = URI.parse(id).scheme;\n return scheme !== 'schemaservice' && (!filter || filter(scheme));\n });\n };\n Object.defineProperty(JSONSchemaService.prototype, \"promise\", {\n get: function () {\n return this.promiseConstructor;\n },\n enumerable: false,\n configurable: true\n });\n JSONSchemaService.prototype.dispose = function () {\n while (this.callOnDispose.length > 0) {\n this.callOnDispose.pop()();\n }\n };\n JSONSchemaService.prototype.onResourceChange = function (uri) {\n var _this = this;\n // always clear this local cache when a resource changes\n this.cachedSchemaForResource = undefined;\n var hasChanges = false;\n uri = normalizeId(uri);\n var toWalk = [uri];\n var all = Object.keys(this.schemasById).map(function (key) { return _this.schemasById[key]; });\n while (toWalk.length) {\n var curr = toWalk.pop();\n for (var i = 0; i < all.length; i++) {\n var handle = all[i];\n if (handle && (handle.url === curr || handle.dependencies[curr])) {\n if (handle.url !== curr) {\n toWalk.push(handle.url);\n }\n handle.clearSchema();\n all[i] = undefined;\n hasChanges = true;\n }\n }\n }\n return hasChanges;\n };\n JSONSchemaService.prototype.setSchemaContributions = function (schemaContributions) {\n if (schemaContributions.schemas) {\n var schemas = schemaContributions.schemas;\n for (var id in schemas) {\n var normalizedId = normalizeId(id);\n this.contributionSchemas[normalizedId] = this.addSchemaHandle(normalizedId, schemas[id]);\n }\n }\n if (Array.isArray(schemaContributions.schemaAssociations)) {\n var schemaAssociations = schemaContributions.schemaAssociations;\n for (var _i = 0, schemaAssociations_1 = schemaAssociations; _i < schemaAssociations_1.length; _i++) {\n var schemaAssociation = schemaAssociations_1[_i];\n var uris = schemaAssociation.uris.map(normalizeId);\n var association = this.addFilePatternAssociation(schemaAssociation.pattern, uris);\n this.contributionAssociations.push(association);\n }\n }\n };\n JSONSchemaService.prototype.addSchemaHandle = function (id, unresolvedSchemaContent) {\n var schemaHandle = new SchemaHandle(this, id, unresolvedSchemaContent);\n this.schemasById[id] = schemaHandle;\n return schemaHandle;\n };\n JSONSchemaService.prototype.getOrAddSchemaHandle = function (id, unresolvedSchemaContent) {\n return this.schemasById[id] || this.addSchemaHandle(id, unresolvedSchemaContent);\n };\n JSONSchemaService.prototype.addFilePatternAssociation = function (pattern, uris) {\n var fpa = new FilePatternAssociation(pattern, uris);\n this.filePatternAssociations.push(fpa);\n return fpa;\n };\n JSONSchemaService.prototype.registerExternalSchema = function (uri, filePatterns, unresolvedSchemaContent) {\n var id = normalizeId(uri);\n this.registeredSchemasIds[id] = true;\n this.cachedSchemaForResource = undefined;\n if (filePatterns) {\n this.addFilePatternAssociation(filePatterns, [id]);\n }\n return unresolvedSchemaContent ? this.addSchemaHandle(id, unresolvedSchemaContent) : this.getOrAddSchemaHandle(id);\n };\n JSONSchemaService.prototype.clearExternalSchemas = function () {\n this.schemasById = {};\n this.filePatternAssociations = [];\n this.registeredSchemasIds = {};\n this.cachedSchemaForResource = undefined;\n for (var id in this.contributionSchemas) {\n this.schemasById[id] = this.contributionSchemas[id];\n this.registeredSchemasIds[id] = true;\n }\n for (var _i = 0, _a = this.contributionAssociations; _i < _a.length; _i++) {\n var contributionAssociation = _a[_i];\n this.filePatternAssociations.push(contributionAssociation);\n }\n };\n JSONSchemaService.prototype.getResolvedSchema = function (schemaId) {\n var id = normalizeId(schemaId);\n var schemaHandle = this.schemasById[id];\n if (schemaHandle) {\n return schemaHandle.getResolvedSchema();\n }\n return this.promise.resolve(undefined);\n };\n JSONSchemaService.prototype.loadSchema = function (url) {\n if (!this.requestService) {\n var errorMessage = localize('json.schema.norequestservice', 'Unable to load schema from \\'{0}\\'. No schema request service available', toDisplayString(url));\n return this.promise.resolve(new UnresolvedSchema({}, [errorMessage]));\n }\n return this.requestService(url).then(function (content) {\n if (!content) {\n var errorMessage = localize('json.schema.nocontent', 'Unable to load schema from \\'{0}\\': No content.', toDisplayString(url));\n return new UnresolvedSchema({}, [errorMessage]);\n }\n var schemaContent = {};\n var jsonErrors = [];\n schemaContent = Json.parse(content, jsonErrors);\n var errors = jsonErrors.length ? [localize('json.schema.invalidFormat', 'Unable to parse content from \\'{0}\\': Parse error at offset {1}.', toDisplayString(url), jsonErrors[0].offset)] : [];\n return new UnresolvedSchema(schemaContent, errors);\n }, function (error) {\n var errorMessage = error.toString();\n var errorSplit = error.toString().split('Error: ');\n if (errorSplit.length > 1) {\n // more concise error message, URL and context are attached by caller anyways\n errorMessage = errorSplit[1];\n }\n if (Strings.endsWith(errorMessage, '.')) {\n errorMessage = errorMessage.substr(0, errorMessage.length - 1);\n }\n return new UnresolvedSchema({}, [localize('json.schema.nocontent', 'Unable to load schema from \\'{0}\\': {1}.', toDisplayString(url), errorMessage)]);\n });\n };\n JSONSchemaService.prototype.resolveSchemaContent = function (schemaToResolve, schemaURL, dependencies) {\n var _this = this;\n var resolveErrors = schemaToResolve.errors.slice(0);\n var schema = schemaToResolve.schema;\n if (schema.$schema) {\n var id = normalizeId(schema.$schema);\n if (id === 'http://json-schema.org/draft-03/schema') {\n return this.promise.resolve(new ResolvedSchema({}, [localize('json.schema.draft03.notsupported', \"Draft-03 schemas are not supported.\")]));\n }\n else if (id === 'https://json-schema.org/draft/2019-09/schema') {\n resolveErrors.push(localize('json.schema.draft201909.notsupported', \"Draft 2019-09 schemas are not yet fully supported.\"));\n }\n }\n var contextService = this.contextService;\n var findSection = function (schema, path) {\n if (!path) {\n return schema;\n }\n var current = schema;\n if (path[0] === '/') {\n path = path.substr(1);\n }\n path.split('/').some(function (part) {\n part = part.replace(/~1/g, '/').replace(/~0/g, '~');\n current = current[part];\n return !current;\n });\n return current;\n };\n var merge = function (target, sourceRoot, sourceURI, refSegment) {\n var path = refSegment ? decodeURIComponent(refSegment) : undefined;\n var section = findSection(sourceRoot, path);\n if (section) {\n for (var key in section) {\n if (section.hasOwnProperty(key) && !target.hasOwnProperty(key)) {\n target[key] = section[key];\n }\n }\n }\n else {\n resolveErrors.push(localize('json.schema.invalidref', '$ref \\'{0}\\' in \\'{1}\\' can not be resolved.', path, sourceURI));\n }\n };\n var resolveExternalLink = function (node, uri, refSegment, parentSchemaURL, parentSchemaDependencies) {\n if (contextService && !/^[A-Za-z][A-Za-z0-9+\\-.+]*:\\/\\/.*/.test(uri)) {\n uri = contextService.resolveRelativePath(uri, parentSchemaURL);\n }\n uri = normalizeId(uri);\n var referencedHandle = _this.getOrAddSchemaHandle(uri);\n return referencedHandle.getUnresolvedSchema().then(function (unresolvedSchema) {\n parentSchemaDependencies[uri] = true;\n if (unresolvedSchema.errors.length) {\n var loc = refSegment ? uri + '#' + refSegment : uri;\n resolveErrors.push(localize('json.schema.problemloadingref', 'Problems loading reference \\'{0}\\': {1}', loc, unresolvedSchema.errors[0]));\n }\n merge(node, unresolvedSchema.schema, uri, refSegment);\n return resolveRefs(node, unresolvedSchema.schema, uri, referencedHandle.dependencies);\n });\n };\n var resolveRefs = function (node, parentSchema, parentSchemaURL, parentSchemaDependencies) {\n if (!node || typeof node !== 'object') {\n return Promise.resolve(null);\n }\n var toWalk = [node];\n var seen = [];\n var openPromises = [];\n var collectEntries = function () {\n var entries = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n entries[_i] = arguments[_i];\n }\n for (var _a = 0, entries_1 = entries; _a < entries_1.length; _a++) {\n var entry = entries_1[_a];\n if (typeof entry === 'object') {\n toWalk.push(entry);\n }\n }\n };\n var collectMapEntries = function () {\n var maps = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n maps[_i] = arguments[_i];\n }\n for (var _a = 0, maps_1 = maps; _a < maps_1.length; _a++) {\n var map = maps_1[_a];\n if (typeof map === 'object') {\n for (var k in map) {\n var key = k;\n var entry = map[key];\n if (typeof entry === 'object') {\n toWalk.push(entry);\n }\n }\n }\n }\n };\n var collectArrayEntries = function () {\n var arrays = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n arrays[_i] = arguments[_i];\n }\n for (var _a = 0, arrays_1 = arrays; _a < arrays_1.length; _a++) {\n var array = arrays_1[_a];\n if (Array.isArray(array)) {\n for (var _b = 0, array_1 = array; _b < array_1.length; _b++) {\n var entry = array_1[_b];\n if (typeof entry === 'object') {\n toWalk.push(entry);\n }\n }\n }\n }\n };\n var handleRef = function (next) {\n var seenRefs = [];\n while (next.$ref) {\n var ref = next.$ref;\n var segments = ref.split('#', 2);\n delete next.$ref;\n if (segments[0].length > 0) {\n openPromises.push(resolveExternalLink(next, segments[0], segments[1], parentSchemaURL, parentSchemaDependencies));\n return;\n }\n else {\n if (seenRefs.indexOf(ref) === -1) {\n merge(next, parentSchema, parentSchemaURL, segments[1]); // can set next.$ref again, use seenRefs to avoid circle\n seenRefs.push(ref);\n }\n }\n }\n collectEntries(next.items, next.additionalItems, next.additionalProperties, next.not, next.contains, next.propertyNames, next.if, next.then, next.else);\n collectMapEntries(next.definitions, next.properties, next.patternProperties, next.dependencies);\n collectArrayEntries(next.anyOf, next.allOf, next.oneOf, next.items);\n };\n while (toWalk.length) {\n var next = toWalk.pop();\n if (seen.indexOf(next) >= 0) {\n continue;\n }\n seen.push(next);\n handleRef(next);\n }\n return _this.promise.all(openPromises);\n };\n return resolveRefs(schema, schema, schemaURL, dependencies).then(function (_) { return new ResolvedSchema(schema, resolveErrors); });\n };\n JSONSchemaService.prototype.getSchemaForResource = function (resource, document) {\n // first use $schema if present\n if (document && document.root && document.root.type === 'object') {\n var schemaProperties = document.root.properties.filter(function (p) { return (p.keyNode.value === '$schema') && p.valueNode && p.valueNode.type === 'string'; });\n if (schemaProperties.length > 0) {\n var valueNode = schemaProperties[0].valueNode;\n if (valueNode && valueNode.type === 'string') {\n var schemeId = Parser.getNodeValue(valueNode);\n if (schemeId && Strings.startsWith(schemeId, '.') && this.contextService) {\n schemeId = this.contextService.resolveRelativePath(schemeId, resource);\n }\n if (schemeId) {\n var id = normalizeId(schemeId);\n return this.getOrAddSchemaHandle(id).getResolvedSchema();\n }\n }\n }\n }\n if (this.cachedSchemaForResource && this.cachedSchemaForResource.resource === resource) {\n return this.cachedSchemaForResource.resolvedSchema;\n }\n var seen = Object.create(null);\n var schemas = [];\n var normalizedResource = normalizeResourceForMatching(resource);\n for (var _i = 0, _a = this.filePatternAssociations; _i < _a.length; _i++) {\n var entry = _a[_i];\n if (entry.matchesPattern(normalizedResource)) {\n for (var _b = 0, _c = entry.getURIs(); _b < _c.length; _b++) {\n var schemaId = _c[_b];\n if (!seen[schemaId]) {\n schemas.push(schemaId);\n seen[schemaId] = true;\n }\n }\n }\n }\n var resolvedSchema = schemas.length > 0 ? this.createCombinedSchema(resource, schemas).getResolvedSchema() : this.promise.resolve(undefined);\n this.cachedSchemaForResource = { resource: resource, resolvedSchema: resolvedSchema };\n return resolvedSchema;\n };\n JSONSchemaService.prototype.createCombinedSchema = function (resource, schemaIds) {\n if (schemaIds.length === 1) {\n return this.getOrAddSchemaHandle(schemaIds[0]);\n }\n else {\n var combinedSchemaId = 'schemaservice://combinedSchema/' + encodeURIComponent(resource);\n var combinedSchema = {\n allOf: schemaIds.map(function (schemaId) { return ({ $ref: schemaId }); })\n };\n return this.addSchemaHandle(combinedSchemaId, combinedSchema);\n }\n };\n JSONSchemaService.prototype.getMatchingSchemas = function (document, jsonDocument, schema) {\n if (schema) {\n var id = schema.id || ('schemaservice://untitled/matchingSchemas/' + idCounter++);\n return this.resolveSchemaContent(new UnresolvedSchema(schema), id, {}).then(function (resolvedSchema) {\n return jsonDocument.getMatchingSchemas(resolvedSchema.schema).filter(function (s) { return !s.inverted; });\n });\n }\n return this.getSchemaForResource(document.uri, jsonDocument).then(function (schema) {\n if (schema) {\n return jsonDocument.getMatchingSchemas(schema.schema).filter(function (s) { return !s.inverted; });\n }\n return [];\n });\n };\n return JSONSchemaService;\n}());\nexport { JSONSchemaService };\nvar idCounter = 0;\nfunction normalizeId(id) {\n // remove trailing '#', normalize drive capitalization\n try {\n return URI.parse(id).toString();\n }\n catch (e) {\n return id;\n }\n}\nfunction normalizeResourceForMatching(resource) {\n // remove queries and fragments, normalize drive capitalization\n try {\n return URI.parse(resource).with({ fragment: null, query: null }).toString();\n }\n catch (e) {\n return resource;\n }\n}\nfunction toDisplayString(url) {\n try {\n var uri = URI.parse(url);\n if (uri.scheme === 'file') {\n return uri.fsPath;\n }\n }\n catch (e) {\n // ignore\n }\n return url;\n}\n", "// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\n\n// !!!!!\n// SEE https://github.com/microsoft/vscode/blob/master/src/vs/base/common/platform.ts\n// !!!!!\n\ndeclare const process: { platform: 'win32' };\ndeclare const navigator: { userAgent: string };\n\nexport let isWindows: boolean;\n\nif (typeof process === 'object') {\n\tisWindows = process.platform === 'win32';\n} else if (typeof navigator === 'object') {\n\tlet userAgent = navigator.userAgent;\n\tisWindows = userAgent.indexOf('Windows') >= 0;\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n'use strict';\n\nimport { CharCode } from './charCode'\nimport { isWindows } from './platform';\n\nconst _schemePattern = /^\\w[\\w\\d+.-]*$/;\nconst _singleSlashStart = /^\\//;\nconst _doubleSlashStart = /^\\/\\//;\n\nfunction _validateUri(ret: URI, _strict?: boolean): void {\n\n\t// scheme, must be set\n\tif (!ret.scheme && _strict) {\n\t\tthrow new Error(`[UriError]: Scheme is missing: {scheme: \"\", authority: \"${ret.authority}\", path: \"${ret.path}\", query: \"${ret.query}\", fragment: \"${ret.fragment}\"}`);\n\t}\n\n\t// scheme, https://tools.ietf.org/html/rfc3986#section-3.1\n\t// ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n\tif (ret.scheme && !_schemePattern.test(ret.scheme)) {\n\t\tthrow new Error('[UriError]: Scheme contains illegal characters.');\n\t}\n\n\t// path, http://tools.ietf.org/html/rfc3986#section-3.3\n\t// If a URI contains an authority component, then the path component\n\t// must either be empty or begin with a slash (\"/\") character. If a URI\n\t// does not contain an authority component, then the path cannot begin\n\t// with two slash characters (\"//\").\n\tif (ret.path) {\n\t\tif (ret.authority) {\n\t\t\tif (!_singleSlashStart.test(ret.path)) {\n\t\t\t\tthrow new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash (\"/\") character');\n\t\t\t}\n\t\t} else {\n\t\t\tif (_doubleSlashStart.test(ret.path)) {\n\t\t\t\tthrow new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters (\"//\")');\n\t\t\t}\n\t\t}\n\t}\n}\n\n// for a while we allowed uris *without* schemes and this is the migration\n// for them, e.g. an uri without scheme and without strict-mode warns and falls\n// back to the file-scheme. that should cause the least carnage and still be a\n// clear warning\nfunction _schemeFix(scheme: string, _strict: boolean): string {\n\tif (!scheme && !_strict) {\n\t\treturn 'file';\n\t}\n\treturn scheme;\n}\n\n// implements a bit of https://tools.ietf.org/html/rfc3986#section-5\nfunction _referenceResolution(scheme: string, path: string): string {\n\n\t// the slash-character is our 'default base' as we don't\n\t// support constructing URIs relative to other URIs. This\n\t// also means that we alter and potentially break paths.\n\t// see https://tools.ietf.org/html/rfc3986#section-5.1.4\n\tswitch (scheme) {\n\t\tcase 'https':\n\t\tcase 'http':\n\t\tcase 'file':\n\t\t\tif (!path) {\n\t\t\t\tpath = _slash;\n\t\t\t} else if (path[0] !== _slash) {\n\t\t\t\tpath = _slash + path;\n\t\t\t}\n\t\t\tbreak;\n\t}\n\treturn path;\n}\n\nconst _empty = '';\nconst _slash = '/';\nconst _regexp = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/;\n\n/**\n * Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.\n * This class is a simple parser which creates the basic component parts\n * (http://tools.ietf.org/html/rfc3986#section-3) with minimal validation\n * and encoding.\n *\n * ```txt\n * foo://example.com:8042/over/there?name=ferret#nose\n * \\_/ \\______________/\\_________/ \\_________/ \\__/\n * | | | | |\n * scheme authority path query fragment\n * | _____________________|__\n * / \\ / \\\n * urn:example:animal:ferret:nose\n * ```\n */\nexport class URI implements UriComponents {\n\n\tstatic isUri(thing: any): thing is URI {\n\t\tif (thing instanceof URI) {\n\t\t\treturn true;\n\t\t}\n\t\tif (!thing) {\n\t\t\treturn false;\n\t\t}\n\t\treturn typeof (thing).authority === 'string'\n\t\t\t&& typeof (thing).fragment === 'string'\n\t\t\t&& typeof (thing).path === 'string'\n\t\t\t&& typeof (thing).query === 'string'\n\t\t\t&& typeof (thing).scheme === 'string'\n\t\t\t&& typeof (thing).fsPath === 'function'\n\t\t\t&& typeof (thing).with === 'function'\n\t\t\t&& typeof (thing).toString === 'function';\n\t}\n\n\t/**\n\t * scheme is the 'http' part of 'http://www.msft.com/some/path?query#fragment'.\n\t * The part before the first colon.\n\t */\n\treadonly scheme: string;\n\n\t/**\n\t * authority is the 'www.msft.com' part of 'http://www.msft.com/some/path?query#fragment'.\n\t * The part between the first double slashes and the next slash.\n\t */\n\treadonly authority: string;\n\n\t/**\n\t * path is the '/some/path' part of 'http://www.msft.com/some/path?query#fragment'.\n\t */\n\treadonly path: string;\n\n\t/**\n\t * query is the 'query' part of 'http://www.msft.com/some/path?query#fragment'.\n\t */\n\treadonly query: string;\n\n\t/**\n\t * fragment is the 'fragment' part of 'http://www.msft.com/some/path?query#fragment'.\n\t */\n\treadonly fragment: string;\n\n\t/**\n\t * @internal\n\t */\n\tprotected constructor(scheme: string, authority?: string, path?: string, query?: string, fragment?: string, _strict?: boolean);\n\n\t/**\n\t * @internal\n\t */\n\tprotected constructor(components: UriComponents);\n\n\t/**\n\t * @internal\n\t */\n\tprotected constructor(schemeOrData: string | UriComponents, authority?: string, path?: string, query?: string, fragment?: string, _strict: boolean = false) {\n\n\t\tif (typeof schemeOrData === 'object') {\n\t\t\tthis.scheme = schemeOrData.scheme || _empty;\n\t\t\tthis.authority = schemeOrData.authority || _empty;\n\t\t\tthis.path = schemeOrData.path || _empty;\n\t\t\tthis.query = schemeOrData.query || _empty;\n\t\t\tthis.fragment = schemeOrData.fragment || _empty;\n\t\t\t// no validation because it's this URI\n\t\t\t// that creates uri components.\n\t\t\t// _validateUri(this);\n\t\t} else {\n\t\t\tthis.scheme = _schemeFix(schemeOrData, _strict);\n\t\t\tthis.authority = authority || _empty;\n\t\t\tthis.path = _referenceResolution(this.scheme, path || _empty);\n\t\t\tthis.query = query || _empty;\n\t\t\tthis.fragment = fragment || _empty;\n\n\t\t\t_validateUri(this, _strict);\n\t\t}\n\t}\n\n\t// ---- filesystem path -----------------------\n\n\t/**\n\t * Returns a string representing the corresponding file system path of this URI.\n\t * Will handle UNC paths, normalizes windows drive letters to lower-case, and uses the\n\t * platform specific path separator.\n\t *\n\t * * Will *not* validate the path for invalid characters and semantics.\n\t * * Will *not* look at the scheme of this URI.\n\t * * The result shall *not* be used for display purposes but for accessing a file on disk.\n\t *\n\t *\n\t * The *difference* to `URI#path` is the use of the platform specific separator and the handling\n\t * of UNC paths. See the below sample of a file-uri with an authority (UNC path).\n\t *\n\t * ```ts\n\t\tconst u = URI.parse('file://server/c$/folder/file.txt')\n\t\tu.authority === 'server'\n\t\tu.path === '/shares/c$/file.txt'\n\t\tu.fsPath === '\\\\server\\c$\\folder\\file.txt'\n\t```\n\t *\n\t * Using `URI#path` to read a file (using fs-apis) would not be enough because parts of the path,\n\t * namely the server name, would be missing. Therefore `URI#fsPath` exists - it's sugar to ease working\n\t * with URIs that represent files on disk (`file` scheme).\n\t */\n\tget fsPath(): string {\n\t\t// if (this.scheme !== 'file') {\n\t\t// \tconsole.warn(`[UriError] calling fsPath with scheme ${this.scheme}`);\n\t\t// }\n\t\treturn uriToFsPath(this, false);\n\t}\n\n\t// ---- modify to new -------------------------\n\n\twith(change: { scheme?: string; authority?: string | null; path?: string | null; query?: string | null; fragment?: string | null }): URI {\n\n\t\tif (!change) {\n\t\t\treturn this;\n\t\t}\n\n\t\tlet { scheme, authority, path, query, fragment } = change;\n\t\tif (scheme === undefined) {\n\t\t\tscheme = this.scheme;\n\t\t} else if (scheme === null) {\n\t\t\tscheme = _empty;\n\t\t}\n\t\tif (authority === undefined) {\n\t\t\tauthority = this.authority;\n\t\t} else if (authority === null) {\n\t\t\tauthority = _empty;\n\t\t}\n\t\tif (path === undefined) {\n\t\t\tpath = this.path;\n\t\t} else if (path === null) {\n\t\t\tpath = _empty;\n\t\t}\n\t\tif (query === undefined) {\n\t\t\tquery = this.query;\n\t\t} else if (query === null) {\n\t\t\tquery = _empty;\n\t\t}\n\t\tif (fragment === undefined) {\n\t\t\tfragment = this.fragment;\n\t\t} else if (fragment === null) {\n\t\t\tfragment = _empty;\n\t\t}\n\n\t\tif (scheme === this.scheme\n\t\t\t&& authority === this.authority\n\t\t\t&& path === this.path\n\t\t\t&& query === this.query\n\t\t\t&& fragment === this.fragment) {\n\n\t\t\treturn this;\n\t\t}\n\n\t\treturn new Uri(scheme, authority, path, query, fragment);\n\t}\n\n\t// ---- parse & validate ------------------------\n\n\t/**\n\t * Creates a new URI from a string, e.g. `http://www.msft.com/some/path`,\n\t * `file:///usr/home`, or `scheme:with/path`.\n\t *\n\t * @param value A string which represents an URI (see `URI#toString`).\n\t */\n\tstatic parse(value: string, _strict: boolean = false): URI {\n\t\tconst match = _regexp.exec(value);\n\t\tif (!match) {\n\t\t\treturn new Uri(_empty, _empty, _empty, _empty, _empty);\n\t\t}\n\t\treturn new Uri(\n\t\t\tmatch[2] || _empty,\n\t\t\tpercentDecode(match[4] || _empty),\n\t\t\tpercentDecode(match[5] || _empty),\n\t\t\tpercentDecode(match[7] || _empty),\n\t\t\tpercentDecode(match[9] || _empty),\n\t\t\t_strict\n\t\t);\n\t}\n\n\t/**\n\t * Creates a new URI from a file system path, e.g. `c:\\my\\files`,\n\t * `/usr/home`, or `\\\\server\\share\\some\\path`.\n\t *\n\t * The *difference* between `URI#parse` and `URI#file` is that the latter treats the argument\n\t * as path, not as stringified-uri. E.g. `URI.file(path)` is **not the same as**\n\t * `URI.parse('file://' + path)` because the path might contain characters that are\n\t * interpreted (# and ?). See the following sample:\n\t * ```ts\n\tconst good = URI.file('/coding/c#/project1');\n\tgood.scheme === 'file';\n\tgood.path === '/coding/c#/project1';\n\tgood.fragment === '';\n\tconst bad = URI.parse('file://' + '/coding/c#/project1');\n\tbad.scheme === 'file';\n\tbad.path === '/coding/c'; // path is now broken\n\tbad.fragment === '/project1';\n\t```\n\t *\n\t * @param path A file system path (see `URI#fsPath`)\n\t */\n\tstatic file(path: string): URI {\n\n\t\tlet authority = _empty;\n\n\t\t// normalize to fwd-slashes on windows,\n\t\t// on other systems bwd-slashes are valid\n\t\t// filename character, eg /f\\oo/ba\\r.txt\n\t\tif (isWindows) {\n\t\t\tpath = path.replace(/\\\\/g, _slash);\n\t\t}\n\n\t\t// check for authority as used in UNC shares\n\t\t// or use the path as given\n\t\tif (path[0] === _slash && path[1] === _slash) {\n\t\t\tconst idx = path.indexOf(_slash, 2);\n\t\t\tif (idx === -1) {\n\t\t\t\tauthority = path.substring(2);\n\t\t\t\tpath = _slash;\n\t\t\t} else {\n\t\t\t\tauthority = path.substring(2, idx);\n\t\t\t\tpath = path.substring(idx) || _slash;\n\t\t\t}\n\t\t}\n\n\t\treturn new Uri('file', authority, path, _empty, _empty);\n\t}\n\n\tstatic from(components: { scheme: string; authority?: string; path?: string; query?: string; fragment?: string }): URI {\n\t\treturn new Uri(\n\t\t\tcomponents.scheme,\n\t\t\tcomponents.authority,\n\t\t\tcomponents.path,\n\t\t\tcomponents.query,\n\t\t\tcomponents.fragment,\n\t\t);\n\t}\n\n\t// ---- printing/externalize ---------------------------\n\n\t/**\n\t * Creates a string representation for this URI. It's guaranteed that calling\n\t * `URI.parse` with the result of this function creates an URI which is equal\n\t * to this URI.\n\t *\n\t * * The result shall *not* be used for display purposes but for externalization or transport.\n\t * * The result will be encoded using the percentage encoding and encoding happens mostly\n\t * ignore the scheme-specific encoding rules.\n\t *\n\t * @param skipEncoding Do not encode the result, default is `false`\n\t */\n\ttoString(skipEncoding: boolean = false): string {\n\t\treturn _asFormatted(this, skipEncoding);\n\t}\n\n\ttoJSON(): UriComponents {\n\t\treturn this;\n\t}\n\n\tstatic revive(data: UriComponents | URI): URI;\n\tstatic revive(data: UriComponents | URI | undefined): URI | undefined;\n\tstatic revive(data: UriComponents | URI | null): URI | null;\n\tstatic revive(data: UriComponents | URI | undefined | null): URI | undefined | null;\n\tstatic revive(data: UriComponents | URI | undefined | null): URI | undefined | null {\n\t\tif (!data) {\n\t\t\treturn data;\n\t\t} else if (data instanceof URI) {\n\t\t\treturn data;\n\t\t} else {\n\t\t\tconst result = new Uri(data);\n\t\t\tresult._formatted = (data).external;\n\t\t\tresult._fsPath = (data)._sep === _pathSepMarker ? (data).fsPath : null;\n\t\t\treturn result;\n\t\t}\n\t}\n}\n\nexport interface UriComponents {\n\tscheme: string;\n\tauthority: string;\n\tpath: string;\n\tquery: string;\n\tfragment: string;\n}\n\ninterface UriState extends UriComponents {\n\t$mid: number;\n\texternal: string;\n\tfsPath: string;\n\t_sep: 1 | undefined;\n}\n\nconst _pathSepMarker = isWindows ? 1 : undefined;\n\n// This class exists so that URI is compatibile with vscode.Uri (API).\nclass Uri extends URI {\n\n\t_formatted: string | null = null;\n\t_fsPath: string | null = null;\n\n\tget fsPath(): string {\n\t\tif (!this._fsPath) {\n\t\t\tthis._fsPath = uriToFsPath(this, false);\n\t\t}\n\t\treturn this._fsPath;\n\t}\n\n\ttoString(skipEncoding: boolean = false): string {\n\t\tif (!skipEncoding) {\n\t\t\tif (!this._formatted) {\n\t\t\t\tthis._formatted = _asFormatted(this, false);\n\t\t\t}\n\t\t\treturn this._formatted;\n\t\t} else {\n\t\t\t// we don't cache that\n\t\t\treturn _asFormatted(this, true);\n\t\t}\n\t}\n\n\ttoJSON(): UriComponents {\n\t\tconst res = {\n\t\t\t$mid: 1\n\t\t};\n\t\t// cached state\n\t\tif (this._fsPath) {\n\t\t\tres.fsPath = this._fsPath;\n\t\t\tres._sep = _pathSepMarker;\n\t\t}\n\t\tif (this._formatted) {\n\t\t\tres.external = this._formatted;\n\t\t}\n\t\t// uri components\n\t\tif (this.path) {\n\t\t\tres.path = this.path;\n\t\t}\n\t\tif (this.scheme) {\n\t\t\tres.scheme = this.scheme;\n\t\t}\n\t\tif (this.authority) {\n\t\t\tres.authority = this.authority;\n\t\t}\n\t\tif (this.query) {\n\t\t\tres.query = this.query;\n\t\t}\n\t\tif (this.fragment) {\n\t\t\tres.fragment = this.fragment;\n\t\t}\n\t\treturn res;\n\t}\n}\n\n// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2\nconst encodeTable: { [ch: number]: string } = {\n\t[CharCode.Colon]: '%3A', // gen-delims\n\t[CharCode.Slash]: '%2F',\n\t[CharCode.QuestionMark]: '%3F',\n\t[CharCode.Hash]: '%23',\n\t[CharCode.OpenSquareBracket]: '%5B',\n\t[CharCode.CloseSquareBracket]: '%5D',\n\t[CharCode.AtSign]: '%40',\n\n\t[CharCode.ExclamationMark]: '%21', // sub-delims\n\t[CharCode.DollarSign]: '%24',\n\t[CharCode.Ampersand]: '%26',\n\t[CharCode.SingleQuote]: '%27',\n\t[CharCode.OpenParen]: '%28',\n\t[CharCode.CloseParen]: '%29',\n\t[CharCode.Asterisk]: '%2A',\n\t[CharCode.Plus]: '%2B',\n\t[CharCode.Comma]: '%2C',\n\t[CharCode.Semicolon]: '%3B',\n\t[CharCode.Equals]: '%3D',\n\n\t[CharCode.Space]: '%20',\n};\n\nfunction encodeURIComponentFast(uriComponent: string, allowSlash: boolean): string {\n\tlet res: string | undefined = undefined;\n\tlet nativeEncodePos = -1;\n\n\tfor (let pos = 0; pos < uriComponent.length; pos++) {\n\t\tconst code = uriComponent.charCodeAt(pos);\n\n\t\t// unreserved characters: https://tools.ietf.org/html/rfc3986#section-2.3\n\t\tif (\n\t\t\t(code >= CharCode.a && code <= CharCode.z)\n\t\t\t|| (code >= CharCode.A && code <= CharCode.Z)\n\t\t\t|| (code >= CharCode.Digit0 && code <= CharCode.Digit9)\n\t\t\t|| code === CharCode.Dash\n\t\t\t|| code === CharCode.Period\n\t\t\t|| code === CharCode.Underline\n\t\t\t|| code === CharCode.Tilde\n\t\t\t|| (allowSlash && code === CharCode.Slash)\n\t\t) {\n\t\t\t// check if we are delaying native encode\n\t\t\tif (nativeEncodePos !== -1) {\n\t\t\t\tres += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n\t\t\t\tnativeEncodePos = -1;\n\t\t\t}\n\t\t\t// check if we write into a new string (by default we try to return the param)\n\t\t\tif (res !== undefined) {\n\t\t\t\tres += uriComponent.charAt(pos);\n\t\t\t}\n\n\t\t} else {\n\t\t\t// encoding needed, we need to allocate a new string\n\t\t\tif (res === undefined) {\n\t\t\t\tres = uriComponent.substr(0, pos);\n\t\t\t}\n\n\t\t\t// check with default table first\n\t\t\tconst escaped = encodeTable[code];\n\t\t\tif (escaped !== undefined) {\n\n\t\t\t\t// check if we are delaying native encode\n\t\t\t\tif (nativeEncodePos !== -1) {\n\t\t\t\t\tres += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));\n\t\t\t\t\tnativeEncodePos = -1;\n\t\t\t\t}\n\n\t\t\t\t// append escaped variant to result\n\t\t\t\tres += escaped;\n\n\t\t\t} else if (nativeEncodePos === -1) {\n\t\t\t\t// use native encode only when needed\n\t\t\t\tnativeEncodePos = pos;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (nativeEncodePos !== -1) {\n\t\tres += encodeURIComponent(uriComponent.substring(nativeEncodePos));\n\t}\n\n\treturn res !== undefined ? res : uriComponent;\n}\n\nfunction encodeURIComponentMinimal(path: string): string {\n\tlet res: string | undefined = undefined;\n\tfor (let pos = 0; pos < path.length; pos++) {\n\t\tconst code = path.charCodeAt(pos);\n\t\tif (code === CharCode.Hash || code === CharCode.QuestionMark) {\n\t\t\tif (res === undefined) {\n\t\t\t\tres = path.substr(0, pos);\n\t\t\t}\n\t\t\tres += encodeTable[code];\n\t\t} else {\n\t\t\tif (res !== undefined) {\n\t\t\t\tres += path[pos];\n\t\t\t}\n\t\t}\n\t}\n\treturn res !== undefined ? res : path;\n}\n\n/**\n * Compute `fsPath` for the given uri\n */\nexport function uriToFsPath(uri: URI, keepDriveLetterCasing: boolean): string {\n\n\tlet value: string;\n\tif (uri.authority && uri.path.length > 1 && uri.scheme === 'file') {\n\t\t// unc path: file://shares/c$/far/boo\n\t\tvalue = `//${uri.authority}${uri.path}`;\n\t} else if (\n\t\turi.path.charCodeAt(0) === CharCode.Slash\n\t\t&& (uri.path.charCodeAt(1) >= CharCode.A && uri.path.charCodeAt(1) <= CharCode.Z || uri.path.charCodeAt(1) >= CharCode.a && uri.path.charCodeAt(1) <= CharCode.z)\n\t\t&& uri.path.charCodeAt(2) === CharCode.Colon\n\t) {\n\t\tif (!keepDriveLetterCasing) {\n\t\t\t// windows drive letter: file:///c:/far/boo\n\t\t\tvalue = uri.path[1].toLowerCase() + uri.path.substr(2);\n\t\t} else {\n\t\t\tvalue = uri.path.substr(1);\n\t\t}\n\t} else {\n\t\t// other path\n\t\tvalue = uri.path;\n\t}\n\tif (isWindows) {\n\t\tvalue = value.replace(/\\//g, '\\\\');\n\t}\n\treturn value;\n}\n\n/**\n * Create the external version of a uri\n */\nfunction _asFormatted(uri: URI, skipEncoding: boolean): string {\n\n\tconst encoder = !skipEncoding\n\t\t? encodeURIComponentFast\n\t\t: encodeURIComponentMinimal;\n\n\tlet res = '';\n\tlet { scheme, authority, path, query, fragment } = uri;\n\tif (scheme) {\n\t\tres += scheme;\n\t\tres += ':';\n\t}\n\tif (authority || scheme === 'file') {\n\t\tres += _slash;\n\t\tres += _slash;\n\t}\n\tif (authority) {\n\t\tlet idx = authority.indexOf('@');\n\t\tif (idx !== -1) {\n\t\t\t// @\n\t\t\tconst userinfo = authority.substr(0, idx);\n\t\t\tauthority = authority.substr(idx + 1);\n\t\t\tidx = userinfo.indexOf(':');\n\t\t\tif (idx === -1) {\n\t\t\t\tres += encoder(userinfo, false);\n\t\t\t} else {\n\t\t\t\t// :@\n\t\t\t\tres += encoder(userinfo.substr(0, idx), false);\n\t\t\t\tres += ':';\n\t\t\t\tres += encoder(userinfo.substr(idx + 1), false);\n\t\t\t}\n\t\t\tres += '@';\n\t\t}\n\t\tauthority = authority.toLowerCase();\n\t\tidx = authority.indexOf(':');\n\t\tif (idx === -1) {\n\t\t\tres += encoder(authority, false);\n\t\t} else {\n\t\t\t// :\n\t\t\tres += encoder(authority.substr(0, idx), false);\n\t\t\tres += authority.substr(idx);\n\t\t}\n\t}\n\tif (path) {\n\t\t// lower-case windows drive letters in /C:/fff or C:/fff\n\t\tif (path.length >= 3 && path.charCodeAt(0) === CharCode.Slash && path.charCodeAt(2) === CharCode.Colon) {\n\t\t\tconst code = path.charCodeAt(1);\n\t\t\tif (code >= CharCode.A && code <= CharCode.Z) {\n\t\t\t\tpath = `/${String.fromCharCode(code + 32)}:${path.substr(3)}`; // \"/c:\".length === 3\n\t\t\t}\n\t\t} else if (path.length >= 2 && path.charCodeAt(1) === CharCode.Colon) {\n\t\t\tconst code = path.charCodeAt(0);\n\t\t\tif (code >= CharCode.A && code <= CharCode.Z) {\n\t\t\t\tpath = `${String.fromCharCode(code + 32)}:${path.substr(2)}`; // \"/c:\".length === 3\n\t\t\t}\n\t\t}\n\t\t// encode the rest of the path\n\t\tres += encoder(path, true);\n\t}\n\tif (query) {\n\t\tres += '?';\n\t\tres += encoder(query, false);\n\t}\n\tif (fragment) {\n\t\tres += '#';\n\t\tres += !skipEncoding ? encodeURIComponentFast(fragment, false) : fragment;\n\t}\n\treturn res;\n}\n\n// --- decode\n\nfunction decodeURIComponentGraceful(str: string): string {\n\ttry {\n\t\treturn decodeURIComponent(str);\n\t} catch {\n\t\tif (str.length > 3) {\n\t\t\treturn str.substr(0, 3) + decodeURIComponentGraceful(str.substr(3));\n\t\t} else {\n\t\t\treturn str;\n\t\t}\n\t}\n}\n\nconst _rEncodedAsHex = /(%[0-9A-Za-z][0-9A-Za-z])+/g;\n\nfunction percentDecode(str: string): string {\n\tif (!str.match(_rEncodedAsHex)) {\n\t\treturn str;\n\t}\n\treturn str.replace(_rEncodedAsHex, (match) => decodeURIComponentGraceful(match));\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n'use strict';\n\nimport { CharCode } from './charCode';\nimport { URI } from './uri';\nimport * as nodePath from 'path';\n\nconst posixPath = nodePath.posix || nodePath;\n\nexport namespace Utils {\n\n /**\n * Joins one or more input paths to the path of URI. \n * '/' is used as the directory separation character. \n * \n * The resolved path will be normalized. That means:\n * - all '..' and '.' segments are resolved.\n * - multiple, sequential occurences of '/' are replaced by a single instance of '/'.\n * - trailing separators are preserved.\n * \n * @param uri The input URI.\n * @param paths The paths to be joined with the path of URI.\n * @returns A URI with the joined path. All other properties of the URI (scheme, authority, query, fragments, ...) will be taken from the input URI.\n */\n export function joinPath(uri: URI, ...paths: string[]): URI {\n return uri.with({ path: posixPath.join(uri.path, ...paths) });\n }\n\n\n /**\n * Resolves one or more paths against the path of a URI. \n * '/' is used as the directory separation character. \n * \n * The resolved path will be normalized. That means:\n * - all '..' and '.' segments are resolved. \n * - multiple, sequential occurences of '/' are replaced by a single instance of '/'.\n * - trailing separators are removed.\n * \n * @param uri The input URI.\n * @param paths The paths to resolve against the path of URI.\n * @returns A URI with the resolved path. All other properties of the URI (scheme, authority, query, fragments, ...) will be taken from the input URI.\n */\n export function resolvePath(uri: URI, ...paths: string[]): URI {\n const path = uri.path || '/'; // normalize the path which is necessary as for posixPath.resolve the first segments has to be absolute or cwd is used.\n return uri.with({ path: posixPath.resolve(path, ...paths) });\n }\n\n /**\n * Returns a URI where the path is the directory name of the input uri, similar to the Unix dirname command. \n * In the path, '/' is recognized as the directory separation character. Trailing directory separators are ignored.\n * The orignal URI is returned if the URIs path is empty or does not contain any path segments.\n * \n * @param uri The input URI.\n * @return The last segment of the URIs path.\n */\n export function dirname(uri: URI): URI {\n let path = posixPath.dirname(uri.path);\n if (path.length === 1 && path.charCodeAt(0) === CharCode.Period) {\n return uri;\n }\n return uri.with({ path });\n }\n\n /**\n * Returns the last segment of the path of a URI, similar to the Unix basename command. \n * In the path, '/' is recognized as the directory separation character. Trailing directory separators are ignored.\n * The empty string is returned if the URIs path is empty or does not contain any path segments.\n * \n * @param uri The input URI.\n * @return The base name of the URIs path.\n */\n export function basename(uri: URI): string {\n return posixPath.basename(uri.path);\n }\n\n /**\n * Returns the extension name of the path of a URI, similar to the Unix extname command. \n * In the path, '/' is recognized as the directory separation character. Trailing directory separators are ignored.\n * The empty string is returned if the URIs path is empty or does not contain any path segments.\n * \n * @param uri The input URI.\n * @return The extension name of the URIs path.\n */\n export function extname(uri: URI): string {\n return posixPath.extname(uri.path);\n }\n}", "// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n", "// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(447);\n", "// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};", "__webpack_require__.o = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop)", "// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};", "/*---------------------------------------------------------------------------------------------\n* Copyright (c) Microsoft Corporation. All rights reserved.\n* Licensed under the MIT License. See License.txt in the project root for license information.\n*--------------------------------------------------------------------------------------------*/\nexport function startsWith(haystack, needle) {\n if (haystack.length < needle.length) {\n return false;\n }\n for (var i = 0; i < needle.length; i++) {\n if (haystack[i] !== needle[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Determines if haystack ends with needle.\n */\nexport function endsWith(haystack, needle) {\n var diff = haystack.length - needle.length;\n if (diff > 0) {\n return haystack.lastIndexOf(needle) === diff;\n }\n else if (diff === 0) {\n return haystack === needle;\n }\n else {\n return false;\n }\n}\nexport function convertSimple2RegExpPattern(pattern) {\n return pattern.replace(/[\\-\\\\\\{\\}\\+\\?\\|\\^\\$\\.\\,\\[\\]\\(\\)\\#\\s]/g, '\\\\$&').replace(/[\\*]/g, '.*');\n}\nexport function repeat(value, count) {\n var s = '';\n while (count > 0) {\n if ((count & 1) === 1) {\n s += value;\n }\n value += value;\n count = count >>> 1;\n }\n return s;\n}\nexport function extendedRegExp(pattern) {\n var flags = '';\n if (startsWith(pattern, '(?i)')) {\n pattern = pattern.substring(4);\n flags = 'i';\n }\n try {\n return new RegExp(pattern, flags + 'u');\n }\n catch (e) {\n // could be an exception due to the 'u ' flag\n try {\n return new RegExp(pattern, flags);\n }\n catch (e) {\n // invalid pattern\n return undefined;\n }\n }\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport * as Json from 'jsonc-parser';\nimport { isNumber, equals, isBoolean, isString, isDefined } from '../utils/objects';\nimport { extendedRegExp } from '../utils/strings';\nimport { ErrorCode, Diagnostic, DiagnosticSeverity, Range } from '../jsonLanguageTypes';\nimport * as nls from 'vscode-nls';\nvar localize = nls.loadMessageBundle();\nvar formats = {\n 'color-hex': { errorMessage: localize('colorHexFormatWarning', 'Invalid color format. Use #RGB, #RGBA, #RRGGBB or #RRGGBBAA.'), pattern: /^#([0-9A-Fa-f]{3,4}|([0-9A-Fa-f]{2}){3,4})$/ },\n 'date-time': { errorMessage: localize('dateTimeFormatWarning', 'String is not a RFC3339 date-time.'), pattern: /^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i },\n 'date': { errorMessage: localize('dateFormatWarning', 'String is not a RFC3339 date.'), pattern: /^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/i },\n 'time': { errorMessage: localize('timeFormatWarning', 'String is not a RFC3339 time.'), pattern: /^([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\\.[0-9]+)?(Z|(\\+|-)([01][0-9]|2[0-3]):([0-5][0-9]))$/i },\n 'email': { errorMessage: localize('emailFormatWarning', 'String is not an e-mail address.'), pattern: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/ }\n};\nvar ASTNodeImpl = /** @class */ (function () {\n function ASTNodeImpl(parent, offset, length) {\n if (length === void 0) { length = 0; }\n this.offset = offset;\n this.length = length;\n this.parent = parent;\n }\n Object.defineProperty(ASTNodeImpl.prototype, \"children\", {\n get: function () {\n return [];\n },\n enumerable: false,\n configurable: true\n });\n ASTNodeImpl.prototype.toString = function () {\n return 'type: ' + this.type + ' (' + this.offset + '/' + this.length + ')' + (this.parent ? ' parent: {' + this.parent.toString() + '}' : '');\n };\n return ASTNodeImpl;\n}());\nexport { ASTNodeImpl };\nvar NullASTNodeImpl = /** @class */ (function (_super) {\n __extends(NullASTNodeImpl, _super);\n function NullASTNodeImpl(parent, offset) {\n var _this = _super.call(this, parent, offset) || this;\n _this.type = 'null';\n _this.value = null;\n return _this;\n }\n return NullASTNodeImpl;\n}(ASTNodeImpl));\nexport { NullASTNodeImpl };\nvar BooleanASTNodeImpl = /** @class */ (function (_super) {\n __extends(BooleanASTNodeImpl, _super);\n function BooleanASTNodeImpl(parent, boolValue, offset) {\n var _this = _super.call(this, parent, offset) || this;\n _this.type = 'boolean';\n _this.value = boolValue;\n return _this;\n }\n return BooleanASTNodeImpl;\n}(ASTNodeImpl));\nexport { BooleanASTNodeImpl };\nvar ArrayASTNodeImpl = /** @class */ (function (_super) {\n __extends(ArrayASTNodeImpl, _super);\n function ArrayASTNodeImpl(parent, offset) {\n var _this = _super.call(this, parent, offset) || this;\n _this.type = 'array';\n _this.items = [];\n return _this;\n }\n Object.defineProperty(ArrayASTNodeImpl.prototype, \"children\", {\n get: function () {\n return this.items;\n },\n enumerable: false,\n configurable: true\n });\n return ArrayASTNodeImpl;\n}(ASTNodeImpl));\nexport { ArrayASTNodeImpl };\nvar NumberASTNodeImpl = /** @class */ (function (_super) {\n __extends(NumberASTNodeImpl, _super);\n function NumberASTNodeImpl(parent, offset) {\n var _this = _super.call(this, parent, offset) || this;\n _this.type = 'number';\n _this.isInteger = true;\n _this.value = Number.NaN;\n return _this;\n }\n return NumberASTNodeImpl;\n}(ASTNodeImpl));\nexport { NumberASTNodeImpl };\nvar StringASTNodeImpl = /** @class */ (function (_super) {\n __extends(StringASTNodeImpl, _super);\n function StringASTNodeImpl(parent, offset, length) {\n var _this = _super.call(this, parent, offset, length) || this;\n _this.type = 'string';\n _this.value = '';\n return _this;\n }\n return StringASTNodeImpl;\n}(ASTNodeImpl));\nexport { StringASTNodeImpl };\nvar PropertyASTNodeImpl = /** @class */ (function (_super) {\n __extends(PropertyASTNodeImpl, _super);\n function PropertyASTNodeImpl(parent, offset, keyNode) {\n var _this = _super.call(this, parent, offset) || this;\n _this.type = 'property';\n _this.colonOffset = -1;\n _this.keyNode = keyNode;\n return _this;\n }\n Object.defineProperty(PropertyASTNodeImpl.prototype, \"children\", {\n get: function () {\n return this.valueNode ? [this.keyNode, this.valueNode] : [this.keyNode];\n },\n enumerable: false,\n configurable: true\n });\n return PropertyASTNodeImpl;\n}(ASTNodeImpl));\nexport { PropertyASTNodeImpl };\nvar ObjectASTNodeImpl = /** @class */ (function (_super) {\n __extends(ObjectASTNodeImpl, _super);\n function ObjectASTNodeImpl(parent, offset) {\n var _this = _super.call(this, parent, offset) || this;\n _this.type = 'object';\n _this.properties = [];\n return _this;\n }\n Object.defineProperty(ObjectASTNodeImpl.prototype, \"children\", {\n get: function () {\n return this.properties;\n },\n enumerable: false,\n configurable: true\n });\n return ObjectASTNodeImpl;\n}(ASTNodeImpl));\nexport { ObjectASTNodeImpl };\nexport function asSchema(schema) {\n if (isBoolean(schema)) {\n return schema ? {} : { \"not\": {} };\n }\n return schema;\n}\nexport var EnumMatch;\n(function (EnumMatch) {\n EnumMatch[EnumMatch[\"Key\"] = 0] = \"Key\";\n EnumMatch[EnumMatch[\"Enum\"] = 1] = \"Enum\";\n})(EnumMatch || (EnumMatch = {}));\nvar SchemaCollector = /** @class */ (function () {\n function SchemaCollector(focusOffset, exclude) {\n if (focusOffset === void 0) { focusOffset = -1; }\n this.focusOffset = focusOffset;\n this.exclude = exclude;\n this.schemas = [];\n }\n SchemaCollector.prototype.add = function (schema) {\n this.schemas.push(schema);\n };\n SchemaCollector.prototype.merge = function (other) {\n Array.prototype.push.apply(this.schemas, other.schemas);\n };\n SchemaCollector.prototype.include = function (node) {\n return (this.focusOffset === -1 || contains(node, this.focusOffset)) && (node !== this.exclude);\n };\n SchemaCollector.prototype.newSub = function () {\n return new SchemaCollector(-1, this.exclude);\n };\n return SchemaCollector;\n}());\nvar NoOpSchemaCollector = /** @class */ (function () {\n function NoOpSchemaCollector() {\n }\n Object.defineProperty(NoOpSchemaCollector.prototype, \"schemas\", {\n get: function () { return []; },\n enumerable: false,\n configurable: true\n });\n NoOpSchemaCollector.prototype.add = function (schema) { };\n NoOpSchemaCollector.prototype.merge = function (other) { };\n NoOpSchemaCollector.prototype.include = function (node) { return true; };\n NoOpSchemaCollector.prototype.newSub = function () { return this; };\n NoOpSchemaCollector.instance = new NoOpSchemaCollector();\n return NoOpSchemaCollector;\n}());\nvar ValidationResult = /** @class */ (function () {\n function ValidationResult() {\n this.problems = [];\n this.propertiesMatches = 0;\n this.propertiesValueMatches = 0;\n this.primaryValueMatches = 0;\n this.enumValueMatch = false;\n this.enumValues = undefined;\n }\n ValidationResult.prototype.hasProblems = function () {\n return !!this.problems.length;\n };\n ValidationResult.prototype.mergeAll = function (validationResults) {\n for (var _i = 0, validationResults_1 = validationResults; _i < validationResults_1.length; _i++) {\n var validationResult = validationResults_1[_i];\n this.merge(validationResult);\n }\n };\n ValidationResult.prototype.merge = function (validationResult) {\n this.problems = this.problems.concat(validationResult.problems);\n };\n ValidationResult.prototype.mergeEnumValues = function (validationResult) {\n if (!this.enumValueMatch && !validationResult.enumValueMatch && this.enumValues && validationResult.enumValues) {\n this.enumValues = this.enumValues.concat(validationResult.enumValues);\n for (var _i = 0, _a = this.problems; _i < _a.length; _i++) {\n var error = _a[_i];\n if (error.code === ErrorCode.EnumValueMismatch) {\n error.message = localize('enumWarning', 'Value is not accepted. Valid values: {0}.', this.enumValues.map(function (v) { return JSON.stringify(v); }).join(', '));\n }\n }\n }\n };\n ValidationResult.prototype.mergePropertyMatch = function (propertyValidationResult) {\n this.merge(propertyValidationResult);\n this.propertiesMatches++;\n if (propertyValidationResult.enumValueMatch || !propertyValidationResult.hasProblems() && propertyValidationResult.propertiesMatches) {\n this.propertiesValueMatches++;\n }\n if (propertyValidationResult.enumValueMatch && propertyValidationResult.enumValues && propertyValidationResult.enumValues.length === 1) {\n this.primaryValueMatches++;\n }\n };\n ValidationResult.prototype.compare = function (other) {\n var hasProblems = this.hasProblems();\n if (hasProblems !== other.hasProblems()) {\n return hasProblems ? -1 : 1;\n }\n if (this.enumValueMatch !== other.enumValueMatch) {\n return other.enumValueMatch ? -1 : 1;\n }\n if (this.primaryValueMatches !== other.primaryValueMatches) {\n return this.primaryValueMatches - other.primaryValueMatches;\n }\n if (this.propertiesValueMatches !== other.propertiesValueMatches) {\n return this.propertiesValueMatches - other.propertiesValueMatches;\n }\n return this.propertiesMatches - other.propertiesMatches;\n };\n return ValidationResult;\n}());\nexport { ValidationResult };\nexport function newJSONDocument(root, diagnostics) {\n if (diagnostics === void 0) { diagnostics = []; }\n return new JSONDocument(root, diagnostics, []);\n}\nexport function getNodeValue(node) {\n return Json.getNodeValue(node);\n}\nexport function getNodePath(node) {\n return Json.getNodePath(node);\n}\nexport function contains(node, offset, includeRightBound) {\n if (includeRightBound === void 0) { includeRightBound = false; }\n return offset >= node.offset && offset < (node.offset + node.length) || includeRightBound && offset === (node.offset + node.length);\n}\nvar JSONDocument = /** @class */ (function () {\n function JSONDocument(root, syntaxErrors, comments) {\n if (syntaxErrors === void 0) { syntaxErrors = []; }\n if (comments === void 0) { comments = []; }\n this.root = root;\n this.syntaxErrors = syntaxErrors;\n this.comments = comments;\n }\n JSONDocument.prototype.getNodeFromOffset = function (offset, includeRightBound) {\n if (includeRightBound === void 0) { includeRightBound = false; }\n if (this.root) {\n return Json.findNodeAtOffset(this.root, offset, includeRightBound);\n }\n return undefined;\n };\n JSONDocument.prototype.visit = function (visitor) {\n if (this.root) {\n var doVisit_1 = function (node) {\n var ctn = visitor(node);\n var children = node.children;\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length && ctn; i++) {\n ctn = doVisit_1(children[i]);\n }\n }\n return ctn;\n };\n doVisit_1(this.root);\n }\n };\n JSONDocument.prototype.validate = function (textDocument, schema, severity) {\n if (severity === void 0) { severity = DiagnosticSeverity.Warning; }\n if (this.root && schema) {\n var validationResult = new ValidationResult();\n validate(this.root, schema, validationResult, NoOpSchemaCollector.instance);\n return validationResult.problems.map(function (p) {\n var _a;\n var range = Range.create(textDocument.positionAt(p.location.offset), textDocument.positionAt(p.location.offset + p.location.length));\n return Diagnostic.create(range, p.message, (_a = p.severity) !== null && _a !== void 0 ? _a : severity, p.code);\n });\n }\n return undefined;\n };\n JSONDocument.prototype.getMatchingSchemas = function (schema, focusOffset, exclude) {\n if (focusOffset === void 0) { focusOffset = -1; }\n var matchingSchemas = new SchemaCollector(focusOffset, exclude);\n if (this.root && schema) {\n validate(this.root, schema, new ValidationResult(), matchingSchemas);\n }\n return matchingSchemas.schemas;\n };\n return JSONDocument;\n}());\nexport { JSONDocument };\nfunction validate(n, schema, validationResult, matchingSchemas) {\n if (!n || !matchingSchemas.include(n)) {\n return;\n }\n var node = n;\n switch (node.type) {\n case 'object':\n _validateObjectNode(node, schema, validationResult, matchingSchemas);\n break;\n case 'array':\n _validateArrayNode(node, schema, validationResult, matchingSchemas);\n break;\n case 'string':\n _validateStringNode(node, schema, validationResult, matchingSchemas);\n break;\n case 'number':\n _validateNumberNode(node, schema, validationResult, matchingSchemas);\n break;\n case 'property':\n return validate(node.valueNode, schema, validationResult, matchingSchemas);\n }\n _validateNode();\n matchingSchemas.add({ node: node, schema: schema });\n function _validateNode() {\n function matchesType(type) {\n return node.type === type || (type === 'integer' && node.type === 'number' && node.isInteger);\n }\n if (Array.isArray(schema.type)) {\n if (!schema.type.some(matchesType)) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.errorMessage || localize('typeArrayMismatchWarning', 'Incorrect type. Expected one of {0}.', schema.type.join(', '))\n });\n }\n }\n else if (schema.type) {\n if (!matchesType(schema.type)) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.errorMessage || localize('typeMismatchWarning', 'Incorrect type. Expected \"{0}\".', schema.type)\n });\n }\n }\n if (Array.isArray(schema.allOf)) {\n for (var _i = 0, _a = schema.allOf; _i < _a.length; _i++) {\n var subSchemaRef = _a[_i];\n validate(node, asSchema(subSchemaRef), validationResult, matchingSchemas);\n }\n }\n var notSchema = asSchema(schema.not);\n if (notSchema) {\n var subValidationResult = new ValidationResult();\n var subMatchingSchemas = matchingSchemas.newSub();\n validate(node, notSchema, subValidationResult, subMatchingSchemas);\n if (!subValidationResult.hasProblems()) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('notSchemaWarning', \"Matches a schema that is not allowed.\")\n });\n }\n for (var _b = 0, _c = subMatchingSchemas.schemas; _b < _c.length; _b++) {\n var ms = _c[_b];\n ms.inverted = !ms.inverted;\n matchingSchemas.add(ms);\n }\n }\n var testAlternatives = function (alternatives, maxOneMatch) {\n var matches = [];\n // remember the best match that is used for error messages\n var bestMatch = undefined;\n for (var _i = 0, alternatives_1 = alternatives; _i < alternatives_1.length; _i++) {\n var subSchemaRef = alternatives_1[_i];\n var subSchema = asSchema(subSchemaRef);\n var subValidationResult = new ValidationResult();\n var subMatchingSchemas = matchingSchemas.newSub();\n validate(node, subSchema, subValidationResult, subMatchingSchemas);\n if (!subValidationResult.hasProblems()) {\n matches.push(subSchema);\n }\n if (!bestMatch) {\n bestMatch = { schema: subSchema, validationResult: subValidationResult, matchingSchemas: subMatchingSchemas };\n }\n else {\n if (!maxOneMatch && !subValidationResult.hasProblems() && !bestMatch.validationResult.hasProblems()) {\n // no errors, both are equally good matches\n bestMatch.matchingSchemas.merge(subMatchingSchemas);\n bestMatch.validationResult.propertiesMatches += subValidationResult.propertiesMatches;\n bestMatch.validationResult.propertiesValueMatches += subValidationResult.propertiesValueMatches;\n }\n else {\n var compareResult = subValidationResult.compare(bestMatch.validationResult);\n if (compareResult > 0) {\n // our node is the best matching so far\n bestMatch = { schema: subSchema, validationResult: subValidationResult, matchingSchemas: subMatchingSchemas };\n }\n else if (compareResult === 0) {\n // there's already a best matching but we are as good\n bestMatch.matchingSchemas.merge(subMatchingSchemas);\n bestMatch.validationResult.mergeEnumValues(subValidationResult);\n }\n }\n }\n }\n if (matches.length > 1 && maxOneMatch) {\n validationResult.problems.push({\n location: { offset: node.offset, length: 1 },\n message: localize('oneOfWarning', \"Matches multiple schemas when only one must validate.\")\n });\n }\n if (bestMatch) {\n validationResult.merge(bestMatch.validationResult);\n validationResult.propertiesMatches += bestMatch.validationResult.propertiesMatches;\n validationResult.propertiesValueMatches += bestMatch.validationResult.propertiesValueMatches;\n matchingSchemas.merge(bestMatch.matchingSchemas);\n }\n return matches.length;\n };\n if (Array.isArray(schema.anyOf)) {\n testAlternatives(schema.anyOf, false);\n }\n if (Array.isArray(schema.oneOf)) {\n testAlternatives(schema.oneOf, true);\n }\n var testBranch = function (schema) {\n var subValidationResult = new ValidationResult();\n var subMatchingSchemas = matchingSchemas.newSub();\n validate(node, asSchema(schema), subValidationResult, subMatchingSchemas);\n validationResult.merge(subValidationResult);\n validationResult.propertiesMatches += subValidationResult.propertiesMatches;\n validationResult.propertiesValueMatches += subValidationResult.propertiesValueMatches;\n matchingSchemas.merge(subMatchingSchemas);\n };\n var testCondition = function (ifSchema, thenSchema, elseSchema) {\n var subSchema = asSchema(ifSchema);\n var subValidationResult = new ValidationResult();\n var subMatchingSchemas = matchingSchemas.newSub();\n validate(node, subSchema, subValidationResult, subMatchingSchemas);\n matchingSchemas.merge(subMatchingSchemas);\n if (!subValidationResult.hasProblems()) {\n if (thenSchema) {\n testBranch(thenSchema);\n }\n }\n else if (elseSchema) {\n testBranch(elseSchema);\n }\n };\n var ifSchema = asSchema(schema.if);\n if (ifSchema) {\n testCondition(ifSchema, asSchema(schema.then), asSchema(schema.else));\n }\n if (Array.isArray(schema.enum)) {\n var val = getNodeValue(node);\n var enumValueMatch = false;\n for (var _d = 0, _e = schema.enum; _d < _e.length; _d++) {\n var e = _e[_d];\n if (equals(val, e)) {\n enumValueMatch = true;\n break;\n }\n }\n validationResult.enumValues = schema.enum;\n validationResult.enumValueMatch = enumValueMatch;\n if (!enumValueMatch) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n code: ErrorCode.EnumValueMismatch,\n message: schema.errorMessage || localize('enumWarning', 'Value is not accepted. Valid values: {0}.', schema.enum.map(function (v) { return JSON.stringify(v); }).join(', '))\n });\n }\n }\n if (isDefined(schema.const)) {\n var val = getNodeValue(node);\n if (!equals(val, schema.const)) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n code: ErrorCode.EnumValueMismatch,\n message: schema.errorMessage || localize('constWarning', 'Value must be {0}.', JSON.stringify(schema.const))\n });\n validationResult.enumValueMatch = false;\n }\n else {\n validationResult.enumValueMatch = true;\n }\n validationResult.enumValues = [schema.const];\n }\n if (schema.deprecationMessage && node.parent) {\n validationResult.problems.push({\n location: { offset: node.parent.offset, length: node.parent.length },\n severity: DiagnosticSeverity.Warning,\n message: schema.deprecationMessage,\n code: ErrorCode.Deprecated\n });\n }\n }\n function _validateNumberNode(node, schema, validationResult, matchingSchemas) {\n var val = node.value;\n function normalizeFloats(float) {\n var _a;\n var parts = /^(-?\\d+)(?:\\.(\\d+))?(?:e([-+]\\d+))?$/.exec(float.toString());\n return parts && {\n value: Number(parts[1] + (parts[2] || '')),\n multiplier: (((_a = parts[2]) === null || _a === void 0 ? void 0 : _a.length) || 0) - (parseInt(parts[3]) || 0)\n };\n }\n ;\n if (isNumber(schema.multipleOf)) {\n var remainder = -1;\n if (Number.isInteger(schema.multipleOf)) {\n remainder = val % schema.multipleOf;\n }\n else {\n var normMultipleOf = normalizeFloats(schema.multipleOf);\n var normValue = normalizeFloats(val);\n if (normMultipleOf && normValue) {\n var multiplier = Math.pow(10, Math.abs(normValue.multiplier - normMultipleOf.multiplier));\n if (normValue.multiplier < normMultipleOf.multiplier) {\n normValue.value *= multiplier;\n }\n else {\n normMultipleOf.value *= multiplier;\n }\n remainder = normValue.value % normMultipleOf.value;\n }\n }\n if (remainder !== 0) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('multipleOfWarning', 'Value is not divisible by {0}.', schema.multipleOf)\n });\n }\n }\n function getExclusiveLimit(limit, exclusive) {\n if (isNumber(exclusive)) {\n return exclusive;\n }\n if (isBoolean(exclusive) && exclusive) {\n return limit;\n }\n return undefined;\n }\n function getLimit(limit, exclusive) {\n if (!isBoolean(exclusive) || !exclusive) {\n return limit;\n }\n return undefined;\n }\n var exclusiveMinimum = getExclusiveLimit(schema.minimum, schema.exclusiveMinimum);\n if (isNumber(exclusiveMinimum) && val <= exclusiveMinimum) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('exclusiveMinimumWarning', 'Value is below the exclusive minimum of {0}.', exclusiveMinimum)\n });\n }\n var exclusiveMaximum = getExclusiveLimit(schema.maximum, schema.exclusiveMaximum);\n if (isNumber(exclusiveMaximum) && val >= exclusiveMaximum) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('exclusiveMaximumWarning', 'Value is above the exclusive maximum of {0}.', exclusiveMaximum)\n });\n }\n var minimum = getLimit(schema.minimum, schema.exclusiveMinimum);\n if (isNumber(minimum) && val < minimum) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('minimumWarning', 'Value is below the minimum of {0}.', minimum)\n });\n }\n var maximum = getLimit(schema.maximum, schema.exclusiveMaximum);\n if (isNumber(maximum) && val > maximum) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('maximumWarning', 'Value is above the maximum of {0}.', maximum)\n });\n }\n }\n function _validateStringNode(node, schema, validationResult, matchingSchemas) {\n if (isNumber(schema.minLength) && node.value.length < schema.minLength) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('minLengthWarning', 'String is shorter than the minimum length of {0}.', schema.minLength)\n });\n }\n if (isNumber(schema.maxLength) && node.value.length > schema.maxLength) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('maxLengthWarning', 'String is longer than the maximum length of {0}.', schema.maxLength)\n });\n }\n if (isString(schema.pattern)) {\n var regex = extendedRegExp(schema.pattern);\n if (!(regex === null || regex === void 0 ? void 0 : regex.test(node.value))) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.patternErrorMessage || schema.errorMessage || localize('patternWarning', 'String does not match the pattern of \"{0}\".', schema.pattern)\n });\n }\n }\n if (schema.format) {\n switch (schema.format) {\n case 'uri':\n case 'uri-reference':\n {\n var errorMessage = void 0;\n if (!node.value) {\n errorMessage = localize('uriEmpty', 'URI expected.');\n }\n else {\n var match = /^(([^:/?#]+?):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?/.exec(node.value);\n if (!match) {\n errorMessage = localize('uriMissing', 'URI is expected.');\n }\n else if (!match[2] && schema.format === 'uri') {\n errorMessage = localize('uriSchemeMissing', 'URI with a scheme is expected.');\n }\n }\n if (errorMessage) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.patternErrorMessage || schema.errorMessage || localize('uriFormatWarning', 'String is not a URI: {0}', errorMessage)\n });\n }\n }\n break;\n case 'color-hex':\n case 'date-time':\n case 'date':\n case 'time':\n case 'email':\n var format = formats[schema.format];\n if (!node.value || !format.pattern.exec(node.value)) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.patternErrorMessage || schema.errorMessage || format.errorMessage\n });\n }\n default:\n }\n }\n }\n function _validateArrayNode(node, schema, validationResult, matchingSchemas) {\n if (Array.isArray(schema.items)) {\n var subSchemas = schema.items;\n for (var index = 0; index < subSchemas.length; index++) {\n var subSchemaRef = subSchemas[index];\n var subSchema = asSchema(subSchemaRef);\n var itemValidationResult = new ValidationResult();\n var item = node.items[index];\n if (item) {\n validate(item, subSchema, itemValidationResult, matchingSchemas);\n validationResult.mergePropertyMatch(itemValidationResult);\n }\n else if (node.items.length >= subSchemas.length) {\n validationResult.propertiesValueMatches++;\n }\n }\n if (node.items.length > subSchemas.length) {\n if (typeof schema.additionalItems === 'object') {\n for (var i = subSchemas.length; i < node.items.length; i++) {\n var itemValidationResult = new ValidationResult();\n validate(node.items[i], schema.additionalItems, itemValidationResult, matchingSchemas);\n validationResult.mergePropertyMatch(itemValidationResult);\n }\n }\n else if (schema.additionalItems === false) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('additionalItemsWarning', 'Array has too many items according to schema. Expected {0} or fewer.', subSchemas.length)\n });\n }\n }\n }\n else {\n var itemSchema = asSchema(schema.items);\n if (itemSchema) {\n for (var _i = 0, _a = node.items; _i < _a.length; _i++) {\n var item = _a[_i];\n var itemValidationResult = new ValidationResult();\n validate(item, itemSchema, itemValidationResult, matchingSchemas);\n validationResult.mergePropertyMatch(itemValidationResult);\n }\n }\n }\n var containsSchema = asSchema(schema.contains);\n if (containsSchema) {\n var doesContain = node.items.some(function (item) {\n var itemValidationResult = new ValidationResult();\n validate(item, containsSchema, itemValidationResult, NoOpSchemaCollector.instance);\n return !itemValidationResult.hasProblems();\n });\n if (!doesContain) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: schema.errorMessage || localize('requiredItemMissingWarning', 'Array does not contain required item.')\n });\n }\n }\n if (isNumber(schema.minItems) && node.items.length < schema.minItems) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('minItemsWarning', 'Array has too few items. Expected {0} or more.', schema.minItems)\n });\n }\n if (isNumber(schema.maxItems) && node.items.length > schema.maxItems) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('maxItemsWarning', 'Array has too many items. Expected {0} or fewer.', schema.maxItems)\n });\n }\n if (schema.uniqueItems === true) {\n var values_1 = getNodeValue(node);\n var duplicates = values_1.some(function (value, index) {\n return index !== values_1.lastIndexOf(value);\n });\n if (duplicates) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('uniqueItemsWarning', 'Array has duplicate items.')\n });\n }\n }\n }\n function _validateObjectNode(node, schema, validationResult, matchingSchemas) {\n var seenKeys = Object.create(null);\n var unprocessedProperties = [];\n for (var _i = 0, _a = node.properties; _i < _a.length; _i++) {\n var propertyNode = _a[_i];\n var key = propertyNode.keyNode.value;\n seenKeys[key] = propertyNode.valueNode;\n unprocessedProperties.push(key);\n }\n if (Array.isArray(schema.required)) {\n for (var _b = 0, _c = schema.required; _b < _c.length; _b++) {\n var propertyName = _c[_b];\n if (!seenKeys[propertyName]) {\n var keyNode = node.parent && node.parent.type === 'property' && node.parent.keyNode;\n var location = keyNode ? { offset: keyNode.offset, length: keyNode.length } : { offset: node.offset, length: 1 };\n validationResult.problems.push({\n location: location,\n message: localize('MissingRequiredPropWarning', 'Missing property \"{0}\".', propertyName)\n });\n }\n }\n }\n var propertyProcessed = function (prop) {\n var index = unprocessedProperties.indexOf(prop);\n while (index >= 0) {\n unprocessedProperties.splice(index, 1);\n index = unprocessedProperties.indexOf(prop);\n }\n };\n if (schema.properties) {\n for (var _d = 0, _e = Object.keys(schema.properties); _d < _e.length; _d++) {\n var propertyName = _e[_d];\n propertyProcessed(propertyName);\n var propertySchema = schema.properties[propertyName];\n var child = seenKeys[propertyName];\n if (child) {\n if (isBoolean(propertySchema)) {\n if (!propertySchema) {\n var propertyNode = child.parent;\n validationResult.problems.push({\n location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n message: schema.errorMessage || localize('DisallowedExtraPropWarning', 'Property {0} is not allowed.', propertyName)\n });\n }\n else {\n validationResult.propertiesMatches++;\n validationResult.propertiesValueMatches++;\n }\n }\n else {\n var propertyValidationResult = new ValidationResult();\n validate(child, propertySchema, propertyValidationResult, matchingSchemas);\n validationResult.mergePropertyMatch(propertyValidationResult);\n }\n }\n }\n }\n if (schema.patternProperties) {\n for (var _f = 0, _g = Object.keys(schema.patternProperties); _f < _g.length; _f++) {\n var propertyPattern = _g[_f];\n var regex = extendedRegExp(propertyPattern);\n for (var _h = 0, _j = unprocessedProperties.slice(0); _h < _j.length; _h++) {\n var propertyName = _j[_h];\n if (regex === null || regex === void 0 ? void 0 : regex.test(propertyName)) {\n propertyProcessed(propertyName);\n var child = seenKeys[propertyName];\n if (child) {\n var propertySchema = schema.patternProperties[propertyPattern];\n if (isBoolean(propertySchema)) {\n if (!propertySchema) {\n var propertyNode = child.parent;\n validationResult.problems.push({\n location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n message: schema.errorMessage || localize('DisallowedExtraPropWarning', 'Property {0} is not allowed.', propertyName)\n });\n }\n else {\n validationResult.propertiesMatches++;\n validationResult.propertiesValueMatches++;\n }\n }\n else {\n var propertyValidationResult = new ValidationResult();\n validate(child, propertySchema, propertyValidationResult, matchingSchemas);\n validationResult.mergePropertyMatch(propertyValidationResult);\n }\n }\n }\n }\n }\n }\n if (typeof schema.additionalProperties === 'object') {\n for (var _k = 0, unprocessedProperties_1 = unprocessedProperties; _k < unprocessedProperties_1.length; _k++) {\n var propertyName = unprocessedProperties_1[_k];\n var child = seenKeys[propertyName];\n if (child) {\n var propertyValidationResult = new ValidationResult();\n validate(child, schema.additionalProperties, propertyValidationResult, matchingSchemas);\n validationResult.mergePropertyMatch(propertyValidationResult);\n }\n }\n }\n else if (schema.additionalProperties === false) {\n if (unprocessedProperties.length > 0) {\n for (var _l = 0, unprocessedProperties_2 = unprocessedProperties; _l < unprocessedProperties_2.length; _l++) {\n var propertyName = unprocessedProperties_2[_l];\n var child = seenKeys[propertyName];\n if (child) {\n var propertyNode = child.parent;\n validationResult.problems.push({\n location: { offset: propertyNode.keyNode.offset, length: propertyNode.keyNode.length },\n message: schema.errorMessage || localize('DisallowedExtraPropWarning', 'Property {0} is not allowed.', propertyName)\n });\n }\n }\n }\n }\n if (isNumber(schema.maxProperties)) {\n if (node.properties.length > schema.maxProperties) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('MaxPropWarning', 'Object has more properties than limit of {0}.', schema.maxProperties)\n });\n }\n }\n if (isNumber(schema.minProperties)) {\n if (node.properties.length < schema.minProperties) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('MinPropWarning', 'Object has fewer properties than the required number of {0}', schema.minProperties)\n });\n }\n }\n if (schema.dependencies) {\n for (var _m = 0, _o = Object.keys(schema.dependencies); _m < _o.length; _m++) {\n var key = _o[_m];\n var prop = seenKeys[key];\n if (prop) {\n var propertyDep = schema.dependencies[key];\n if (Array.isArray(propertyDep)) {\n for (var _p = 0, propertyDep_1 = propertyDep; _p < propertyDep_1.length; _p++) {\n var requiredProp = propertyDep_1[_p];\n if (!seenKeys[requiredProp]) {\n validationResult.problems.push({\n location: { offset: node.offset, length: node.length },\n message: localize('RequiredDependentPropWarning', 'Object is missing property {0} required by property {1}.', requiredProp, key)\n });\n }\n else {\n validationResult.propertiesValueMatches++;\n }\n }\n }\n else {\n var propertySchema = asSchema(propertyDep);\n if (propertySchema) {\n var propertyValidationResult = new ValidationResult();\n validate(node, propertySchema, propertyValidationResult, matchingSchemas);\n validationResult.mergePropertyMatch(propertyValidationResult);\n }\n }\n }\n }\n }\n var propertyNames = asSchema(schema.propertyNames);\n if (propertyNames) {\n for (var _q = 0, _r = node.properties; _q < _r.length; _q++) {\n var f = _r[_q];\n var key = f.keyNode;\n if (key) {\n validate(key, propertyNames, validationResult, NoOpSchemaCollector.instance);\n }\n }\n }\n }\n}\nexport function parse(textDocument, config) {\n var problems = [];\n var lastProblemOffset = -1;\n var text = textDocument.getText();\n var scanner = Json.createScanner(text, false);\n var commentRanges = config && config.collectComments ? [] : undefined;\n function _scanNext() {\n while (true) {\n var token_1 = scanner.scan();\n _checkScanError();\n switch (token_1) {\n case 12 /* LineCommentTrivia */:\n case 13 /* BlockCommentTrivia */:\n if (Array.isArray(commentRanges)) {\n commentRanges.push(Range.create(textDocument.positionAt(scanner.getTokenOffset()), textDocument.positionAt(scanner.getTokenOffset() + scanner.getTokenLength())));\n }\n break;\n case 15 /* Trivia */:\n case 14 /* LineBreakTrivia */:\n break;\n default:\n return token_1;\n }\n }\n }\n function _accept(token) {\n if (scanner.getToken() === token) {\n _scanNext();\n return true;\n }\n return false;\n }\n function _errorAtRange(message, code, startOffset, endOffset, severity) {\n if (severity === void 0) { severity = DiagnosticSeverity.Error; }\n if (problems.length === 0 || startOffset !== lastProblemOffset) {\n var range = Range.create(textDocument.positionAt(startOffset), textDocument.positionAt(endOffset));\n problems.push(Diagnostic.create(range, message, severity, code, textDocument.languageId));\n lastProblemOffset = startOffset;\n }\n }\n function _error(message, code, node, skipUntilAfter, skipUntil) {\n if (node === void 0) { node = undefined; }\n if (skipUntilAfter === void 0) { skipUntilAfter = []; }\n if (skipUntil === void 0) { skipUntil = []; }\n var start = scanner.getTokenOffset();\n var end = scanner.getTokenOffset() + scanner.getTokenLength();\n if (start === end && start > 0) {\n start--;\n while (start > 0 && /\\s/.test(text.charAt(start))) {\n start--;\n }\n end = start + 1;\n }\n _errorAtRange(message, code, start, end);\n if (node) {\n _finalize(node, false);\n }\n if (skipUntilAfter.length + skipUntil.length > 0) {\n var token_2 = scanner.getToken();\n while (token_2 !== 17 /* EOF */) {\n if (skipUntilAfter.indexOf(token_2) !== -1) {\n _scanNext();\n break;\n }\n else if (skipUntil.indexOf(token_2) !== -1) {\n break;\n }\n token_2 = _scanNext();\n }\n }\n return node;\n }\n function _checkScanError() {\n switch (scanner.getTokenError()) {\n case 4 /* InvalidUnicode */:\n _error(localize('InvalidUnicode', 'Invalid unicode sequence in string.'), ErrorCode.InvalidUnicode);\n return true;\n case 5 /* InvalidEscapeCharacter */:\n _error(localize('InvalidEscapeCharacter', 'Invalid escape character in string.'), ErrorCode.InvalidEscapeCharacter);\n return true;\n case 3 /* UnexpectedEndOfNumber */:\n _error(localize('UnexpectedEndOfNumber', 'Unexpected end of number.'), ErrorCode.UnexpectedEndOfNumber);\n return true;\n case 1 /* UnexpectedEndOfComment */:\n _error(localize('UnexpectedEndOfComment', 'Unexpected end of comment.'), ErrorCode.UnexpectedEndOfComment);\n return true;\n case 2 /* UnexpectedEndOfString */:\n _error(localize('UnexpectedEndOfString', 'Unexpected end of string.'), ErrorCode.UnexpectedEndOfString);\n return true;\n case 6 /* InvalidCharacter */:\n _error(localize('InvalidCharacter', 'Invalid characters in string. Control characters must be escaped.'), ErrorCode.InvalidCharacter);\n return true;\n }\n return false;\n }\n function _finalize(node, scanNext) {\n node.length = scanner.getTokenOffset() + scanner.getTokenLength() - node.offset;\n if (scanNext) {\n _scanNext();\n }\n return node;\n }\n function _parseArray(parent) {\n if (scanner.getToken() !== 3 /* OpenBracketToken */) {\n return undefined;\n }\n var node = new ArrayASTNodeImpl(parent, scanner.getTokenOffset());\n _scanNext(); // consume OpenBracketToken\n var count = 0;\n var needsComma = false;\n while (scanner.getToken() !== 4 /* CloseBracketToken */ && scanner.getToken() !== 17 /* EOF */) {\n if (scanner.getToken() === 5 /* CommaToken */) {\n if (!needsComma) {\n _error(localize('ValueExpected', 'Value expected'), ErrorCode.ValueExpected);\n }\n var commaOffset = scanner.getTokenOffset();\n _scanNext(); // consume comma\n if (scanner.getToken() === 4 /* CloseBracketToken */) {\n if (needsComma) {\n _errorAtRange(localize('TrailingComma', 'Trailing comma'), ErrorCode.TrailingComma, commaOffset, commaOffset + 1);\n }\n continue;\n }\n }\n else if (needsComma) {\n _error(localize('ExpectedComma', 'Expected comma'), ErrorCode.CommaExpected);\n }\n var item = _parseValue(node);\n if (!item) {\n _error(localize('PropertyExpected', 'Value expected'), ErrorCode.ValueExpected, undefined, [], [4 /* CloseBracketToken */, 5 /* CommaToken */]);\n }\n else {\n node.items.push(item);\n }\n needsComma = true;\n }\n if (scanner.getToken() !== 4 /* CloseBracketToken */) {\n return _error(localize('ExpectedCloseBracket', 'Expected comma or closing bracket'), ErrorCode.CommaOrCloseBacketExpected, node);\n }\n return _finalize(node, true);\n }\n var keyPlaceholder = new StringASTNodeImpl(undefined, 0, 0);\n function _parseProperty(parent, keysSeen) {\n var node = new PropertyASTNodeImpl(parent, scanner.getTokenOffset(), keyPlaceholder);\n var key = _parseString(node);\n if (!key) {\n if (scanner.getToken() === 16 /* Unknown */) {\n // give a more helpful error message\n _error(localize('DoubleQuotesExpected', 'Property keys must be doublequoted'), ErrorCode.Undefined);\n var keyNode = new StringASTNodeImpl(node, scanner.getTokenOffset(), scanner.getTokenLength());\n keyNode.value = scanner.getTokenValue();\n key = keyNode;\n _scanNext(); // consume Unknown\n }\n else {\n return undefined;\n }\n }\n node.keyNode = key;\n var seen = keysSeen[key.value];\n if (seen) {\n _errorAtRange(localize('DuplicateKeyWarning', \"Duplicate object key\"), ErrorCode.DuplicateKey, node.keyNode.offset, node.keyNode.offset + node.keyNode.length, DiagnosticSeverity.Warning);\n if (typeof seen === 'object') {\n _errorAtRange(localize('DuplicateKeyWarning', \"Duplicate object key\"), ErrorCode.DuplicateKey, seen.keyNode.offset, seen.keyNode.offset + seen.keyNode.length, DiagnosticSeverity.Warning);\n }\n keysSeen[key.value] = true; // if the same key is duplicate again, avoid duplicate error reporting\n }\n else {\n keysSeen[key.value] = node;\n }\n if (scanner.getToken() === 6 /* ColonToken */) {\n node.colonOffset = scanner.getTokenOffset();\n _scanNext(); // consume ColonToken\n }\n else {\n _error(localize('ColonExpected', 'Colon expected'), ErrorCode.ColonExpected);\n if (scanner.getToken() === 10 /* StringLiteral */ && textDocument.positionAt(key.offset + key.length).line < textDocument.positionAt(scanner.getTokenOffset()).line) {\n node.length = key.length;\n return node;\n }\n }\n var value = _parseValue(node);\n if (!value) {\n return _error(localize('ValueExpected', 'Value expected'), ErrorCode.ValueExpected, node, [], [2 /* CloseBraceToken */, 5 /* CommaToken */]);\n }\n node.valueNode = value;\n node.length = value.offset + value.length - node.offset;\n return node;\n }\n function _parseObject(parent) {\n if (scanner.getToken() !== 1 /* OpenBraceToken */) {\n return undefined;\n }\n var node = new ObjectASTNodeImpl(parent, scanner.getTokenOffset());\n var keysSeen = Object.create(null);\n _scanNext(); // consume OpenBraceToken\n var needsComma = false;\n while (scanner.getToken() !== 2 /* CloseBraceToken */ && scanner.getToken() !== 17 /* EOF */) {\n if (scanner.getToken() === 5 /* CommaToken */) {\n if (!needsComma) {\n _error(localize('PropertyExpected', 'Property expected'), ErrorCode.PropertyExpected);\n }\n var commaOffset = scanner.getTokenOffset();\n _scanNext(); // consume comma\n if (scanner.getToken() === 2 /* CloseBraceToken */) {\n if (needsComma) {\n _errorAtRange(localize('TrailingComma', 'Trailing comma'), ErrorCode.TrailingComma, commaOffset, commaOffset + 1);\n }\n continue;\n }\n }\n else if (needsComma) {\n _error(localize('ExpectedComma', 'Expected comma'), ErrorCode.CommaExpected);\n }\n var property = _parseProperty(node, keysSeen);\n if (!property) {\n _error(localize('PropertyExpected', 'Property expected'), ErrorCode.PropertyExpected, undefined, [], [2 /* CloseBraceToken */, 5 /* CommaToken */]);\n }\n else {\n node.properties.push(property);\n }\n needsComma = true;\n }\n if (scanner.getToken() !== 2 /* CloseBraceToken */) {\n return _error(localize('ExpectedCloseBrace', 'Expected comma or closing brace'), ErrorCode.CommaOrCloseBraceExpected, node);\n }\n return _finalize(node, true);\n }\n function _parseString(parent) {\n if (scanner.getToken() !== 10 /* StringLiteral */) {\n return undefined;\n }\n var node = new StringASTNodeImpl(parent, scanner.getTokenOffset());\n node.value = scanner.getTokenValue();\n return _finalize(node, true);\n }\n function _parseNumber(parent) {\n if (scanner.getToken() !== 11 /* NumericLiteral */) {\n return undefined;\n }\n var node = new NumberASTNodeImpl(parent, scanner.getTokenOffset());\n if (scanner.getTokenError() === 0 /* None */) {\n var tokenValue = scanner.getTokenValue();\n try {\n var numberValue = JSON.parse(tokenValue);\n if (!isNumber(numberValue)) {\n return _error(localize('InvalidNumberFormat', 'Invalid number format.'), ErrorCode.Undefined, node);\n }\n node.value = numberValue;\n }\n catch (e) {\n return _error(localize('InvalidNumberFormat', 'Invalid number format.'), ErrorCode.Undefined, node);\n }\n node.isInteger = tokenValue.indexOf('.') === -1;\n }\n return _finalize(node, true);\n }\n function _parseLiteral(parent) {\n var node;\n switch (scanner.getToken()) {\n case 7 /* NullKeyword */:\n return _finalize(new NullASTNodeImpl(parent, scanner.getTokenOffset()), true);\n case 8 /* TrueKeyword */:\n return _finalize(new BooleanASTNodeImpl(parent, true, scanner.getTokenOffset()), true);\n case 9 /* FalseKeyword */:\n return _finalize(new BooleanASTNodeImpl(parent, false, scanner.getTokenOffset()), true);\n default:\n return undefined;\n }\n }\n function _parseValue(parent) {\n return _parseArray(parent) || _parseObject(parent) || _parseString(parent) || _parseNumber(parent) || _parseLiteral(parent);\n }\n var _root = undefined;\n var token = _scanNext();\n if (token !== 17 /* EOF */) {\n _root = _parseValue(_root);\n if (!_root) {\n _error(localize('Invalid symbol', 'Expected a JSON object, array or literal.'), ErrorCode.Undefined);\n }\n else if (scanner.getToken() !== 17 /* EOF */) {\n _error(localize('End of file expected', 'End of file expected.'), ErrorCode.Undefined);\n }\n }\n return new JSONDocument(_root, problems, commentRanges);\n}\n", "/*---------------------------------------------------------------------------------------------\n* Copyright (c) Microsoft Corporation. All rights reserved.\n* Licensed under the MIT License. See License.txt in the project root for license information.\n*--------------------------------------------------------------------------------------------*/\nexport function equals(one, other) {\n if (one === other) {\n return true;\n }\n if (one === null || one === undefined || other === null || other === undefined) {\n return false;\n }\n if (typeof one !== typeof other) {\n return false;\n }\n if (typeof one !== 'object') {\n return false;\n }\n if ((Array.isArray(one)) !== (Array.isArray(other))) {\n return false;\n }\n var i, key;\n if (Array.isArray(one)) {\n if (one.length !== other.length) {\n return false;\n }\n for (i = 0; i < one.length; i++) {\n if (!equals(one[i], other[i])) {\n return false;\n }\n }\n }\n else {\n var oneKeys = [];\n for (key in one) {\n oneKeys.push(key);\n }\n oneKeys.sort();\n var otherKeys = [];\n for (key in other) {\n otherKeys.push(key);\n }\n otherKeys.sort();\n if (!equals(oneKeys, otherKeys)) {\n return false;\n }\n for (i = 0; i < oneKeys.length; i++) {\n if (!equals(one[oneKeys[i]], other[oneKeys[i]])) {\n return false;\n }\n }\n }\n return true;\n}\nexport function isNumber(val) {\n return typeof val === 'number';\n}\nexport function isDefined(val) {\n return typeof val !== 'undefined';\n}\nexport function isBoolean(val) {\n return typeof val === 'boolean';\n}\nexport function isString(val) {\n return typeof val === 'string';\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range, Position, MarkupContent, MarkupKind, Color, ColorInformation, ColorPresentation, FoldingRange, FoldingRangeKind, SelectionRange, Diagnostic, DiagnosticSeverity, CompletionItem, CompletionItemKind, CompletionList, CompletionItemTag, InsertTextFormat, SymbolInformation, SymbolKind, DocumentSymbol, Location, Hover, MarkedString, CodeActionContext, Command, CodeAction, DocumentHighlight, DocumentLink, WorkspaceEdit, TextEdit, CodeActionKind, TextDocumentEdit, VersionedTextDocumentIdentifier, DocumentHighlightKind } from 'vscode-languageserver-types';\nimport { TextDocument } from 'vscode-languageserver-textdocument';\nexport { TextDocument, Range, Position, MarkupContent, MarkupKind, Color, ColorInformation, ColorPresentation, FoldingRange, FoldingRangeKind, SelectionRange, Diagnostic, DiagnosticSeverity, CompletionItem, CompletionItemKind, CompletionList, CompletionItemTag, InsertTextFormat, SymbolInformation, SymbolKind, DocumentSymbol, Location, Hover, MarkedString, CodeActionContext, Command, CodeAction, DocumentHighlight, DocumentLink, WorkspaceEdit, TextEdit, CodeActionKind, TextDocumentEdit, VersionedTextDocumentIdentifier, DocumentHighlightKind };\n/**\n * Error codes used by diagnostics\n */\nexport var ErrorCode;\n(function (ErrorCode) {\n ErrorCode[ErrorCode[\"Undefined\"] = 0] = \"Undefined\";\n ErrorCode[ErrorCode[\"EnumValueMismatch\"] = 1] = \"EnumValueMismatch\";\n ErrorCode[ErrorCode[\"Deprecated\"] = 2] = \"Deprecated\";\n ErrorCode[ErrorCode[\"UnexpectedEndOfComment\"] = 257] = \"UnexpectedEndOfComment\";\n ErrorCode[ErrorCode[\"UnexpectedEndOfString\"] = 258] = \"UnexpectedEndOfString\";\n ErrorCode[ErrorCode[\"UnexpectedEndOfNumber\"] = 259] = \"UnexpectedEndOfNumber\";\n ErrorCode[ErrorCode[\"InvalidUnicode\"] = 260] = \"InvalidUnicode\";\n ErrorCode[ErrorCode[\"InvalidEscapeCharacter\"] = 261] = \"InvalidEscapeCharacter\";\n ErrorCode[ErrorCode[\"InvalidCharacter\"] = 262] = \"InvalidCharacter\";\n ErrorCode[ErrorCode[\"PropertyExpected\"] = 513] = \"PropertyExpected\";\n ErrorCode[ErrorCode[\"CommaExpected\"] = 514] = \"CommaExpected\";\n ErrorCode[ErrorCode[\"ColonExpected\"] = 515] = \"ColonExpected\";\n ErrorCode[ErrorCode[\"ValueExpected\"] = 516] = \"ValueExpected\";\n ErrorCode[ErrorCode[\"CommaOrCloseBacketExpected\"] = 517] = \"CommaOrCloseBacketExpected\";\n ErrorCode[ErrorCode[\"CommaOrCloseBraceExpected\"] = 518] = \"CommaOrCloseBraceExpected\";\n ErrorCode[ErrorCode[\"TrailingComma\"] = 519] = \"TrailingComma\";\n ErrorCode[ErrorCode[\"DuplicateKey\"] = 520] = \"DuplicateKey\";\n ErrorCode[ErrorCode[\"CommentNotPermitted\"] = 521] = \"CommentNotPermitted\";\n ErrorCode[ErrorCode[\"SchemaResolveError\"] = 768] = \"SchemaResolveError\";\n})(ErrorCode || (ErrorCode = {}));\nexport var ClientCapabilities;\n(function (ClientCapabilities) {\n ClientCapabilities.LATEST = {\n textDocument: {\n completion: {\n completionItem: {\n documentationFormat: [MarkupKind.Markdown, MarkupKind.PlainText],\n commitCharactersSupport: true\n }\n }\n }\n };\n})(ClientCapabilities || (ClientCapabilities = {}));\n", "export interface Options {\n locale?: string;\n cacheLanguageResolution?: boolean;\n}\nexport interface LocalizeInfo {\n key: string;\n comment: string[];\n}\nexport type LocalizeFunc = (\n info: LocalizeInfo | string,\n message: string,\n ...args: unknown[]\n) => string;\nexport type LoadFunc = (file?: string) => LocalizeFunc;\n\nfunction format(message: string, args: string[]): string {\n return args.length === 0\n ? message\n : message.replace(/{(\\d+)}/g, (match, rest: number[]) => {\n const [index] = rest;\n return typeof args[index] === 'undefined' ? match : args[index];\n });\n}\n\nfunction localize(key: LocalizeInfo | string, message: string, ...args: string[]): string {\n return format(message, args);\n}\n\nexport function loadMessageBundle(): LocalizeFunc {\n return localize;\n}\n\nexport function config(): LoadFunc {\n return loadMessageBundle;\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Copyright (c) 2013, Nick Fitzgerald\n * Licensed under the MIT License. See LICENCE.md in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nexport function createRegex(glob, opts) {\n if (typeof glob !== 'string') {\n throw new TypeError('Expected a string');\n }\n var str = String(glob);\n // The regexp we are building, as a string.\n var reStr = \"\";\n // Whether we are matching so called \"extended\" globs (like bash) and should\n // support single character matching, matching ranges of characters, group\n // matching, etc.\n var extended = opts ? !!opts.extended : false;\n // When globstar is _false_ (default), '/foo/*' is translated a regexp like\n // '^\\/foo\\/.*$' which will match any string beginning with '/foo/'\n // When globstar is _true_, '/foo/*' is translated to regexp like\n // '^\\/foo\\/[^/]*$' which will match any string beginning with '/foo/' BUT\n // which does not have a '/' to the right of it.\n // E.g. with '/foo/*' these will match: '/foo/bar', '/foo/bar.txt' but\n // these will not '/foo/bar/baz', '/foo/bar/baz.txt'\n // Lastely, when globstar is _true_, '/foo/**' is equivelant to '/foo/*' when\n // globstar is _false_\n var globstar = opts ? !!opts.globstar : false;\n // If we are doing extended matching, this boolean is true when we are inside\n // a group (eg {*.html,*.js}), and false otherwise.\n var inGroup = false;\n // RegExp flags (eg \"i\" ) to pass in to RegExp constructor.\n var flags = opts && typeof (opts.flags) === \"string\" ? opts.flags : \"\";\n var c;\n for (var i = 0, len = str.length; i < len; i++) {\n c = str[i];\n switch (c) {\n case \"/\":\n case \"$\":\n case \"^\":\n case \"+\":\n case \".\":\n case \"(\":\n case \")\":\n case \"=\":\n case \"!\":\n case \"|\":\n reStr += \"\\\\\" + c;\n break;\n case \"?\":\n if (extended) {\n reStr += \".\";\n break;\n }\n case \"[\":\n case \"]\":\n if (extended) {\n reStr += c;\n break;\n }\n case \"{\":\n if (extended) {\n inGroup = true;\n reStr += \"(\";\n break;\n }\n case \"}\":\n if (extended) {\n inGroup = false;\n reStr += \")\";\n break;\n }\n case \",\":\n if (inGroup) {\n reStr += \"|\";\n break;\n }\n reStr += \"\\\\\" + c;\n break;\n case \"*\":\n // Move over all consecutive \"*\"'s.\n // Also store the previous and next characters\n var prevChar = str[i - 1];\n var starCount = 1;\n while (str[i + 1] === \"*\") {\n starCount++;\n i++;\n }\n var nextChar = str[i + 1];\n if (!globstar) {\n // globstar is disabled, so treat any number of \"*\" as one\n reStr += \".*\";\n }\n else {\n // globstar is enabled, so determine if this is a globstar segment\n var isGlobstar = starCount > 1 // multiple \"*\"'s\n && (prevChar === \"/\" || prevChar === undefined || prevChar === '{' || prevChar === ',') // from the start of the segment\n && (nextChar === \"/\" || nextChar === undefined || nextChar === ',' || nextChar === '}'); // to the end of the segment\n if (isGlobstar) {\n if (nextChar === \"/\") {\n i++; // move over the \"/\"\n }\n else if (prevChar === '/' && reStr.endsWith('\\\\/')) {\n reStr = reStr.substr(0, reStr.length - 2);\n }\n // it's a globstar, so match zero or more path segments\n reStr += \"((?:[^/]*(?:\\/|$))*)\";\n }\n else {\n // it's not a globstar, so only match one path segment\n reStr += \"([^/]*)\";\n }\n }\n break;\n default:\n reStr += c;\n }\n }\n // When regexp 'g' flag is specified don't\n // constrain the regular expression with ^ & $\n if (!flags || !~flags.indexOf('g')) {\n reStr = \"^\" + reStr + \"$\";\n }\n return new RegExp(reStr, flags);\n}\n;\n", null, null, null, null, null, null, "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Parser from '../parser/jsonParser';\nimport * as Json from 'jsonc-parser';\nimport { stringifyObject } from '../utils/json';\nimport { endsWith, extendedRegExp } from '../utils/strings';\nimport { isDefined } from '../utils/objects';\nimport { CompletionItem, CompletionItemKind, Range, TextEdit, InsertTextFormat, MarkupKind } from '../jsonLanguageTypes';\nimport * as nls from 'vscode-nls';\nvar localize = nls.loadMessageBundle();\nvar valueCommitCharacters = [',', '}', ']'];\nvar propertyCommitCharacters = [':'];\nvar JSONCompletion = /** @class */ (function () {\n function JSONCompletion(schemaService, contributions, promiseConstructor, clientCapabilities) {\n if (contributions === void 0) { contributions = []; }\n if (promiseConstructor === void 0) { promiseConstructor = Promise; }\n if (clientCapabilities === void 0) { clientCapabilities = {}; }\n this.schemaService = schemaService;\n this.contributions = contributions;\n this.promiseConstructor = promiseConstructor;\n this.clientCapabilities = clientCapabilities;\n }\n JSONCompletion.prototype.doResolve = function (item) {\n for (var i = this.contributions.length - 1; i >= 0; i--) {\n var resolveCompletion = this.contributions[i].resolveCompletion;\n if (resolveCompletion) {\n var resolver = resolveCompletion(item);\n if (resolver) {\n return resolver;\n }\n }\n }\n return this.promiseConstructor.resolve(item);\n };\n JSONCompletion.prototype.doComplete = function (document, position, doc) {\n var _this = this;\n var result = {\n items: [],\n isIncomplete: false\n };\n var text = document.getText();\n var offset = document.offsetAt(position);\n var node = doc.getNodeFromOffset(offset, true);\n if (this.isInComment(document, node ? node.offset : 0, offset)) {\n return Promise.resolve(result);\n }\n if (node && (offset === node.offset + node.length) && offset > 0) {\n var ch = text[offset - 1];\n if (node.type === 'object' && ch === '}' || node.type === 'array' && ch === ']') {\n // after ] or }\n node = node.parent;\n }\n }\n var currentWord = this.getCurrentWord(document, offset);\n var overwriteRange;\n if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) {\n overwriteRange = Range.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length));\n }\n else {\n var overwriteStart = offset - currentWord.length;\n if (overwriteStart > 0 && text[overwriteStart - 1] === '\"') {\n overwriteStart--;\n }\n overwriteRange = Range.create(document.positionAt(overwriteStart), position);\n }\n var supportsCommitCharacters = false; //this.doesSupportsCommitCharacters(); disabled for now, waiting for new API: https://github.com/microsoft/vscode/issues/42544\n var proposed = {};\n var collector = {\n add: function (suggestion) {\n var label = suggestion.label;\n var existing = proposed[label];\n if (!existing) {\n label = label.replace(/[\\n]/g, '\u21B5');\n if (label.length > 60) {\n var shortendedLabel = label.substr(0, 57).trim() + '...';\n if (!proposed[shortendedLabel]) {\n label = shortendedLabel;\n }\n }\n if (overwriteRange && suggestion.insertText !== undefined) {\n suggestion.textEdit = TextEdit.replace(overwriteRange, suggestion.insertText);\n }\n if (supportsCommitCharacters) {\n suggestion.commitCharacters = suggestion.kind === CompletionItemKind.Property ? propertyCommitCharacters : valueCommitCharacters;\n }\n suggestion.label = label;\n proposed[label] = suggestion;\n result.items.push(suggestion);\n }\n else {\n if (!existing.documentation) {\n existing.documentation = suggestion.documentation;\n }\n if (!existing.detail) {\n existing.detail = suggestion.detail;\n }\n }\n },\n setAsIncomplete: function () {\n result.isIncomplete = true;\n },\n error: function (message) {\n console.error(message);\n },\n log: function (message) {\n console.log(message);\n },\n getNumberOfProposals: function () {\n return result.items.length;\n }\n };\n return this.schemaService.getSchemaForResource(document.uri, doc).then(function (schema) {\n var collectionPromises = [];\n var addValue = true;\n var currentKey = '';\n var currentProperty = undefined;\n if (node) {\n if (node.type === 'string') {\n var parent = node.parent;\n if (parent && parent.type === 'property' && parent.keyNode === node) {\n addValue = !parent.valueNode;\n currentProperty = parent;\n currentKey = text.substr(node.offset + 1, node.length - 2);\n if (parent) {\n node = parent.parent;\n }\n }\n }\n }\n // proposals for properties\n if (node && node.type === 'object') {\n // don't suggest keys when the cursor is just before the opening curly brace\n if (node.offset === offset) {\n return result;\n }\n // don't suggest properties that are already present\n var properties = node.properties;\n properties.forEach(function (p) {\n if (!currentProperty || currentProperty !== p) {\n proposed[p.keyNode.value] = CompletionItem.create('__');\n }\n });\n var separatorAfter_1 = '';\n if (addValue) {\n separatorAfter_1 = _this.evaluateSeparatorAfter(document, document.offsetAt(overwriteRange.end));\n }\n if (schema) {\n // property proposals with schema\n _this.getPropertyCompletions(schema, doc, node, addValue, separatorAfter_1, collector);\n }\n else {\n // property proposals without schema\n _this.getSchemaLessPropertyCompletions(doc, node, currentKey, collector);\n }\n var location_1 = Parser.getNodePath(node);\n _this.contributions.forEach(function (contribution) {\n var collectPromise = contribution.collectPropertyCompletions(document.uri, location_1, currentWord, addValue, separatorAfter_1 === '', collector);\n if (collectPromise) {\n collectionPromises.push(collectPromise);\n }\n });\n if ((!schema && currentWord.length > 0 && text.charAt(offset - currentWord.length - 1) !== '\"')) {\n collector.add({\n kind: CompletionItemKind.Property,\n label: _this.getLabelForValue(currentWord),\n insertText: _this.getInsertTextForProperty(currentWord, undefined, false, separatorAfter_1),\n insertTextFormat: InsertTextFormat.Snippet, documentation: '',\n });\n collector.setAsIncomplete();\n }\n }\n // proposals for values\n var types = {};\n if (schema) {\n // value proposals with schema\n _this.getValueCompletions(schema, doc, node, offset, document, collector, types);\n }\n else {\n // value proposals without schema\n _this.getSchemaLessValueCompletions(doc, node, offset, document, collector);\n }\n if (_this.contributions.length > 0) {\n _this.getContributedValueCompletions(doc, node, offset, document, collector, collectionPromises);\n }\n return _this.promiseConstructor.all(collectionPromises).then(function () {\n if (collector.getNumberOfProposals() === 0) {\n var offsetForSeparator = offset;\n if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) {\n offsetForSeparator = node.offset + node.length;\n }\n var separatorAfter = _this.evaluateSeparatorAfter(document, offsetForSeparator);\n _this.addFillerValueCompletions(types, separatorAfter, collector);\n }\n return result;\n });\n });\n };\n JSONCompletion.prototype.getPropertyCompletions = function (schema, doc, node, addValue, separatorAfter, collector) {\n var _this = this;\n var matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset);\n matchingSchemas.forEach(function (s) {\n if (s.node === node && !s.inverted) {\n var schemaProperties_1 = s.schema.properties;\n if (schemaProperties_1) {\n Object.keys(schemaProperties_1).forEach(function (key) {\n var propertySchema = schemaProperties_1[key];\n if (typeof propertySchema === 'object' && !propertySchema.deprecationMessage && !propertySchema.doNotSuggest) {\n var proposal = {\n kind: CompletionItemKind.Property,\n label: key,\n insertText: _this.getInsertTextForProperty(key, propertySchema, addValue, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n filterText: _this.getFilterTextForValue(key),\n documentation: _this.fromMarkup(propertySchema.markdownDescription) || propertySchema.description || '',\n };\n if (propertySchema.suggestSortText !== undefined) {\n proposal.sortText = propertySchema.suggestSortText;\n }\n if (proposal.insertText && endsWith(proposal.insertText, \"$1\" + separatorAfter)) {\n proposal.command = {\n title: 'Suggest',\n command: 'editor.action.triggerSuggest'\n };\n }\n collector.add(proposal);\n }\n });\n }\n var schemaPropertyNames_1 = s.schema.propertyNames;\n if (typeof schemaPropertyNames_1 === 'object' && !schemaPropertyNames_1.deprecationMessage && !schemaPropertyNames_1.doNotSuggest) {\n var propertyNameCompletionItem = function (name, enumDescription) {\n if (enumDescription === void 0) { enumDescription = undefined; }\n var proposal = {\n kind: CompletionItemKind.Property,\n label: name,\n insertText: _this.getInsertTextForProperty(name, undefined, addValue, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n filterText: _this.getFilterTextForValue(name),\n documentation: enumDescription || _this.fromMarkup(schemaPropertyNames_1.markdownDescription) || schemaPropertyNames_1.description || '',\n };\n if (schemaPropertyNames_1.suggestSortText !== undefined) {\n proposal.sortText = schemaPropertyNames_1.suggestSortText;\n }\n if (proposal.insertText && endsWith(proposal.insertText, \"$1\" + separatorAfter)) {\n proposal.command = {\n title: 'Suggest',\n command: 'editor.action.triggerSuggest'\n };\n }\n collector.add(proposal);\n };\n if (schemaPropertyNames_1.enum) {\n for (var i = 0; i < schemaPropertyNames_1.enum.length; i++) {\n var enumDescription = undefined;\n if (schemaPropertyNames_1.markdownEnumDescriptions && i < schemaPropertyNames_1.markdownEnumDescriptions.length) {\n enumDescription = _this.fromMarkup(schemaPropertyNames_1.markdownEnumDescriptions[i]);\n }\n else if (schemaPropertyNames_1.enumDescriptions && i < schemaPropertyNames_1.enumDescriptions.length) {\n enumDescription = schemaPropertyNames_1.enumDescriptions[i];\n }\n propertyNameCompletionItem(schemaPropertyNames_1.enum[i], enumDescription);\n }\n }\n if (schemaPropertyNames_1.const) {\n propertyNameCompletionItem(schemaPropertyNames_1.const);\n }\n }\n }\n });\n };\n JSONCompletion.prototype.getSchemaLessPropertyCompletions = function (doc, node, currentKey, collector) {\n var _this = this;\n var collectCompletionsForSimilarObject = function (obj) {\n obj.properties.forEach(function (p) {\n var key = p.keyNode.value;\n collector.add({\n kind: CompletionItemKind.Property,\n label: key,\n insertText: _this.getInsertTextForValue(key, ''),\n insertTextFormat: InsertTextFormat.Snippet,\n filterText: _this.getFilterTextForValue(key),\n documentation: ''\n });\n });\n };\n if (node.parent) {\n if (node.parent.type === 'property') {\n // if the object is a property value, check the tree for other objects that hang under a property of the same name\n var parentKey_1 = node.parent.keyNode.value;\n doc.visit(function (n) {\n if (n.type === 'property' && n !== node.parent && n.keyNode.value === parentKey_1 && n.valueNode && n.valueNode.type === 'object') {\n collectCompletionsForSimilarObject(n.valueNode);\n }\n return true;\n });\n }\n else if (node.parent.type === 'array') {\n // if the object is in an array, use all other array elements as similar objects\n node.parent.items.forEach(function (n) {\n if (n.type === 'object' && n !== node) {\n collectCompletionsForSimilarObject(n);\n }\n });\n }\n }\n else if (node.type === 'object') {\n collector.add({\n kind: CompletionItemKind.Property,\n label: '$schema',\n insertText: this.getInsertTextForProperty('$schema', undefined, true, ''),\n insertTextFormat: InsertTextFormat.Snippet, documentation: '',\n filterText: this.getFilterTextForValue(\"$schema\")\n });\n }\n };\n JSONCompletion.prototype.getSchemaLessValueCompletions = function (doc, node, offset, document, collector) {\n var _this = this;\n var offsetForSeparator = offset;\n if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) {\n offsetForSeparator = node.offset + node.length;\n node = node.parent;\n }\n if (!node) {\n collector.add({\n kind: this.getSuggestionKind('object'),\n label: 'Empty object',\n insertText: this.getInsertTextForValue({}, ''),\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: ''\n });\n collector.add({\n kind: this.getSuggestionKind('array'),\n label: 'Empty array',\n insertText: this.getInsertTextForValue([], ''),\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: ''\n });\n return;\n }\n var separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator);\n var collectSuggestionsForValues = function (value) {\n if (value.parent && !Parser.contains(value.parent, offset, true)) {\n collector.add({\n kind: _this.getSuggestionKind(value.type),\n label: _this.getLabelTextForMatchingNode(value, document),\n insertText: _this.getInsertTextForMatchingNode(value, document, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet, documentation: ''\n });\n }\n if (value.type === 'boolean') {\n _this.addBooleanValueCompletion(!value.value, separatorAfter, collector);\n }\n };\n if (node.type === 'property') {\n if (offset > (node.colonOffset || 0)) {\n var valueNode = node.valueNode;\n if (valueNode && (offset > (valueNode.offset + valueNode.length) || valueNode.type === 'object' || valueNode.type === 'array')) {\n return;\n }\n // suggest values at the same key\n var parentKey_2 = node.keyNode.value;\n doc.visit(function (n) {\n if (n.type === 'property' && n.keyNode.value === parentKey_2 && n.valueNode) {\n collectSuggestionsForValues(n.valueNode);\n }\n return true;\n });\n if (parentKey_2 === '$schema' && node.parent && !node.parent.parent) {\n this.addDollarSchemaCompletions(separatorAfter, collector);\n }\n }\n }\n if (node.type === 'array') {\n if (node.parent && node.parent.type === 'property') {\n // suggest items of an array at the same key\n var parentKey_3 = node.parent.keyNode.value;\n doc.visit(function (n) {\n if (n.type === 'property' && n.keyNode.value === parentKey_3 && n.valueNode && n.valueNode.type === 'array') {\n n.valueNode.items.forEach(collectSuggestionsForValues);\n }\n return true;\n });\n }\n else {\n // suggest items in the same array\n node.items.forEach(collectSuggestionsForValues);\n }\n }\n };\n JSONCompletion.prototype.getValueCompletions = function (schema, doc, node, offset, document, collector, types) {\n var offsetForSeparator = offset;\n var parentKey = undefined;\n var valueNode = undefined;\n if (node && (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null')) {\n offsetForSeparator = node.offset + node.length;\n valueNode = node;\n node = node.parent;\n }\n if (!node) {\n this.addSchemaValueCompletions(schema.schema, '', collector, types);\n return;\n }\n if ((node.type === 'property') && offset > (node.colonOffset || 0)) {\n var valueNode_1 = node.valueNode;\n if (valueNode_1 && offset > (valueNode_1.offset + valueNode_1.length)) {\n return; // we are past the value node\n }\n parentKey = node.keyNode.value;\n node = node.parent;\n }\n if (node && (parentKey !== undefined || node.type === 'array')) {\n var separatorAfter = this.evaluateSeparatorAfter(document, offsetForSeparator);\n var matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset, valueNode);\n for (var _i = 0, matchingSchemas_1 = matchingSchemas; _i < matchingSchemas_1.length; _i++) {\n var s = matchingSchemas_1[_i];\n if (s.node === node && !s.inverted && s.schema) {\n if (node.type === 'array' && s.schema.items) {\n if (Array.isArray(s.schema.items)) {\n var index = this.findItemAtOffset(node, document, offset);\n if (index < s.schema.items.length) {\n this.addSchemaValueCompletions(s.schema.items[index], separatorAfter, collector, types);\n }\n }\n else {\n this.addSchemaValueCompletions(s.schema.items, separatorAfter, collector, types);\n }\n }\n if (parentKey !== undefined) {\n var propertyMatched = false;\n if (s.schema.properties) {\n var propertySchema = s.schema.properties[parentKey];\n if (propertySchema) {\n propertyMatched = true;\n this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types);\n }\n }\n if (s.schema.patternProperties && !propertyMatched) {\n for (var _a = 0, _b = Object.keys(s.schema.patternProperties); _a < _b.length; _a++) {\n var pattern = _b[_a];\n var regex = extendedRegExp(pattern);\n if (regex === null || regex === void 0 ? void 0 : regex.test(parentKey)) {\n propertyMatched = true;\n var propertySchema = s.schema.patternProperties[pattern];\n this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types);\n }\n }\n }\n if (s.schema.additionalProperties && !propertyMatched) {\n var propertySchema = s.schema.additionalProperties;\n this.addSchemaValueCompletions(propertySchema, separatorAfter, collector, types);\n }\n }\n }\n }\n if (parentKey === '$schema' && !node.parent) {\n this.addDollarSchemaCompletions(separatorAfter, collector);\n }\n if (types['boolean']) {\n this.addBooleanValueCompletion(true, separatorAfter, collector);\n this.addBooleanValueCompletion(false, separatorAfter, collector);\n }\n if (types['null']) {\n this.addNullValueCompletion(separatorAfter, collector);\n }\n }\n };\n JSONCompletion.prototype.getContributedValueCompletions = function (doc, node, offset, document, collector, collectionPromises) {\n if (!node) {\n this.contributions.forEach(function (contribution) {\n var collectPromise = contribution.collectDefaultCompletions(document.uri, collector);\n if (collectPromise) {\n collectionPromises.push(collectPromise);\n }\n });\n }\n else {\n if (node.type === 'string' || node.type === 'number' || node.type === 'boolean' || node.type === 'null') {\n node = node.parent;\n }\n if (node && (node.type === 'property') && offset > (node.colonOffset || 0)) {\n var parentKey_4 = node.keyNode.value;\n var valueNode = node.valueNode;\n if ((!valueNode || offset <= (valueNode.offset + valueNode.length)) && node.parent) {\n var location_2 = Parser.getNodePath(node.parent);\n this.contributions.forEach(function (contribution) {\n var collectPromise = contribution.collectValueCompletions(document.uri, location_2, parentKey_4, collector);\n if (collectPromise) {\n collectionPromises.push(collectPromise);\n }\n });\n }\n }\n }\n };\n JSONCompletion.prototype.addSchemaValueCompletions = function (schema, separatorAfter, collector, types) {\n var _this = this;\n if (typeof schema === 'object') {\n this.addEnumValueCompletions(schema, separatorAfter, collector);\n this.addDefaultValueCompletions(schema, separatorAfter, collector);\n this.collectTypes(schema, types);\n if (Array.isArray(schema.allOf)) {\n schema.allOf.forEach(function (s) { return _this.addSchemaValueCompletions(s, separatorAfter, collector, types); });\n }\n if (Array.isArray(schema.anyOf)) {\n schema.anyOf.forEach(function (s) { return _this.addSchemaValueCompletions(s, separatorAfter, collector, types); });\n }\n if (Array.isArray(schema.oneOf)) {\n schema.oneOf.forEach(function (s) { return _this.addSchemaValueCompletions(s, separatorAfter, collector, types); });\n }\n }\n };\n JSONCompletion.prototype.addDefaultValueCompletions = function (schema, separatorAfter, collector, arrayDepth) {\n var _this = this;\n if (arrayDepth === void 0) { arrayDepth = 0; }\n var hasProposals = false;\n if (isDefined(schema.default)) {\n var type = schema.type;\n var value = schema.default;\n for (var i = arrayDepth; i > 0; i--) {\n value = [value];\n type = 'array';\n }\n collector.add({\n kind: this.getSuggestionKind(type),\n label: this.getLabelForValue(value),\n insertText: this.getInsertTextForValue(value, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n detail: localize('json.suggest.default', 'Default value')\n });\n hasProposals = true;\n }\n if (Array.isArray(schema.examples)) {\n schema.examples.forEach(function (example) {\n var type = schema.type;\n var value = example;\n for (var i = arrayDepth; i > 0; i--) {\n value = [value];\n type = 'array';\n }\n collector.add({\n kind: _this.getSuggestionKind(type),\n label: _this.getLabelForValue(value),\n insertText: _this.getInsertTextForValue(value, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet\n });\n hasProposals = true;\n });\n }\n if (Array.isArray(schema.defaultSnippets)) {\n schema.defaultSnippets.forEach(function (s) {\n var type = schema.type;\n var value = s.body;\n var label = s.label;\n var insertText;\n var filterText;\n if (isDefined(value)) {\n var type_1 = schema.type;\n for (var i = arrayDepth; i > 0; i--) {\n value = [value];\n type_1 = 'array';\n }\n insertText = _this.getInsertTextForSnippetValue(value, separatorAfter);\n filterText = _this.getFilterTextForSnippetValue(value);\n label = label || _this.getLabelForSnippetValue(value);\n }\n else if (typeof s.bodyText === 'string') {\n var prefix = '', suffix = '', indent = '';\n for (var i = arrayDepth; i > 0; i--) {\n prefix = prefix + indent + '[\\n';\n suffix = suffix + '\\n' + indent + ']';\n indent += '\\t';\n type = 'array';\n }\n insertText = prefix + indent + s.bodyText.split('\\n').join('\\n' + indent) + suffix + separatorAfter;\n label = label || insertText,\n filterText = insertText.replace(/[\\n]/g, ''); // remove new lines\n }\n else {\n return;\n }\n collector.add({\n kind: _this.getSuggestionKind(type),\n label: label,\n documentation: _this.fromMarkup(s.markdownDescription) || s.description,\n insertText: insertText,\n insertTextFormat: InsertTextFormat.Snippet,\n filterText: filterText\n });\n hasProposals = true;\n });\n }\n if (!hasProposals && typeof schema.items === 'object' && !Array.isArray(schema.items) && arrayDepth < 5 /* beware of recursion */) {\n this.addDefaultValueCompletions(schema.items, separatorAfter, collector, arrayDepth + 1);\n }\n };\n JSONCompletion.prototype.addEnumValueCompletions = function (schema, separatorAfter, collector) {\n if (isDefined(schema.const)) {\n collector.add({\n kind: this.getSuggestionKind(schema.type),\n label: this.getLabelForValue(schema.const),\n insertText: this.getInsertTextForValue(schema.const, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: this.fromMarkup(schema.markdownDescription) || schema.description\n });\n }\n if (Array.isArray(schema.enum)) {\n for (var i = 0, length = schema.enum.length; i < length; i++) {\n var enm = schema.enum[i];\n var documentation = this.fromMarkup(schema.markdownDescription) || schema.description;\n if (schema.markdownEnumDescriptions && i < schema.markdownEnumDescriptions.length && this.doesSupportMarkdown()) {\n documentation = this.fromMarkup(schema.markdownEnumDescriptions[i]);\n }\n else if (schema.enumDescriptions && i < schema.enumDescriptions.length) {\n documentation = schema.enumDescriptions[i];\n }\n collector.add({\n kind: this.getSuggestionKind(schema.type),\n label: this.getLabelForValue(enm),\n insertText: this.getInsertTextForValue(enm, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: documentation\n });\n }\n }\n };\n JSONCompletion.prototype.collectTypes = function (schema, types) {\n if (Array.isArray(schema.enum) || isDefined(schema.const)) {\n return;\n }\n var type = schema.type;\n if (Array.isArray(type)) {\n type.forEach(function (t) { return types[t] = true; });\n }\n else if (type) {\n types[type] = true;\n }\n };\n JSONCompletion.prototype.addFillerValueCompletions = function (types, separatorAfter, collector) {\n if (types['object']) {\n collector.add({\n kind: this.getSuggestionKind('object'),\n label: '{}',\n insertText: this.getInsertTextForGuessedValue({}, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n detail: localize('defaults.object', 'New object'),\n documentation: ''\n });\n }\n if (types['array']) {\n collector.add({\n kind: this.getSuggestionKind('array'),\n label: '[]',\n insertText: this.getInsertTextForGuessedValue([], separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n detail: localize('defaults.array', 'New array'),\n documentation: ''\n });\n }\n };\n JSONCompletion.prototype.addBooleanValueCompletion = function (value, separatorAfter, collector) {\n collector.add({\n kind: this.getSuggestionKind('boolean'),\n label: value ? 'true' : 'false',\n insertText: this.getInsertTextForValue(value, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: ''\n });\n };\n JSONCompletion.prototype.addNullValueCompletion = function (separatorAfter, collector) {\n collector.add({\n kind: this.getSuggestionKind('null'),\n label: 'null',\n insertText: 'null' + separatorAfter,\n insertTextFormat: InsertTextFormat.Snippet,\n documentation: ''\n });\n };\n JSONCompletion.prototype.addDollarSchemaCompletions = function (separatorAfter, collector) {\n var _this = this;\n var schemaIds = this.schemaService.getRegisteredSchemaIds(function (schema) { return schema === 'http' || schema === 'https'; });\n schemaIds.forEach(function (schemaId) { return collector.add({\n kind: CompletionItemKind.Module,\n label: _this.getLabelForValue(schemaId),\n filterText: _this.getFilterTextForValue(schemaId),\n insertText: _this.getInsertTextForValue(schemaId, separatorAfter),\n insertTextFormat: InsertTextFormat.Snippet, documentation: ''\n }); });\n };\n JSONCompletion.prototype.getLabelForValue = function (value) {\n return JSON.stringify(value);\n };\n JSONCompletion.prototype.getFilterTextForValue = function (value) {\n return JSON.stringify(value);\n };\n JSONCompletion.prototype.getFilterTextForSnippetValue = function (value) {\n return JSON.stringify(value).replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g, '$1');\n };\n JSONCompletion.prototype.getLabelForSnippetValue = function (value) {\n var label = JSON.stringify(value);\n return label.replace(/\\$\\{\\d+:([^}]+)\\}|\\$\\d+/g, '$1');\n };\n JSONCompletion.prototype.getInsertTextForPlainText = function (text) {\n return text.replace(/[\\\\\\$\\}]/g, '\\\\$&'); // escape $, \\ and } \n };\n JSONCompletion.prototype.getInsertTextForValue = function (value, separatorAfter) {\n var text = JSON.stringify(value, null, '\\t');\n if (text === '{}') {\n return '{$1}' + separatorAfter;\n }\n else if (text === '[]') {\n return '[$1]' + separatorAfter;\n }\n return this.getInsertTextForPlainText(text + separatorAfter);\n };\n JSONCompletion.prototype.getInsertTextForSnippetValue = function (value, separatorAfter) {\n var replacer = function (value) {\n if (typeof value === 'string') {\n if (value[0] === '^') {\n return value.substr(1);\n }\n }\n return JSON.stringify(value);\n };\n return stringifyObject(value, '', replacer) + separatorAfter;\n };\n JSONCompletion.prototype.getInsertTextForGuessedValue = function (value, separatorAfter) {\n switch (typeof value) {\n case 'object':\n if (value === null) {\n return '${1:null}' + separatorAfter;\n }\n return this.getInsertTextForValue(value, separatorAfter);\n case 'string':\n var snippetValue = JSON.stringify(value);\n snippetValue = snippetValue.substr(1, snippetValue.length - 2); // remove quotes\n snippetValue = this.getInsertTextForPlainText(snippetValue); // escape \\ and }\n return '\"${1:' + snippetValue + '}\"' + separatorAfter;\n case 'number':\n case 'boolean':\n return '${1:' + JSON.stringify(value) + '}' + separatorAfter;\n }\n return this.getInsertTextForValue(value, separatorAfter);\n };\n JSONCompletion.prototype.getSuggestionKind = function (type) {\n if (Array.isArray(type)) {\n var array = type;\n type = array.length > 0 ? array[0] : undefined;\n }\n if (!type) {\n return CompletionItemKind.Value;\n }\n switch (type) {\n case 'string': return CompletionItemKind.Value;\n case 'object': return CompletionItemKind.Module;\n case 'property': return CompletionItemKind.Property;\n default: return CompletionItemKind.Value;\n }\n };\n JSONCompletion.prototype.getLabelTextForMatchingNode = function (node, document) {\n switch (node.type) {\n case 'array':\n return '[]';\n case 'object':\n return '{}';\n default:\n var content = document.getText().substr(node.offset, node.length);\n return content;\n }\n };\n JSONCompletion.prototype.getInsertTextForMatchingNode = function (node, document, separatorAfter) {\n switch (node.type) {\n case 'array':\n return this.getInsertTextForValue([], separatorAfter);\n case 'object':\n return this.getInsertTextForValue({}, separatorAfter);\n default:\n var content = document.getText().substr(node.offset, node.length) + separatorAfter;\n return this.getInsertTextForPlainText(content);\n }\n };\n JSONCompletion.prototype.getInsertTextForProperty = function (key, propertySchema, addValue, separatorAfter) {\n var propertyText = this.getInsertTextForValue(key, '');\n if (!addValue) {\n return propertyText;\n }\n var resultText = propertyText + ': ';\n var value;\n var nValueProposals = 0;\n if (propertySchema) {\n if (Array.isArray(propertySchema.defaultSnippets)) {\n if (propertySchema.defaultSnippets.length === 1) {\n var body = propertySchema.defaultSnippets[0].body;\n if (isDefined(body)) {\n value = this.getInsertTextForSnippetValue(body, '');\n }\n }\n nValueProposals += propertySchema.defaultSnippets.length;\n }\n if (propertySchema.enum) {\n if (!value && propertySchema.enum.length === 1) {\n value = this.getInsertTextForGuessedValue(propertySchema.enum[0], '');\n }\n nValueProposals += propertySchema.enum.length;\n }\n if (isDefined(propertySchema.default)) {\n if (!value) {\n value = this.getInsertTextForGuessedValue(propertySchema.default, '');\n }\n nValueProposals++;\n }\n if (Array.isArray(propertySchema.examples) && propertySchema.examples.length) {\n if (!value) {\n value = this.getInsertTextForGuessedValue(propertySchema.examples[0], '');\n }\n nValueProposals += propertySchema.examples.length;\n }\n if (nValueProposals === 0) {\n var type = Array.isArray(propertySchema.type) ? propertySchema.type[0] : propertySchema.type;\n if (!type) {\n if (propertySchema.properties) {\n type = 'object';\n }\n else if (propertySchema.items) {\n type = 'array';\n }\n }\n switch (type) {\n case 'boolean':\n value = '$1';\n break;\n case 'string':\n value = '\"$1\"';\n break;\n case 'object':\n value = '{$1}';\n break;\n case 'array':\n value = '[$1]';\n break;\n case 'number':\n case 'integer':\n value = '${1:0}';\n break;\n case 'null':\n value = '${1:null}';\n break;\n default:\n return propertyText;\n }\n }\n }\n if (!value || nValueProposals > 1) {\n value = '$1';\n }\n return resultText + value + separatorAfter;\n };\n JSONCompletion.prototype.getCurrentWord = function (document, offset) {\n var i = offset - 1;\n var text = document.getText();\n while (i >= 0 && ' \\t\\n\\r\\v\":{[,]}'.indexOf(text.charAt(i)) === -1) {\n i--;\n }\n return text.substring(i + 1, offset);\n };\n JSONCompletion.prototype.evaluateSeparatorAfter = function (document, offset) {\n var scanner = Json.createScanner(document.getText(), true);\n scanner.setPosition(offset);\n var token = scanner.scan();\n switch (token) {\n case 5 /* CommaToken */:\n case 2 /* CloseBraceToken */:\n case 4 /* CloseBracketToken */:\n case 17 /* EOF */:\n return '';\n default:\n return ',';\n }\n };\n JSONCompletion.prototype.findItemAtOffset = function (node, document, offset) {\n var scanner = Json.createScanner(document.getText(), true);\n var children = node.items;\n for (var i = children.length - 1; i >= 0; i--) {\n var child = children[i];\n if (offset > child.offset + child.length) {\n scanner.setPosition(child.offset + child.length);\n var token = scanner.scan();\n if (token === 5 /* CommaToken */ && offset >= scanner.getTokenOffset() + scanner.getTokenLength()) {\n return i + 1;\n }\n return i;\n }\n else if (offset >= child.offset) {\n return i;\n }\n }\n return 0;\n };\n JSONCompletion.prototype.isInComment = function (document, start, offset) {\n var scanner = Json.createScanner(document.getText(), false);\n scanner.setPosition(start);\n var token = scanner.scan();\n while (token !== 17 /* EOF */ && (scanner.getTokenOffset() + scanner.getTokenLength() < offset)) {\n token = scanner.scan();\n }\n return (token === 12 /* LineCommentTrivia */ || token === 13 /* BlockCommentTrivia */) && scanner.getTokenOffset() <= offset;\n };\n JSONCompletion.prototype.fromMarkup = function (markupString) {\n if (markupString && this.doesSupportMarkdown()) {\n return {\n kind: MarkupKind.Markdown,\n value: markupString\n };\n }\n return undefined;\n };\n JSONCompletion.prototype.doesSupportMarkdown = function () {\n if (!isDefined(this.supportsMarkdown)) {\n var completion = this.clientCapabilities.textDocument && this.clientCapabilities.textDocument.completion;\n this.supportsMarkdown = completion && completion.completionItem && Array.isArray(completion.completionItem.documentationFormat) && completion.completionItem.documentationFormat.indexOf(MarkupKind.Markdown) !== -1;\n }\n return this.supportsMarkdown;\n };\n JSONCompletion.prototype.doesSupportsCommitCharacters = function () {\n if (!isDefined(this.supportsCommitCharacters)) {\n var completion = this.clientCapabilities.textDocument && this.clientCapabilities.textDocument.completion;\n this.supportsCommitCharacters = completion && completion.completionItem && !!completion.completionItem.commitCharactersSupport;\n }\n return this.supportsCommitCharacters;\n };\n return JSONCompletion;\n}());\nexport { JSONCompletion };\n", "/*---------------------------------------------------------------------------------------------\n* Copyright (c) Microsoft Corporation. All rights reserved.\n* Licensed under the MIT License. See License.txt in the project root for license information.\n*--------------------------------------------------------------------------------------------*/\nexport function stringifyObject(obj, indent, stringifyLiteral) {\n if (obj !== null && typeof obj === 'object') {\n var newIndent = indent + '\\t';\n if (Array.isArray(obj)) {\n if (obj.length === 0) {\n return '[]';\n }\n var result = '[\\n';\n for (var i = 0; i < obj.length; i++) {\n result += newIndent + stringifyObject(obj[i], newIndent, stringifyLiteral);\n if (i < obj.length - 1) {\n result += ',';\n }\n result += '\\n';\n }\n result += indent + ']';\n return result;\n }\n else {\n var keys = Object.keys(obj);\n if (keys.length === 0) {\n return '{}';\n }\n var result = '{\\n';\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n result += newIndent + JSON.stringify(key) + ': ' + stringifyObject(obj[key], newIndent, stringifyLiteral);\n if (i < keys.length - 1) {\n result += ',';\n }\n result += '\\n';\n }\n result += indent + '}';\n return result;\n }\n }\n return stringifyLiteral(obj);\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Parser from '../parser/jsonParser';\nimport { Range } from '../jsonLanguageTypes';\nvar JSONHover = /** @class */ (function () {\n function JSONHover(schemaService, contributions, promiseConstructor) {\n if (contributions === void 0) { contributions = []; }\n this.schemaService = schemaService;\n this.contributions = contributions;\n this.promise = promiseConstructor || Promise;\n }\n JSONHover.prototype.doHover = function (document, position, doc) {\n var offset = document.offsetAt(position);\n var node = doc.getNodeFromOffset(offset);\n if (!node || (node.type === 'object' || node.type === 'array') && offset > node.offset + 1 && offset < node.offset + node.length - 1) {\n return this.promise.resolve(null);\n }\n var hoverRangeNode = node;\n // use the property description when hovering over an object key\n if (node.type === 'string') {\n var parent = node.parent;\n if (parent && parent.type === 'property' && parent.keyNode === node) {\n node = parent.valueNode;\n if (!node) {\n return this.promise.resolve(null);\n }\n }\n }\n var hoverRange = Range.create(document.positionAt(hoverRangeNode.offset), document.positionAt(hoverRangeNode.offset + hoverRangeNode.length));\n var createHover = function (contents) {\n var result = {\n contents: contents,\n range: hoverRange\n };\n return result;\n };\n var location = Parser.getNodePath(node);\n for (var i = this.contributions.length - 1; i >= 0; i--) {\n var contribution = this.contributions[i];\n var promise = contribution.getInfoContribution(document.uri, location);\n if (promise) {\n return promise.then(function (htmlContent) { return createHover(htmlContent); });\n }\n }\n return this.schemaService.getSchemaForResource(document.uri, doc).then(function (schema) {\n if (schema && node) {\n var matchingSchemas = doc.getMatchingSchemas(schema.schema, node.offset);\n var title_1 = undefined;\n var markdownDescription_1 = undefined;\n var markdownEnumValueDescription_1 = undefined, enumValue_1 = undefined;\n matchingSchemas.every(function (s) {\n if (s.node === node && !s.inverted && s.schema) {\n title_1 = title_1 || s.schema.title;\n markdownDescription_1 = markdownDescription_1 || s.schema.markdownDescription || toMarkdown(s.schema.description);\n if (s.schema.enum) {\n var idx = s.schema.enum.indexOf(Parser.getNodeValue(node));\n if (s.schema.markdownEnumDescriptions) {\n markdownEnumValueDescription_1 = s.schema.markdownEnumDescriptions[idx];\n }\n else if (s.schema.enumDescriptions) {\n markdownEnumValueDescription_1 = toMarkdown(s.schema.enumDescriptions[idx]);\n }\n if (markdownEnumValueDescription_1) {\n enumValue_1 = s.schema.enum[idx];\n if (typeof enumValue_1 !== 'string') {\n enumValue_1 = JSON.stringify(enumValue_1);\n }\n }\n }\n }\n return true;\n });\n var result = '';\n if (title_1) {\n result = toMarkdown(title_1);\n }\n if (markdownDescription_1) {\n if (result.length > 0) {\n result += \"\\n\\n\";\n }\n result += markdownDescription_1;\n }\n if (markdownEnumValueDescription_1) {\n if (result.length > 0) {\n result += \"\\n\\n\";\n }\n result += \"`\" + toMarkdownCodeBlock(enumValue_1) + \"`: \" + markdownEnumValueDescription_1;\n }\n return createHover([result]);\n }\n return null;\n });\n };\n return JSONHover;\n}());\nexport { JSONHover };\nfunction toMarkdown(plain) {\n if (plain) {\n var res = plain.replace(/([^\\n\\r])(\\r?\\n)([^\\n\\r])/gm, '$1\\n\\n$3'); // single new lines to \\n\\n (Markdown paragraph)\n return res.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g, \"\\\\$&\"); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash\n }\n return undefined;\n}\nfunction toMarkdownCodeBlock(content) {\n // see https://daringfireball.net/projects/markdown/syntax#precode\n if (content.indexOf('`') !== -1) {\n return '`` ' + content + ' ``';\n }\n return content;\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { UnresolvedSchema } from './jsonSchemaService';\nimport { ErrorCode, Diagnostic, DiagnosticSeverity, Range } from '../jsonLanguageTypes';\nimport * as nls from 'vscode-nls';\nimport { isBoolean } from '../utils/objects';\nvar localize = nls.loadMessageBundle();\nvar JSONValidation = /** @class */ (function () {\n function JSONValidation(jsonSchemaService, promiseConstructor) {\n this.jsonSchemaService = jsonSchemaService;\n this.promise = promiseConstructor;\n this.validationEnabled = true;\n }\n JSONValidation.prototype.configure = function (raw) {\n if (raw) {\n this.validationEnabled = raw.validate !== false;\n this.commentSeverity = raw.allowComments ? undefined : DiagnosticSeverity.Error;\n }\n };\n JSONValidation.prototype.doValidation = function (textDocument, jsonDocument, documentSettings, schema) {\n var _this = this;\n if (!this.validationEnabled) {\n return this.promise.resolve([]);\n }\n var diagnostics = [];\n var added = {};\n var addProblem = function (problem) {\n // remove duplicated messages\n var signature = problem.range.start.line + ' ' + problem.range.start.character + ' ' + problem.message;\n if (!added[signature]) {\n added[signature] = true;\n diagnostics.push(problem);\n }\n };\n var getDiagnostics = function (schema) {\n var trailingCommaSeverity = (documentSettings === null || documentSettings === void 0 ? void 0 : documentSettings.trailingCommas) ? toDiagnosticSeverity(documentSettings.trailingCommas) : DiagnosticSeverity.Error;\n var commentSeverity = (documentSettings === null || documentSettings === void 0 ? void 0 : documentSettings.comments) ? toDiagnosticSeverity(documentSettings.comments) : _this.commentSeverity;\n var schemaValidation = (documentSettings === null || documentSettings === void 0 ? void 0 : documentSettings.schemaValidation) ? toDiagnosticSeverity(documentSettings.schemaValidation) : DiagnosticSeverity.Warning;\n var schemaRequest = (documentSettings === null || documentSettings === void 0 ? void 0 : documentSettings.schemaRequest) ? toDiagnosticSeverity(documentSettings.schemaRequest) : DiagnosticSeverity.Warning;\n if (schema) {\n if (schema.errors.length && jsonDocument.root && schemaRequest) {\n var astRoot = jsonDocument.root;\n var property = astRoot.type === 'object' ? astRoot.properties[0] : undefined;\n if (property && property.keyNode.value === '$schema') {\n var node = property.valueNode || property;\n var range = Range.create(textDocument.positionAt(node.offset), textDocument.positionAt(node.offset + node.length));\n addProblem(Diagnostic.create(range, schema.errors[0], schemaRequest, ErrorCode.SchemaResolveError));\n }\n else {\n var range = Range.create(textDocument.positionAt(astRoot.offset), textDocument.positionAt(astRoot.offset + 1));\n addProblem(Diagnostic.create(range, schema.errors[0], schemaRequest, ErrorCode.SchemaResolveError));\n }\n }\n else if (schemaValidation) {\n var semanticErrors = jsonDocument.validate(textDocument, schema.schema, schemaValidation);\n if (semanticErrors) {\n semanticErrors.forEach(addProblem);\n }\n }\n if (schemaAllowsComments(schema.schema)) {\n commentSeverity = undefined;\n }\n if (schemaAllowsTrailingCommas(schema.schema)) {\n trailingCommaSeverity = undefined;\n }\n }\n for (var _i = 0, _a = jsonDocument.syntaxErrors; _i < _a.length; _i++) {\n var p = _a[_i];\n if (p.code === ErrorCode.TrailingComma) {\n if (typeof trailingCommaSeverity !== 'number') {\n continue;\n }\n p.severity = trailingCommaSeverity;\n }\n addProblem(p);\n }\n if (typeof commentSeverity === 'number') {\n var message_1 = localize('InvalidCommentToken', 'Comments are not permitted in JSON.');\n jsonDocument.comments.forEach(function (c) {\n addProblem(Diagnostic.create(c, message_1, commentSeverity, ErrorCode.CommentNotPermitted));\n });\n }\n return diagnostics;\n };\n if (schema) {\n var id = schema.id || ('schemaservice://untitled/' + idCounter++);\n return this.jsonSchemaService.resolveSchemaContent(new UnresolvedSchema(schema), id, {}).then(function (resolvedSchema) {\n return getDiagnostics(resolvedSchema);\n });\n }\n return this.jsonSchemaService.getSchemaForResource(textDocument.uri, jsonDocument).then(function (schema) {\n return getDiagnostics(schema);\n });\n };\n return JSONValidation;\n}());\nexport { JSONValidation };\nvar idCounter = 0;\nfunction schemaAllowsComments(schemaRef) {\n if (schemaRef && typeof schemaRef === 'object') {\n if (isBoolean(schemaRef.allowComments)) {\n return schemaRef.allowComments;\n }\n if (schemaRef.allOf) {\n for (var _i = 0, _a = schemaRef.allOf; _i < _a.length; _i++) {\n var schema = _a[_i];\n var allow = schemaAllowsComments(schema);\n if (isBoolean(allow)) {\n return allow;\n }\n }\n }\n }\n return undefined;\n}\nfunction schemaAllowsTrailingCommas(schemaRef) {\n if (schemaRef && typeof schemaRef === 'object') {\n if (isBoolean(schemaRef.allowTrailingCommas)) {\n return schemaRef.allowTrailingCommas;\n }\n var deprSchemaRef = schemaRef;\n if (isBoolean(deprSchemaRef['allowsTrailingCommas'])) { // deprecated\n return deprSchemaRef['allowsTrailingCommas'];\n }\n if (schemaRef.allOf) {\n for (var _i = 0, _a = schemaRef.allOf; _i < _a.length; _i++) {\n var schema = _a[_i];\n var allow = schemaAllowsTrailingCommas(schema);\n if (isBoolean(allow)) {\n return allow;\n }\n }\n }\n }\n return undefined;\n}\nfunction toDiagnosticSeverity(severityLevel) {\n switch (severityLevel) {\n case 'error': return DiagnosticSeverity.Error;\n case 'warning': return DiagnosticSeverity.Warning;\n case 'ignore': return undefined;\n }\n return undefined;\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar Digit0 = 48;\nvar Digit9 = 57;\nvar A = 65;\nvar a = 97;\nvar f = 102;\nexport function hexDigit(charCode) {\n if (charCode < Digit0) {\n return 0;\n }\n if (charCode <= Digit9) {\n return charCode - Digit0;\n }\n if (charCode < a) {\n charCode += (a - A);\n }\n if (charCode >= a && charCode <= f) {\n return charCode - a + 10;\n }\n return 0;\n}\nexport function colorFromHex(text) {\n if (text[0] !== '#') {\n return undefined;\n }\n switch (text.length) {\n case 4:\n return {\n red: (hexDigit(text.charCodeAt(1)) * 0x11) / 255.0,\n green: (hexDigit(text.charCodeAt(2)) * 0x11) / 255.0,\n blue: (hexDigit(text.charCodeAt(3)) * 0x11) / 255.0,\n alpha: 1\n };\n case 5:\n return {\n red: (hexDigit(text.charCodeAt(1)) * 0x11) / 255.0,\n green: (hexDigit(text.charCodeAt(2)) * 0x11) / 255.0,\n blue: (hexDigit(text.charCodeAt(3)) * 0x11) / 255.0,\n alpha: (hexDigit(text.charCodeAt(4)) * 0x11) / 255.0,\n };\n case 7:\n return {\n red: (hexDigit(text.charCodeAt(1)) * 0x10 + hexDigit(text.charCodeAt(2))) / 255.0,\n green: (hexDigit(text.charCodeAt(3)) * 0x10 + hexDigit(text.charCodeAt(4))) / 255.0,\n blue: (hexDigit(text.charCodeAt(5)) * 0x10 + hexDigit(text.charCodeAt(6))) / 255.0,\n alpha: 1\n };\n case 9:\n return {\n red: (hexDigit(text.charCodeAt(1)) * 0x10 + hexDigit(text.charCodeAt(2))) / 255.0,\n green: (hexDigit(text.charCodeAt(3)) * 0x10 + hexDigit(text.charCodeAt(4))) / 255.0,\n blue: (hexDigit(text.charCodeAt(5)) * 0x10 + hexDigit(text.charCodeAt(6))) / 255.0,\n alpha: (hexDigit(text.charCodeAt(7)) * 0x10 + hexDigit(text.charCodeAt(8))) / 255.0\n };\n }\n return undefined;\n}\nexport function colorFrom256RGB(red, green, blue, alpha) {\n if (alpha === void 0) { alpha = 1.0; }\n return {\n red: red / 255.0,\n green: green / 255.0,\n blue: blue / 255.0,\n alpha: alpha\n };\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as Parser from '../parser/jsonParser';\nimport * as Strings from '../utils/strings';\nimport { colorFromHex } from '../utils/colors';\nimport { Range, TextEdit, SymbolKind, Location } from \"../jsonLanguageTypes\";\nvar JSONDocumentSymbols = /** @class */ (function () {\n function JSONDocumentSymbols(schemaService) {\n this.schemaService = schemaService;\n }\n JSONDocumentSymbols.prototype.findDocumentSymbols = function (document, doc, context) {\n var _this = this;\n if (context === void 0) { context = { resultLimit: Number.MAX_VALUE }; }\n var root = doc.root;\n if (!root) {\n return [];\n }\n var limit = context.resultLimit || Number.MAX_VALUE;\n // special handling for key bindings\n var resourceString = document.uri;\n if ((resourceString === 'vscode://defaultsettings/keybindings.json') || Strings.endsWith(resourceString.toLowerCase(), '/user/keybindings.json')) {\n if (root.type === 'array') {\n var result_1 = [];\n for (var _i = 0, _a = root.items; _i < _a.length; _i++) {\n var item = _a[_i];\n if (item.type === 'object') {\n for (var _b = 0, _c = item.properties; _b < _c.length; _b++) {\n var property = _c[_b];\n if (property.keyNode.value === 'key' && property.valueNode) {\n var location = Location.create(document.uri, getRange(document, item));\n result_1.push({ name: Parser.getNodeValue(property.valueNode), kind: SymbolKind.Function, location: location });\n limit--;\n if (limit <= 0) {\n if (context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(resourceString);\n }\n return result_1;\n }\n }\n }\n }\n }\n return result_1;\n }\n }\n var toVisit = [\n { node: root, containerName: '' }\n ];\n var nextToVisit = 0;\n var limitExceeded = false;\n var result = [];\n var collectOutlineEntries = function (node, containerName) {\n if (node.type === 'array') {\n node.items.forEach(function (node) {\n if (node) {\n toVisit.push({ node: node, containerName: containerName });\n }\n });\n }\n else if (node.type === 'object') {\n node.properties.forEach(function (property) {\n var valueNode = property.valueNode;\n if (valueNode) {\n if (limit > 0) {\n limit--;\n var location = Location.create(document.uri, getRange(document, property));\n var childContainerName = containerName ? containerName + '.' + property.keyNode.value : property.keyNode.value;\n result.push({ name: _this.getKeyLabel(property), kind: _this.getSymbolKind(valueNode.type), location: location, containerName: containerName });\n toVisit.push({ node: valueNode, containerName: childContainerName });\n }\n else {\n limitExceeded = true;\n }\n }\n });\n }\n };\n // breath first traversal\n while (nextToVisit < toVisit.length) {\n var next = toVisit[nextToVisit++];\n collectOutlineEntries(next.node, next.containerName);\n }\n if (limitExceeded && context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(resourceString);\n }\n return result;\n };\n JSONDocumentSymbols.prototype.findDocumentSymbols2 = function (document, doc, context) {\n var _this = this;\n if (context === void 0) { context = { resultLimit: Number.MAX_VALUE }; }\n var root = doc.root;\n if (!root) {\n return [];\n }\n var limit = context.resultLimit || Number.MAX_VALUE;\n // special handling for key bindings\n var resourceString = document.uri;\n if ((resourceString === 'vscode://defaultsettings/keybindings.json') || Strings.endsWith(resourceString.toLowerCase(), '/user/keybindings.json')) {\n if (root.type === 'array') {\n var result_2 = [];\n for (var _i = 0, _a = root.items; _i < _a.length; _i++) {\n var item = _a[_i];\n if (item.type === 'object') {\n for (var _b = 0, _c = item.properties; _b < _c.length; _b++) {\n var property = _c[_b];\n if (property.keyNode.value === 'key' && property.valueNode) {\n var range = getRange(document, item);\n var selectionRange = getRange(document, property.keyNode);\n result_2.push({ name: Parser.getNodeValue(property.valueNode), kind: SymbolKind.Function, range: range, selectionRange: selectionRange });\n limit--;\n if (limit <= 0) {\n if (context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(resourceString);\n }\n return result_2;\n }\n }\n }\n }\n }\n return result_2;\n }\n }\n var result = [];\n var toVisit = [\n { node: root, result: result }\n ];\n var nextToVisit = 0;\n var limitExceeded = false;\n var collectOutlineEntries = function (node, result) {\n if (node.type === 'array') {\n node.items.forEach(function (node, index) {\n if (node) {\n if (limit > 0) {\n limit--;\n var range = getRange(document, node);\n var selectionRange = range;\n var name = String(index);\n var symbol = { name: name, kind: _this.getSymbolKind(node.type), range: range, selectionRange: selectionRange, children: [] };\n result.push(symbol);\n toVisit.push({ result: symbol.children, node: node });\n }\n else {\n limitExceeded = true;\n }\n }\n });\n }\n else if (node.type === 'object') {\n node.properties.forEach(function (property) {\n var valueNode = property.valueNode;\n if (valueNode) {\n if (limit > 0) {\n limit--;\n var range = getRange(document, property);\n var selectionRange = getRange(document, property.keyNode);\n var children = [];\n var symbol = { name: _this.getKeyLabel(property), kind: _this.getSymbolKind(valueNode.type), range: range, selectionRange: selectionRange, children: children, detail: _this.getDetail(valueNode) };\n result.push(symbol);\n toVisit.push({ result: children, node: valueNode });\n }\n else {\n limitExceeded = true;\n }\n }\n });\n }\n };\n // breath first traversal\n while (nextToVisit < toVisit.length) {\n var next = toVisit[nextToVisit++];\n collectOutlineEntries(next.node, next.result);\n }\n if (limitExceeded && context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(resourceString);\n }\n return result;\n };\n JSONDocumentSymbols.prototype.getSymbolKind = function (nodeType) {\n switch (nodeType) {\n case 'object':\n return SymbolKind.Module;\n case 'string':\n return SymbolKind.String;\n case 'number':\n return SymbolKind.Number;\n case 'array':\n return SymbolKind.Array;\n case 'boolean':\n return SymbolKind.Boolean;\n default: // 'null'\n return SymbolKind.Variable;\n }\n };\n JSONDocumentSymbols.prototype.getKeyLabel = function (property) {\n var name = property.keyNode.value;\n if (name) {\n name = name.replace(/[\\n]/g, '\u21B5');\n }\n if (name && name.trim()) {\n return name;\n }\n return \"\\\"\" + name + \"\\\"\";\n };\n JSONDocumentSymbols.prototype.getDetail = function (node) {\n if (!node) {\n return undefined;\n }\n if (node.type === 'boolean' || node.type === 'number' || node.type === 'null' || node.type === 'string') {\n return String(node.value);\n }\n else {\n if (node.type === 'array') {\n return node.children.length ? undefined : '[]';\n }\n else if (node.type === 'object') {\n return node.children.length ? undefined : '{}';\n }\n }\n return undefined;\n };\n JSONDocumentSymbols.prototype.findDocumentColors = function (document, doc, context) {\n return this.schemaService.getSchemaForResource(document.uri, doc).then(function (schema) {\n var result = [];\n if (schema) {\n var limit = context && typeof context.resultLimit === 'number' ? context.resultLimit : Number.MAX_VALUE;\n var matchingSchemas = doc.getMatchingSchemas(schema.schema);\n var visitedNode = {};\n for (var _i = 0, matchingSchemas_1 = matchingSchemas; _i < matchingSchemas_1.length; _i++) {\n var s = matchingSchemas_1[_i];\n if (!s.inverted && s.schema && (s.schema.format === 'color' || s.schema.format === 'color-hex') && s.node && s.node.type === 'string') {\n var nodeId = String(s.node.offset);\n if (!visitedNode[nodeId]) {\n var color = colorFromHex(Parser.getNodeValue(s.node));\n if (color) {\n var range = getRange(document, s.node);\n result.push({ color: color, range: range });\n }\n visitedNode[nodeId] = true;\n limit--;\n if (limit <= 0) {\n if (context && context.onResultLimitExceeded) {\n context.onResultLimitExceeded(document.uri);\n }\n return result;\n }\n }\n }\n }\n }\n return result;\n });\n };\n JSONDocumentSymbols.prototype.getColorPresentations = function (document, doc, color, range) {\n var result = [];\n var red256 = Math.round(color.red * 255), green256 = Math.round(color.green * 255), blue256 = Math.round(color.blue * 255);\n function toTwoDigitHex(n) {\n var r = n.toString(16);\n return r.length !== 2 ? '0' + r : r;\n }\n var label;\n if (color.alpha === 1) {\n label = \"#\" + toTwoDigitHex(red256) + toTwoDigitHex(green256) + toTwoDigitHex(blue256);\n }\n else {\n label = \"#\" + toTwoDigitHex(red256) + toTwoDigitHex(green256) + toTwoDigitHex(blue256) + toTwoDigitHex(Math.round(color.alpha * 255));\n }\n result.push({ label: label, textEdit: TextEdit.replace(range, JSON.stringify(label)) });\n return result;\n };\n return JSONDocumentSymbols;\n}());\nexport { JSONDocumentSymbols };\nfunction getRange(document, node) {\n return Range.create(document.positionAt(node.offset), document.positionAt(node.offset + node.length));\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport * as nls from 'vscode-nls';\nvar localize = nls.loadMessageBundle();\nexport var schemaContributions = {\n schemaAssociations: [],\n schemas: {\n // refer to the latest schema\n 'http://json-schema.org/schema#': {\n $ref: 'http://json-schema.org/draft-07/schema#'\n },\n // bundle the schema-schema to include (localized) descriptions\n 'http://json-schema.org/draft-04/schema#': {\n '$schema': 'http://json-schema.org/draft-04/schema#',\n 'definitions': {\n 'schemaArray': {\n 'type': 'array',\n 'minItems': 1,\n 'items': {\n '$ref': '#'\n }\n },\n 'positiveInteger': {\n 'type': 'integer',\n 'minimum': 0\n },\n 'positiveIntegerDefault0': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveInteger'\n },\n {\n 'default': 0\n }\n ]\n },\n 'simpleTypes': {\n 'type': 'string',\n 'enum': [\n 'array',\n 'boolean',\n 'integer',\n 'null',\n 'number',\n 'object',\n 'string'\n ]\n },\n 'stringArray': {\n 'type': 'array',\n 'items': {\n 'type': 'string'\n },\n 'minItems': 1,\n 'uniqueItems': true\n }\n },\n 'type': 'object',\n 'properties': {\n 'id': {\n 'type': 'string',\n 'format': 'uri'\n },\n '$schema': {\n 'type': 'string',\n 'format': 'uri'\n },\n 'title': {\n 'type': 'string'\n },\n 'description': {\n 'type': 'string'\n },\n 'default': {},\n 'multipleOf': {\n 'type': 'number',\n 'minimum': 0,\n 'exclusiveMinimum': true\n },\n 'maximum': {\n 'type': 'number'\n },\n 'exclusiveMaximum': {\n 'type': 'boolean',\n 'default': false\n },\n 'minimum': {\n 'type': 'number'\n },\n 'exclusiveMinimum': {\n 'type': 'boolean',\n 'default': false\n },\n 'maxLength': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveInteger'\n }\n ]\n },\n 'minLength': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveIntegerDefault0'\n }\n ]\n },\n 'pattern': {\n 'type': 'string',\n 'format': 'regex'\n },\n 'additionalItems': {\n 'anyOf': [\n {\n 'type': 'boolean'\n },\n {\n '$ref': '#'\n }\n ],\n 'default': {}\n },\n 'items': {\n 'anyOf': [\n {\n '$ref': '#'\n },\n {\n '$ref': '#/definitions/schemaArray'\n }\n ],\n 'default': {}\n },\n 'maxItems': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveInteger'\n }\n ]\n },\n 'minItems': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveIntegerDefault0'\n }\n ]\n },\n 'uniqueItems': {\n 'type': 'boolean',\n 'default': false\n },\n 'maxProperties': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveInteger'\n }\n ]\n },\n 'minProperties': {\n 'allOf': [\n {\n '$ref': '#/definitions/positiveIntegerDefault0'\n }\n ]\n },\n 'required': {\n 'allOf': [\n {\n '$ref': '#/definitions/stringArray'\n }\n ]\n },\n 'additionalProperties': {\n 'anyOf': [\n {\n 'type': 'boolean'\n },\n {\n '$ref': '#'\n }\n ],\n 'default': {}\n },\n 'definitions': {\n 'type': 'object',\n 'additionalProperties': {\n '$ref': '#'\n },\n 'default': {}\n },\n 'properties': {\n 'type': 'object',\n 'additionalProperties': {\n '$ref': '#'\n },\n 'default': {}\n },\n 'patternProperties': {\n 'type': 'object',\n 'additionalProperties': {\n '$ref': '#'\n },\n 'default': {}\n },\n 'dependencies': {\n 'type': 'object',\n 'additionalProperties': {\n 'anyOf': [\n {\n '$ref': '#'\n },\n {\n '$ref': '#/definitions/stringArray'\n }\n ]\n }\n },\n 'enum': {\n 'type': 'array',\n 'minItems': 1,\n 'uniqueItems': true\n },\n 'type': {\n 'anyOf': [\n {\n '$ref': '#/definitions/simpleTypes'\n },\n {\n 'type': 'array',\n 'items': {\n '$ref': '#/definitions/simpleTypes'\n },\n 'minItems': 1,\n 'uniqueItems': true\n }\n ]\n },\n 'format': {\n 'anyOf': [\n {\n 'type': 'string',\n 'enum': [\n 'date-time',\n 'uri',\n 'email',\n 'hostname',\n 'ipv4',\n 'ipv6',\n 'regex'\n ]\n },\n {\n 'type': 'string'\n }\n ]\n },\n 'allOf': {\n 'allOf': [\n {\n '$ref': '#/definitions/schemaArray'\n }\n ]\n },\n 'anyOf': {\n 'allOf': [\n {\n '$ref': '#/definitions/schemaArray'\n }\n ]\n },\n 'oneOf': {\n 'allOf': [\n {\n '$ref': '#/definitions/schemaArray'\n }\n ]\n },\n 'not': {\n 'allOf': [\n {\n '$ref': '#'\n }\n ]\n }\n },\n 'dependencies': {\n 'exclusiveMaximum': [\n 'maximum'\n ],\n 'exclusiveMinimum': [\n 'minimum'\n ]\n },\n 'default': {}\n },\n 'http://json-schema.org/draft-07/schema#': {\n 'definitions': {\n 'schemaArray': {\n 'type': 'array',\n 'minItems': 1,\n 'items': { '$ref': '#' }\n },\n 'nonNegativeInteger': {\n 'type': 'integer',\n 'minimum': 0\n },\n 'nonNegativeIntegerDefault0': {\n 'allOf': [\n { '$ref': '#/definitions/nonNegativeInteger' },\n { 'default': 0 }\n ]\n },\n 'simpleTypes': {\n 'enum': [\n 'array',\n 'boolean',\n 'integer',\n 'null',\n 'number',\n 'object',\n 'string'\n ]\n },\n 'stringArray': {\n 'type': 'array',\n 'items': { 'type': 'string' },\n 'uniqueItems': true,\n 'default': []\n }\n },\n 'type': ['object', 'boolean'],\n 'properties': {\n '$id': {\n 'type': 'string',\n 'format': 'uri-reference'\n },\n '$schema': {\n 'type': 'string',\n 'format': 'uri'\n },\n '$ref': {\n 'type': 'string',\n 'format': 'uri-reference'\n },\n '$comment': {\n 'type': 'string'\n },\n 'title': {\n 'type': 'string'\n },\n 'description': {\n 'type': 'string'\n },\n 'default': true,\n 'readOnly': {\n 'type': 'boolean',\n 'default': false\n },\n 'examples': {\n 'type': 'array',\n 'items': true\n },\n 'multipleOf': {\n 'type': 'number',\n 'exclusiveMinimum': 0\n },\n 'maximum': {\n 'type': 'number'\n },\n 'exclusiveMaximum': {\n 'type': 'number'\n },\n 'minimum': {\n 'type': 'number'\n },\n 'exclusiveMinimum': {\n 'type': 'number'\n },\n 'maxLength': { '$ref': '#/definitions/nonNegativeInteger' },\n 'minLength': { '$ref': '#/definitions/nonNegativeIntegerDefault0' },\n 'pattern': {\n 'type': 'string',\n 'format': 'regex'\n },\n 'additionalItems': { '$ref': '#' },\n 'items': {\n 'anyOf': [\n { '$ref': '#' },\n { '$ref': '#/definitions/schemaArray' }\n ],\n 'default': true\n },\n 'maxItems': { '$ref': '#/definitions/nonNegativeInteger' },\n 'minItems': { '$ref': '#/definitions/nonNegativeIntegerDefault0' },\n 'uniqueItems': {\n 'type': 'boolean',\n 'default': false\n },\n 'contains': { '$ref': '#' },\n 'maxProperties': { '$ref': '#/definitions/nonNegativeInteger' },\n 'minProperties': { '$ref': '#/definitions/nonNegativeIntegerDefault0' },\n 'required': { '$ref': '#/definitions/stringArray' },\n 'additionalProperties': { '$ref': '#' },\n 'definitions': {\n 'type': 'object',\n 'additionalProperties': { '$ref': '#' },\n 'default': {}\n },\n 'properties': {\n 'type': 'object',\n 'additionalProperties': { '$ref': '#' },\n 'default': {}\n },\n 'patternProperties': {\n 'type': 'object',\n 'additionalProperties': { '$ref': '#' },\n 'propertyNames': { 'format': 'regex' },\n 'default': {}\n },\n 'dependencies': {\n 'type': 'object',\n 'additionalProperties': {\n 'anyOf': [\n { '$ref': '#' },\n { '$ref': '#/definitions/stringArray' }\n ]\n }\n },\n 'propertyNames': { '$ref': '#' },\n 'const': true,\n 'enum': {\n 'type': 'array',\n 'items': true,\n 'minItems': 1,\n 'uniqueItems': true\n },\n 'type': {\n 'anyOf': [\n { '$ref': '#/definitions/simpleTypes' },\n {\n 'type': 'array',\n 'items': { '$ref': '#/definitions/simpleTypes' },\n 'minItems': 1,\n 'uniqueItems': true\n }\n ]\n },\n 'format': { 'type': 'string' },\n 'contentMediaType': { 'type': 'string' },\n 'contentEncoding': { 'type': 'string' },\n 'if': { '$ref': '#' },\n 'then': { '$ref': '#' },\n 'else': { '$ref': '#' },\n 'allOf': { '$ref': '#/definitions/schemaArray' },\n 'anyOf': { '$ref': '#/definitions/schemaArray' },\n 'oneOf': { '$ref': '#/definitions/schemaArray' },\n 'not': { '$ref': '#' }\n },\n 'default': true\n }\n }\n};\nvar descriptions = {\n id: localize('schema.json.id', \"A unique identifier for the schema.\"),\n $schema: localize('schema.json.$schema', \"The schema to verify this document against.\"),\n title: localize('schema.json.title', \"A descriptive title of the element.\"),\n description: localize('schema.json.description', \"A long description of the element. Used in hover menus and suggestions.\"),\n default: localize('schema.json.default', \"A default value. Used by suggestions.\"),\n multipleOf: localize('schema.json.multipleOf', \"A number that should cleanly divide the current value (i.e. have no remainder).\"),\n maximum: localize('schema.json.maximum', \"The maximum numerical value, inclusive by default.\"),\n exclusiveMaximum: localize('schema.json.exclusiveMaximum', \"Makes the maximum property exclusive.\"),\n minimum: localize('schema.json.minimum', \"The minimum numerical value, inclusive by default.\"),\n exclusiveMinimum: localize('schema.json.exclusiveMininum', \"Makes the minimum property exclusive.\"),\n maxLength: localize('schema.json.maxLength', \"The maximum length of a string.\"),\n minLength: localize('schema.json.minLength', \"The minimum length of a string.\"),\n pattern: localize('schema.json.pattern', \"A regular expression to match the string against. It is not implicitly anchored.\"),\n additionalItems: localize('schema.json.additionalItems', \"For arrays, only when items is set as an array. If it is a schema, then this schema validates items after the ones specified by the items array. If it is false, then additional items will cause validation to fail.\"),\n items: localize('schema.json.items', \"For arrays. Can either be a schema to validate every element against or an array of schemas to validate each item against in order (the first schema will validate the first element, the second schema will validate the second element, and so on.\"),\n maxItems: localize('schema.json.maxItems', \"The maximum number of items that can be inside an array. Inclusive.\"),\n minItems: localize('schema.json.minItems', \"The minimum number of items that can be inside an array. Inclusive.\"),\n uniqueItems: localize('schema.json.uniqueItems', \"If all of the items in the array must be unique. Defaults to false.\"),\n maxProperties: localize('schema.json.maxProperties', \"The maximum number of properties an object can have. Inclusive.\"),\n minProperties: localize('schema.json.minProperties', \"The minimum number of properties an object can have. Inclusive.\"),\n required: localize('schema.json.required', \"An array of strings that lists the names of all properties required on this object.\"),\n additionalProperties: localize('schema.json.additionalProperties', \"Either a schema or a boolean. If a schema, then used to validate all properties not matched by 'properties' or 'patternProperties'. If false, then any properties not matched by either will cause this schema to fail.\"),\n definitions: localize('schema.json.definitions', \"Not used for validation. Place subschemas here that you wish to reference inline with $ref.\"),\n properties: localize('schema.json.properties', \"A map of property names to schemas for each property.\"),\n patternProperties: localize('schema.json.patternProperties', \"A map of regular expressions on property names to schemas for matching properties.\"),\n dependencies: localize('schema.json.dependencies', \"A map of property names to either an array of property names or a schema. An array of property names means the property named in the key depends on the properties in the array being present in the object in order to be valid. If the value is a schema, then the schema is only applied to the object if the property in the key exists on the object.\"),\n enum: localize('schema.json.enum', \"The set of literal values that are valid.\"),\n type: localize('schema.json.type', \"Either a string of one of the basic schema types (number, integer, null, array, object, boolean, string) or an array of strings specifying a subset of those types.\"),\n format: localize('schema.json.format', \"Describes the format expected for the value.\"),\n allOf: localize('schema.json.allOf', \"An array of schemas, all of which must match.\"),\n anyOf: localize('schema.json.anyOf', \"An array of schemas, where at least one must match.\"),\n oneOf: localize('schema.json.oneOf', \"An array of schemas, exactly one of which must match.\"),\n not: localize('schema.json.not', \"A schema which must not match.\"),\n $id: localize('schema.json.$id', \"A unique identifier for the schema.\"),\n $ref: localize('schema.json.$ref', \"Reference a definition hosted on any location.\"),\n $comment: localize('schema.json.$comment', \"Comments from schema authors to readers or maintainers of the schema.\"),\n readOnly: localize('schema.json.readOnly', \"Indicates that the value of the instance is managed exclusively by the owning authority.\"),\n examples: localize('schema.json.examples', \"Sample JSON values associated with a particular schema, for the purpose of illustrating usage.\"),\n contains: localize('schema.json.contains', \"An array instance is valid against \\\"contains\\\" if at least one of its elements is valid against the given schema.\"),\n propertyNames: localize('schema.json.propertyNames', \"If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema.\"),\n const: localize('schema.json.const', \"An instance validates successfully against this keyword if its value is equal to the value of the keyword.\"),\n contentMediaType: localize('schema.json.contentMediaType', \"Describes the media type of a string property.\"),\n contentEncoding: localize('schema.json.contentEncoding', \"Describes the content encoding of a string property.\"),\n if: localize('schema.json.if', \"The validation outcome of the \\\"if\\\" subschema controls which of the \\\"then\\\" or \\\"else\\\" keywords are evaluated.\"),\n then: localize('schema.json.then', \"The \\\"if\\\" subschema is used for validation when the \\\"if\\\" subschema succeeds.\"),\n else: localize('schema.json.else', \"The \\\"else\\\" subschema is used for validation when the \\\"if\\\" subschema fails.\")\n};\nfor (var schemaName in schemaContributions.schemas) {\n var schema = schemaContributions.schemas[schemaName];\n for (var property in schema.properties) {\n var propertyObject = schema.properties[property];\n if (typeof propertyObject === 'boolean') {\n propertyObject = schema.properties[property] = {};\n }\n var description = descriptions[property];\n if (description) {\n propertyObject['description'] = description;\n }\n else {\n console.log(property + \": localize('schema.json.\" + property + \"', \\\"\\\")\");\n }\n }\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { createScanner } from 'jsonc-parser';\nimport { FoldingRangeKind, Position } from '../jsonLanguageTypes';\nexport function getFoldingRanges(document, context) {\n var ranges = [];\n var nestingLevels = [];\n var stack = [];\n var prevStart = -1;\n var scanner = createScanner(document.getText(), false);\n var token = scanner.scan();\n function addRange(range) {\n ranges.push(range);\n nestingLevels.push(stack.length);\n }\n while (token !== 17 /* EOF */) {\n switch (token) {\n case 1 /* OpenBraceToken */:\n case 3 /* OpenBracketToken */: {\n var startLine = document.positionAt(scanner.getTokenOffset()).line;\n var range = { startLine: startLine, endLine: startLine, kind: token === 1 /* OpenBraceToken */ ? 'object' : 'array' };\n stack.push(range);\n break;\n }\n case 2 /* CloseBraceToken */:\n case 4 /* CloseBracketToken */: {\n var kind = token === 2 /* CloseBraceToken */ ? 'object' : 'array';\n if (stack.length > 0 && stack[stack.length - 1].kind === kind) {\n var range = stack.pop();\n var line = document.positionAt(scanner.getTokenOffset()).line;\n if (range && line > range.startLine + 1 && prevStart !== range.startLine) {\n range.endLine = line - 1;\n addRange(range);\n prevStart = range.startLine;\n }\n }\n break;\n }\n case 13 /* BlockCommentTrivia */: {\n var startLine = document.positionAt(scanner.getTokenOffset()).line;\n var endLine = document.positionAt(scanner.getTokenOffset() + scanner.getTokenLength()).line;\n if (scanner.getTokenError() === 1 /* UnexpectedEndOfComment */ && startLine + 1 < document.lineCount) {\n scanner.setPosition(document.offsetAt(Position.create(startLine + 1, 0)));\n }\n else {\n if (startLine < endLine) {\n addRange({ startLine: startLine, endLine: endLine, kind: FoldingRangeKind.Comment });\n prevStart = startLine;\n }\n }\n break;\n }\n case 12 /* LineCommentTrivia */: {\n var text = document.getText().substr(scanner.getTokenOffset(), scanner.getTokenLength());\n var m = text.match(/^\\/\\/\\s*#(region\\b)|(endregion\\b)/);\n if (m) {\n var line = document.positionAt(scanner.getTokenOffset()).line;\n if (m[1]) { // start pattern match\n var range = { startLine: line, endLine: line, kind: FoldingRangeKind.Region };\n stack.push(range);\n }\n else {\n var i = stack.length - 1;\n while (i >= 0 && stack[i].kind !== FoldingRangeKind.Region) {\n i--;\n }\n if (i >= 0) {\n var range = stack[i];\n stack.length = i;\n if (line > range.startLine && prevStart !== range.startLine) {\n range.endLine = line;\n addRange(range);\n prevStart = range.startLine;\n }\n }\n }\n }\n break;\n }\n }\n token = scanner.scan();\n }\n var rangeLimit = context && context.rangeLimit;\n if (typeof rangeLimit !== 'number' || ranges.length <= rangeLimit) {\n return ranges;\n }\n if (context && context.onRangeLimitExceeded) {\n context.onRangeLimitExceeded(document.uri);\n }\n var counts = [];\n for (var _i = 0, nestingLevels_1 = nestingLevels; _i < nestingLevels_1.length; _i++) {\n var level = nestingLevels_1[_i];\n if (level < 30) {\n counts[level] = (counts[level] || 0) + 1;\n }\n }\n var entries = 0;\n var maxLevel = 0;\n for (var i = 0; i < counts.length; i++) {\n var n = counts[i];\n if (n) {\n if (n + entries > rangeLimit) {\n maxLevel = i;\n break;\n }\n entries += n;\n }\n }\n var result = [];\n for (var i = 0; i < ranges.length; i++) {\n var level = nestingLevels[i];\n if (typeof level === 'number') {\n if (level < maxLevel || (level === maxLevel && entries++ < rangeLimit)) {\n result.push(ranges[i]);\n }\n }\n }\n return result;\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range, SelectionRange } from '../jsonLanguageTypes';\nimport { createScanner } from 'jsonc-parser';\nexport function getSelectionRanges(document, positions, doc) {\n function getSelectionRange(position) {\n var offset = document.offsetAt(position);\n var node = doc.getNodeFromOffset(offset, true);\n var result = [];\n while (node) {\n switch (node.type) {\n case 'string':\n case 'object':\n case 'array':\n // range without \", [ or {\n var cStart = node.offset + 1, cEnd = node.offset + node.length - 1;\n if (cStart < cEnd && offset >= cStart && offset <= cEnd) {\n result.push(newRange(cStart, cEnd));\n }\n result.push(newRange(node.offset, node.offset + node.length));\n break;\n case 'number':\n case 'boolean':\n case 'null':\n case 'property':\n result.push(newRange(node.offset, node.offset + node.length));\n break;\n }\n if (node.type === 'property' || node.parent && node.parent.type === 'array') {\n var afterCommaOffset = getOffsetAfterNextToken(node.offset + node.length, 5 /* CommaToken */);\n if (afterCommaOffset !== -1) {\n result.push(newRange(node.offset, afterCommaOffset));\n }\n }\n node = node.parent;\n }\n var current = undefined;\n for (var index = result.length - 1; index >= 0; index--) {\n current = SelectionRange.create(result[index], current);\n }\n if (!current) {\n current = SelectionRange.create(Range.create(position, position));\n }\n return current;\n }\n function newRange(start, end) {\n return Range.create(document.positionAt(start), document.positionAt(end));\n }\n var scanner = createScanner(document.getText(), true);\n function getOffsetAfterNextToken(offset, expectedToken) {\n scanner.setPosition(offset);\n var token = scanner.scan();\n if (token === expectedToken) {\n return scanner.getTokenOffset() + scanner.getTokenLength();\n }\n return -1;\n }\n return positions.map(getSelectionRange);\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { JSONCompletion } from './services/jsonCompletion';\nimport { JSONHover } from './services/jsonHover';\nimport { JSONValidation } from './services/jsonValidation';\nimport { JSONDocumentSymbols } from './services/jsonDocumentSymbols';\nimport { parse as parseJSON, newJSONDocument } from './parser/jsonParser';\nimport { schemaContributions } from './services/configuration';\nimport { JSONSchemaService } from './services/jsonSchemaService';\nimport { getFoldingRanges } from './services/jsonFolding';\nimport { getSelectionRanges } from './services/jsonSelectionRanges';\nimport { format as formatJSON } from 'jsonc-parser';\nimport { Range, TextEdit } from './jsonLanguageTypes';\nimport { findLinks } from './services/jsonLinks';\nexport * from './jsonLanguageTypes';\nexport function getLanguageService(params) {\n var promise = params.promiseConstructor || Promise;\n var jsonSchemaService = new JSONSchemaService(params.schemaRequestService, params.workspaceContext, promise);\n jsonSchemaService.setSchemaContributions(schemaContributions);\n var jsonCompletion = new JSONCompletion(jsonSchemaService, params.contributions, promise, params.clientCapabilities);\n var jsonHover = new JSONHover(jsonSchemaService, params.contributions, promise);\n var jsonDocumentSymbols = new JSONDocumentSymbols(jsonSchemaService);\n var jsonValidation = new JSONValidation(jsonSchemaService, promise);\n return {\n configure: function (settings) {\n jsonSchemaService.clearExternalSchemas();\n if (settings.schemas) {\n settings.schemas.forEach(function (settings) {\n jsonSchemaService.registerExternalSchema(settings.uri, settings.fileMatch, settings.schema);\n });\n }\n jsonValidation.configure(settings);\n },\n resetSchema: function (uri) { return jsonSchemaService.onResourceChange(uri); },\n doValidation: jsonValidation.doValidation.bind(jsonValidation),\n parseJSONDocument: function (document) { return parseJSON(document, { collectComments: true }); },\n newJSONDocument: function (root, diagnostics) { return newJSONDocument(root, diagnostics); },\n getMatchingSchemas: jsonSchemaService.getMatchingSchemas.bind(jsonSchemaService),\n doResolve: jsonCompletion.doResolve.bind(jsonCompletion),\n doComplete: jsonCompletion.doComplete.bind(jsonCompletion),\n findDocumentSymbols: jsonDocumentSymbols.findDocumentSymbols.bind(jsonDocumentSymbols),\n findDocumentSymbols2: jsonDocumentSymbols.findDocumentSymbols2.bind(jsonDocumentSymbols),\n findDocumentColors: jsonDocumentSymbols.findDocumentColors.bind(jsonDocumentSymbols),\n getColorPresentations: jsonDocumentSymbols.getColorPresentations.bind(jsonDocumentSymbols),\n doHover: jsonHover.doHover.bind(jsonHover),\n getFoldingRanges: getFoldingRanges,\n getSelectionRanges: getSelectionRanges,\n findDefinition: function () { return Promise.resolve([]); },\n findLinks: findLinks,\n format: function (d, r, o) {\n var range = undefined;\n if (r) {\n var offset = d.offsetAt(r.start);\n var length = d.offsetAt(r.end) - offset;\n range = { offset: offset, length: length };\n }\n var options = { tabSize: o ? o.tabSize : 4, insertSpaces: (o === null || o === void 0 ? void 0 : o.insertSpaces) === true, insertFinalNewline: (o === null || o === void 0 ? void 0 : o.insertFinalNewline) === true, eol: '\\n' };\n return formatJSON(d.getText(), range, options).map(function (e) {\n return TextEdit.replace(Range.create(d.positionAt(e.offset), d.positionAt(e.offset + e.length)), e.content);\n });\n }\n };\n}\n", "/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nimport { Range } from '../jsonLanguageTypes';\nexport function findLinks(document, doc) {\n var links = [];\n doc.visit(function (node) {\n var _a;\n if (node.type === \"property\" && node.keyNode.value === \"$ref\" && ((_a = node.valueNode) === null || _a === void 0 ? void 0 : _a.type) === 'string') {\n var path = node.valueNode.value;\n var targetNode = findTargetNode(doc, path);\n if (targetNode) {\n var targetPos = document.positionAt(targetNode.offset);\n links.push({\n target: document.uri + \"#\" + (targetPos.line + 1) + \",\" + (targetPos.character + 1),\n range: createRange(document, node.valueNode)\n });\n }\n }\n return true;\n });\n return Promise.resolve(links);\n}\nfunction createRange(document, node) {\n return Range.create(document.positionAt(node.offset + 1), document.positionAt(node.offset + node.length - 1));\n}\nfunction findTargetNode(doc, path) {\n var tokens = parseJSONPointer(path);\n if (!tokens) {\n return null;\n }\n return findNode(tokens, doc.root);\n}\nfunction findNode(pointer, node) {\n if (!node) {\n return null;\n }\n if (pointer.length === 0) {\n return node;\n }\n var token = pointer.shift();\n if (node && node.type === 'object') {\n var propertyNode = node.properties.find(function (propertyNode) { return propertyNode.keyNode.value === token; });\n if (!propertyNode) {\n return null;\n }\n return findNode(pointer, propertyNode.valueNode);\n }\n else if (node && node.type === 'array') {\n if (token.match(/^(0|[1-9][0-9]*)$/)) {\n var index = Number.parseInt(token);\n var arrayItem = node.items[index];\n if (!arrayItem) {\n return null;\n }\n return findNode(pointer, arrayItem);\n }\n }\n return null;\n}\nfunction parseJSONPointer(path) {\n if (path === \"#\") {\n return [];\n }\n if (path[0] !== '#' || path[1] !== '/') {\n return null;\n }\n return path.substring(2).split(/\\//).map(unescape);\n}\nfunction unescape(str) {\n return str.replace(/~1/g, '/').replace(/~0/g, '~');\n}\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const languageId = 'yaml';\n"], - "mappings": "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", - "names": [] -} diff --git a/experimental/live-editor/src/store.js b/experimental/live-editor/src/store.js deleted file mode 100644 index 5460571c9..000000000 --- a/experimental/live-editor/src/store.js +++ /dev/null @@ -1,113 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {derived, writable} from 'svelte/store'; -import {parse, parseDocument} from "yaml"; -import {toMermaid} from "./lib/viz-processor.js"; -import {deflate, deflateRaw, inflate, inflateRaw} from "pako"; -import {fromUint8Array} from "js-base64"; - -export const document = writable("---\n" + - "apiVersion: carto.run/v1alpha1\n" + - "kind: ClusterSupplyChain\n" + - "metadata:\n" + - " name: supply-chain\n" + - "spec:\n" + - " selector:\n" + - " app.tanzu.vmware.com/workload-type: web\n" + - "\n" + - " resources:\n" + - " - name: source-provider\n" + - " templateRef:\n" + - " kind: ClusterSourceTemplate\n" + - " options:\n" + - " - name: from-git\n" + - " selector:\n" + - " matchFields:\n" + - " - key: spec.source.git\n" + - " operator: Exists\n" + - " - name: from-repo\n" + - " selector:\n" + - " matchFields:\n" + - " - key: spec.source.image\n" + - " operator: Exists\n" + - "\n" + - " - name: image-builder\n" + - " templateRef:\n" + - " kind: ClusterImageTemplate\n" + - " name: image\n" + - " params:\n" + - " - name: image_prefix\n" + - " value: \"pref-\"\n" + - " sources:\n" + - " - resource: source-provider\n" + - " name: source\n" + - "\n" + - " - name: config-provider\n" + - " templateRef:\n" + - " kind: ClusterConfigTemplate\n" + - " name: app-config\n" + - " images:\n" + - " - resource: image-builder\n" + - " name: image\n" + - "\n" + - " - name: git-writer\n" + - " templateRef:\n" + - " kind: ClusterTemplate\n" + - " name: git-writer\n" + - " configs:\n" + - " - resource: config-provider\n" + - " name: data\n" + - "\n" -); - -export const documentObject = derived( - document, - $document => { - try { - return parse($document) - } catch (e) { - console.log(`could not parse to yaml object: ${e}`) - } - } -) - -export const compressedState = derived( - document, - $document => { - try { - let data = new TextEncoder().encode($document) - let compressed = deflate(data, {options: 9}) - return fromUint8Array(compressed, true) - } catch (e) { - console.log(`could not compress document: ${e}`) - } - } -) - -export const mermaidDoc = derived( - documentObject, - ($docObj, set) => { - try { - set(toMermaid($docObj)) - } catch (e) { - console.log(`could not parse to mermaid: ${e}`) - } - - } -) - - diff --git a/experimental/live-editor/src/vite-env.d.ts b/experimental/live-editor/src/vite-env.d.ts deleted file mode 100644 index 927cf78be..000000000 --- a/experimental/live-editor/src/vite-env.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/// -/// diff --git a/experimental/live-editor/svelte.config.js b/experimental/live-editor/svelte.config.js deleted file mode 100644 index a26329d0a..000000000 --- a/experimental/live-editor/svelte.config.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import preprocess from "svelte-preprocess"; - -const config = { - preprocess: [ - preprocess({ - postcss: true, - }), - ], -}; - -export default config; diff --git a/experimental/live-editor/tailwind.config.cjs b/experimental/live-editor/tailwind.config.cjs deleted file mode 100644 index dfeda08ad..000000000 --- a/experimental/live-editor/tailwind.config.cjs +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -const config = { - content: ["./src/**/*.{html,js,svelte,ts}"], - - theme: { - extend: {}, - }, - - plugins: [], -}; - -module.exports = config; diff --git a/experimental/live-editor/vite.config.js b/experimental/live-editor/vite.config.js deleted file mode 100644 index 9b3c53652..000000000 --- a/experimental/live-editor/vite.config.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * Copyright 2021 VMware - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import {defineConfig} from 'vite' -import {svelte} from '@sveltejs/vite-plugin-svelte' - -// https://vitejs.dev/config/ -export default defineConfig({ - plugins: [ - svelte(), - ], - clearScreen: false, - base: "/live-editor/" -}) diff --git a/experimental/live-editor/yarn.lock b/experimental/live-editor/yarn.lock deleted file mode 100644 index fd3d1ba73..000000000 --- a/experimental/live-editor/yarn.lock +++ /dev/null @@ -1,1538 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@braintree/sanitize-url@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz#8ff71d51053cd5ee4981e5a501d80a536244f7fd" - integrity sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@openapi-contrib/openapi-schema-to-json-schema@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@openapi-contrib/openapi-schema-to-json-schema/-/openapi-schema-to-json-schema-3.1.1.tgz#e43b09680e652bf1b9e135db3f8648e979b76c07" - integrity sha512-FMvdhv9Jr9tULjJAQaQzhCmNYYj2vQFVnl7CGlLAImZvJal71oedXMGszpPaZTLftAk5TCHqjnirig+P6LZxug== - dependencies: - fast-deep-equal "^3.1.3" - -"@rollup/pluginutils@^4.2.0": - version "4.2.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.0.tgz#a14bbd058fdbba0a5647143b16ed0d86fb60bd08" - integrity sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA== - dependencies: - estree-walker "^2.0.1" - picomatch "^2.2.2" - -"@sveltejs/vite-plugin-svelte@^1.0.0-next.41": - version "1.0.0-next.41" - resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.0-next.41.tgz#4778502af8a23c65ceaa0b5225ed722d3ad6b5e0" - integrity sha512-2kZ49mpi/YW1PIPvKaJNSSwIFgmw9QUf1+yaNa4U8yJD6AsfSHXAU3goscWbi1jfWnSg2PhvwAf+bvLCdp2F9g== - dependencies: - "@rollup/pluginutils" "^4.2.0" - debug "^4.3.4" - kleur "^4.1.4" - magic-string "^0.26.1" - svelte-hmr "^0.14.11" - -"@types/json-schema@^7.0.11": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@types/node@*": - version "17.0.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.18.tgz#3b4fed5cfb58010e3a2be4b6e74615e4847f1074" - integrity sha512-eKj4f/BsN/qcculZiRSujogjvp5O/k4lOW5m35NopjZM/QwLOR075a8pJW5hD+Rtdm2DaCVPENS6KtSQnUD6BA== - -"@types/pug@^2.0.4": - version "2.0.6" - resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6" - integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== - -"@types/sass@^1.16.0": - version "1.43.1" - resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.43.1.tgz#86bb0168e9e881d7dade6eba16c9ed6d25dc2f68" - integrity sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== - dependencies: - "@types/node" "*" - -acorn-node@^1.6.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.0.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -arg@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb" - integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA== - -autoprefixer@^10.4.4: - version "10.4.4" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.4.tgz#3e85a245b32da876a893d3ac2ea19f01e7ea5a1e" - integrity sha512-Tm8JxsB286VweiZ5F0anmbyGiNI3v3wGv3mz9W+cxEDYB/6jbnj6GM9H9mK3wIL8ftgl+C07Lcwb8PG5PCCPzA== - dependencies: - browserslist "^4.20.2" - caniuse-lite "^1.0.30001317" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -balanced-match@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" - integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^3.0.1, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.20.2: - version "4.20.2" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" - integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== - dependencies: - caniuse-lite "^1.0.30001317" - electron-to-chromium "^1.4.84" - escalade "^3.1.1" - node-releases "^2.0.2" - picocolors "^1.0.0" - -buffer-crc32@^0.2.5: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -caniuse-lite@^1.0.30001317: - version "1.0.30001320" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz#8397391bec389b8ccce328636499b7284ee13285" - integrity sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA== - -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -color-name@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -commander@2: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@7: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: - version "1.2.4" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" - integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== - -"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.1.1.tgz#7797eb53ead6b9083c75a45a681e93fc41bc468c" - integrity sha512-33qQ+ZoZlli19IFiQx4QEpf2CBEayMRzhlisJHSCsSUbDXv6ZishqS1x7uFVClKG4Wr7rZVHvaAttoLow6GqdQ== - dependencies: - internmap "1 - 2" - -d3-axis@1: - version "1.0.12" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" - integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== - -d3-axis@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" - integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== - -d3-brush@1: - version "1.1.6" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b" - integrity sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - -d3-brush@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" - integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "3" - d3-transition "3" - -d3-chord@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f" - integrity sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA== - dependencies: - d3-array "1" - d3-path "1" - -d3-chord@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" - integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== - dependencies: - d3-path "1 - 3" - -d3-collection@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" - integrity sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A== - -d3-color@1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" - integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== - -"d3-color@1 - 3", d3-color@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.0.1.tgz#03316e595955d1fcd39d9f3610ad41bb90194d0a" - integrity sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw== - -d3-contour@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" - integrity sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg== - dependencies: - d3-array "^1.1.1" - -d3-contour@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.0.1.tgz#2c64255d43059599cd0dba8fe4cc3d51ccdd9bbd" - integrity sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ== - dependencies: - d3-array "2 - 3" - -d3-delaunay@6: - version "6.0.2" - resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.2.tgz#7fd3717ad0eade2fc9939f4260acfb503f984e92" - integrity sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ== - dependencies: - delaunator "5" - -d3-dispatch@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" - integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== - -"d3-dispatch@1 - 3", d3-dispatch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" - integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== - -d3-drag@1: - version "1.2.5" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" - integrity sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w== - dependencies: - d3-dispatch "1" - d3-selection "1" - -"d3-drag@2 - 3", d3-drag@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" - integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== - dependencies: - d3-dispatch "1 - 3" - d3-selection "3" - -d3-dsv@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" - integrity sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g== - dependencies: - commander "2" - iconv-lite "0.4" - rw "1" - -"d3-dsv@1 - 3", d3-dsv@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" - integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== - dependencies: - commander "7" - iconv-lite "0.6" - rw "1" - -d3-ease@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" - integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== - -"d3-ease@1 - 3", d3-ease@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" - integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== - -d3-fetch@1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7" - integrity sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA== - dependencies: - d3-dsv "1" - -d3-fetch@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" - integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== - dependencies: - d3-dsv "1 - 3" - -d3-force@1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b" - integrity sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg== - dependencies: - d3-collection "1" - d3-dispatch "1" - d3-quadtree "1" - d3-timer "1" - -d3-force@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" - integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== - dependencies: - d3-dispatch "1 - 3" - d3-quadtree "1 - 3" - d3-timer "1 - 3" - -d3-format@1: - version "1.4.5" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" - integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== - -"d3-format@1 - 3", d3-format@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" - integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== - -d3-geo@1: - version "1.12.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" - integrity sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg== - dependencies: - d3-array "1" - -d3-geo@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.0.1.tgz#4f92362fd8685d93e3b1fae0fd97dc8980b1ed7e" - integrity sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA== - dependencies: - d3-array "2.5.0 - 3" - -d3-hierarchy@1: - version "1.1.9" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" - integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== - -d3-hierarchy@3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.1.tgz#9cbb0ffd2375137a351e6cfeed344a06d4ff4597" - integrity sha512-LtAIu54UctRmhGKllleflmHalttH3zkfSi4NlKrTAoFKjC+AFBJohsCAdgCBYQwH0F8hIOGY89X1pPqAchlMkA== - -d3-interpolate@1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" - integrity sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA== - dependencies: - d3-color "1" - -"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" - integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== - dependencies: - d3-color "1 - 3" - -d3-path@1: - version "1.0.9" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" - integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== - -"d3-path@1 - 3", d3-path@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.0.1.tgz#f09dec0aaffd770b7995f1a399152bf93052321e" - integrity sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w== - -d3-polygon@1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e" - integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ== - -d3-polygon@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" - integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== - -d3-quadtree@1: - version "1.0.7" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" - integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== - -"d3-quadtree@1 - 3", d3-quadtree@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" - integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== - -d3-random@1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291" - integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ== - -d3-random@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" - integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== - -d3-scale-chromatic@1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98" - integrity sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg== - dependencies: - d3-color "1" - d3-interpolate "1" - -d3-scale-chromatic@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" - integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== - dependencies: - d3-color "1 - 3" - d3-interpolate "1 - 3" - -d3-scale@2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" - integrity sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw== - dependencies: - d3-array "^1.2.0" - d3-collection "1" - d3-format "1" - d3-interpolate "1" - d3-time "1" - d3-time-format "2" - -d3-scale@4: - version "4.0.2" - resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" - integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== - dependencies: - d3-array "2.10.0 - 3" - d3-format "1 - 3" - d3-interpolate "1.2.0 - 3" - d3-time "2.1.1 - 3" - d3-time-format "2 - 4" - -d3-selection@1, d3-selection@^1.1.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" - integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== - -"d3-selection@2 - 3", d3-selection@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" - integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== - -d3-shape@1: - version "1.3.7" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" - integrity sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw== - dependencies: - d3-path "1" - -d3-shape@3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.1.0.tgz#c8a495652d83ea6f524e482fca57aa3f8bc32556" - integrity sha512-tGDh1Muf8kWjEDT/LswZJ8WF85yDZLvVJpYU9Nq+8+yW1Z5enxrmXOhTArlkaElU+CTn0OTVNli+/i+HP45QEQ== - dependencies: - d3-path "1 - 3" - -d3-time-format@2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" - integrity sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ== - dependencies: - d3-time "1" - -"d3-time-format@2 - 4", d3-time-format@4: - version "4.1.0" - resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" - integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== - dependencies: - d3-time "1 - 3" - -d3-time@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" - integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== - -"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.0.0.tgz#65972cb98ae2d4954ef5c932e8704061335d4975" - integrity sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ== - dependencies: - d3-array "2 - 3" - -d3-timer@1: - version "1.0.10" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" - integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== - -"d3-timer@1 - 3", d3-timer@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" - integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== - -d3-transition@1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" - integrity sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA== - dependencies: - d3-color "1" - d3-dispatch "1" - d3-ease "1" - d3-interpolate "1" - d3-selection "^1.1.0" - d3-timer "1" - -"d3-transition@2 - 3", d3-transition@3: - version "3.0.1" - resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" - integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== - dependencies: - d3-color "1 - 3" - d3-dispatch "1 - 3" - d3-ease "1 - 3" - d3-interpolate "1 - 3" - d3-timer "1 - 3" - -d3-voronoi@1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" - integrity sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg== - -d3-zoom@1: - version "1.8.3" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-1.8.3.tgz#b6a3dbe738c7763121cd05b8a7795ffe17f4fc0a" - integrity sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ== - dependencies: - d3-dispatch "1" - d3-drag "1" - d3-interpolate "1" - d3-selection "1" - d3-transition "1" - -d3-zoom@3: - version "3.0.0" - resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" - integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== - dependencies: - d3-dispatch "1 - 3" - d3-drag "2 - 3" - d3-interpolate "1 - 3" - d3-selection "2 - 3" - d3-transition "2 - 3" - -d3@^5.14: - version "5.16.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877" - integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw== - dependencies: - d3-array "1" - d3-axis "1" - d3-brush "1" - d3-chord "1" - d3-collection "1" - d3-color "1" - d3-contour "1" - d3-dispatch "1" - d3-drag "1" - d3-dsv "1" - d3-ease "1" - d3-fetch "1" - d3-force "1" - d3-format "1" - d3-geo "1" - d3-hierarchy "1" - d3-interpolate "1" - d3-path "1" - d3-polygon "1" - d3-quadtree "1" - d3-random "1" - d3-scale "2" - d3-scale-chromatic "1" - d3-selection "1" - d3-shape "1" - d3-time "1" - d3-time-format "2" - d3-timer "1" - d3-transition "1" - d3-voronoi "1" - d3-zoom "1" - -d3@^7.0.0: - version "7.3.0" - resolved "https://registry.yarnpkg.com/d3/-/d3-7.3.0.tgz#f3d5a22c1f658952a6491cf50132f5267ed7a40a" - integrity sha512-MDRLJCMK232OJQRqGljQ/gCxtB8k3/sLKFjftMjzPB3nKVUODpdW9Rb3vcq7U8Ka5YKoZkAmp++Ur6I+6iNWIw== - dependencies: - d3-array "3" - d3-axis "3" - d3-brush "3" - d3-chord "3" - d3-color "3" - d3-contour "3" - d3-delaunay "6" - d3-dispatch "3" - d3-drag "3" - d3-dsv "3" - d3-ease "3" - d3-fetch "3" - d3-force "3" - d3-format "3" - d3-geo "3" - d3-hierarchy "3" - d3-interpolate "3" - d3-path "3" - d3-polygon "3" - d3-quadtree "3" - d3-random "3" - d3-scale "4" - d3-scale-chromatic "3" - d3-selection "3" - d3-shape "3" - d3-time "3" - d3-time-format "4" - d3-timer "3" - d3-transition "3" - d3-zoom "3" - -dagre-d3@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29" - integrity sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ== - dependencies: - d3 "^5.14" - dagre "^0.8.5" - graphlib "^2.1.8" - lodash "^4.17.15" - -dagre@^0.8.5: - version "0.8.5" - resolved "https://registry.yarnpkg.com/dagre/-/dagre-0.8.5.tgz#ba30b0055dac12b6c1fcc247817442777d06afee" - integrity sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw== - dependencies: - graphlib "^2.1.8" - lodash "^4.17.15" - -debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM= - -delaunator@5: - version "5.0.0" - resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" - integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== - dependencies: - robust-predicates "^3.0.0" - -detect-indent@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" - integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== - -detective@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.0.tgz#feb2a77e85b904ecdea459ad897cc90a99bd2a7b" - integrity sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg== - dependencies: - acorn-node "^1.6.1" - defined "^1.0.0" - minimist "^1.1.1" - -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -dompurify@2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-2.3.5.tgz#c83ed5a3ae5ce23e52efe654ea052ffb358dd7e3" - integrity sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ== - -electron-to-chromium@^1.4.84: - version "1.4.96" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz#a97438a01d5db1460343fea4a344960b09330990" - integrity sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw== - -es6-promise@^3.1.2: - version "3.3.1" - resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" - integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM= - -esbuild-android-64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.29.tgz#c0960c84c9b832bade20831515e89d32549d4769" - integrity sha512-tJuaN33SVZyiHxRaVTo1pwW+rn3qetJX/SRuc/83rrKYtyZG0XfsQ1ao1nEudIt9w37ZSNXR236xEfm2C43sbw== - -esbuild-android-arm64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.29.tgz#8eceb3abe5abde5489d6a5cbe6a7c1044f71115f" - integrity sha512-D74dCv6yYnMTlofVy1JKiLM5JdVSQd60/rQfJSDP9qvRAI0laPXIG/IXY1RG6jobmFMUfL38PbFnCqyI/6fPXg== - -esbuild-darwin-64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.29.tgz#26f3f14102310ecb8f2d9351c5b7a47a60d2cc8a" - integrity sha512-+CJaRvfTkzs9t+CjGa0Oa28WoXa7EeLutQhxus+fFcu0MHhsBhlmeWHac3Cc/Sf/xPi1b2ccDFfzGYJCfV0RrA== - -esbuild-darwin-arm64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.29.tgz#6d2d89dfd937992649239711ed5b86e51b13bd89" - integrity sha512-5Wgz/+zK+8X2ZW7vIbwoZ613Vfr4A8HmIs1XdzRmdC1kG0n5EG5fvKk/jUxhNlrYPx1gSY7XadQ3l4xAManPSw== - -esbuild-freebsd-64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.29.tgz#2cb41a0765d0040f0838280a213c81bbe62d6394" - integrity sha512-VTfS7Bm9QA12JK1YXF8+WyYOfvD7WMpbArtDj6bGJ5Sy5xp01c/q70Arkn596aGcGj0TvQRplaaCIrfBG1Wdtg== - -esbuild-freebsd-arm64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.29.tgz#e1b79fbb63eaeff324cf05519efa7ff12ce4586a" - integrity sha512-WP5L4ejwLWWvd3Fo2J5mlXvG3zQHaw5N1KxFGnUc4+2ZFZknP0ST63i0IQhpJLgEJwnQpXv2uZlU1iWZjFqEIg== - -esbuild-linux-32@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.29.tgz#a4a5a0b165b15081bc3227986e10dd4943edb7d6" - integrity sha512-4myeOvFmQBWdI2U1dEBe2DCSpaZyjdQtmjUY11Zu2eQg4ynqLb8Y5mNjNU9UN063aVsCYYfbs8jbken/PjyidA== - -esbuild-linux-64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.29.tgz#4c450088c84f8bfd22c51d116f59416864b85481" - integrity sha512-iaEuLhssReAKE7HMwxwFJFn7D/EXEs43fFy5CJeA4DGmU6JHh0qVJD2p/UP46DvUXLRKXsXw0i+kv5TdJ1w5pg== - -esbuild-linux-arm64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.29.tgz#d1a23993b26cb1f63f740329b2fc09218e498bd1" - integrity sha512-KYf7s8wDfUy+kjKymW3twyGT14OABjGHRkm9gPJ0z4BuvqljfOOUbq9qT3JYFnZJHOgkr29atT//hcdD0Pi7Mw== - -esbuild-linux-arm@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.29.tgz#a7e2fea558525eab812b1fe27d7a2659cd1bb723" - integrity sha512-OXa9D9QL1hwrAnYYAHt/cXAuSCmoSqYfTW/0CEY0LgJNyTxJKtqc5mlwjAZAvgyjmha0auS/sQ0bXfGf2wAokQ== - -esbuild-linux-mips64le@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.29.tgz#e708c527f0785574e400828cdbed3d9b17b5ddff" - integrity sha512-05jPtWQMsZ1aMGfHOvnR5KrTvigPbU35BtuItSSWLI2sJu5VrM8Pr9Owym4wPvA4153DFcOJ1EPN/2ujcDt54g== - -esbuild-linux-ppc64le@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.29.tgz#0137d1b38beae36a57176ef45e90740e734df502" - integrity sha512-FYhBqn4Ir9xG+f6B5VIQVbRuM4S6qwy29dDNYFPoxLRnwTEKToIYIUESN1qHyUmIbfO0YB4phG2JDV2JDN9Kgw== - -esbuild-linux-riscv64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.29.tgz#a2f73235347a58029dcacf0fb91c9eb8bebc8abb" - integrity sha512-eqZMqPehkb4nZcffnuOpXJQdGURGd6GXQ4ZsDHSWyIUaA+V4FpMBe+5zMPtXRD2N4BtyzVvnBko6K8IWWr36ew== - -esbuild-linux-s390x@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.29.tgz#0f7310ff1daec463ead9b9e26b7aa083a9f9f1ee" - integrity sha512-o7EYajF1rC/4ho7kpSG3gENVx0o2SsHm7cJ5fvewWB/TEczWU7teDgusGSujxCYcMottE3zqa423VTglNTYhjg== - -esbuild-netbsd-64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.29.tgz#ba9a0d9cb8aed73b684825126927f75d4fe44ff9" - integrity sha512-/esN6tb6OBSot6+JxgeOZeBk6P8V/WdR3GKBFeFpSqhgw4wx7xWUqPrdx4XNpBVO7X4Ipw9SAqgBrWHlXfddww== - -esbuild-openbsd-64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.29.tgz#36dbe2c32d899106791b5f3af73f359213f71b8a" - integrity sha512-jUTdDzhEKrD0pLpjmk0UxwlfNJNg/D50vdwhrVcW/D26Vg0hVbthMfb19PJMatzclbK7cmgk1Nu0eNS+abzoHw== - -esbuild-sunos-64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.29.tgz#e5f857c121441ec63bf9b399a2131409a7d344e5" - integrity sha512-EfhQN/XO+TBHTbkxwsxwA7EfiTHFe+MNDfxcf0nj97moCppD9JHPq48MLtOaDcuvrTYOcrMdJVeqmmeQ7doTcg== - -esbuild-windows-32@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.29.tgz#9c2f1ab071a828f3901d1d79d205982a74bdda6e" - integrity sha512-uoyb0YAJ6uWH4PYuYjfGNjvgLlb5t6b3zIaGmpWPOjgpr1Nb3SJtQiK4YCPGhONgfg2v6DcJgSbOteuKXhwqAw== - -esbuild-windows-64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.29.tgz#85fbce7c2492521896451b98d649a7db93e52667" - integrity sha512-X9cW/Wl95QjsH8WUyr3NqbmfdU72jCp71cH3pwPvI4CgBM2IeOUDdbt6oIGljPu2bf5eGDIo8K3Y3vvXCCTd8A== - -esbuild-windows-arm64@0.14.29: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.29.tgz#0aa7a9a1bc43a63350bcf574d94b639176f065b5" - integrity sha512-+O/PI+68fbUZPpl3eXhqGHTGK7DjLcexNnyJqtLZXOFwoAjaXlS5UBCvVcR3o2va+AqZTj8o6URaz8D2K+yfQQ== - -esbuild@^0.14.27: - version "0.14.29" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.29.tgz#24ad09c0674cbcb4aa2fe761485524eb1f6b1419" - integrity sha512-SQS8cO8xFEqevYlrHt6exIhK853Me4nZ4aMW6ieysInLa0FMAL+AKs87HYNRtR2YWRcEIqoXAHh+Ytt5/66qpg== - optionalDependencies: - esbuild-android-64 "0.14.29" - esbuild-android-arm64 "0.14.29" - esbuild-darwin-64 "0.14.29" - esbuild-darwin-arm64 "0.14.29" - esbuild-freebsd-64 "0.14.29" - esbuild-freebsd-arm64 "0.14.29" - esbuild-linux-32 "0.14.29" - esbuild-linux-64 "0.14.29" - esbuild-linux-arm "0.14.29" - esbuild-linux-arm64 "0.14.29" - esbuild-linux-mips64le "0.14.29" - esbuild-linux-ppc64le "0.14.29" - esbuild-linux-riscv64 "0.14.29" - esbuild-linux-s390x "0.14.29" - esbuild-netbsd-64 "0.14.29" - esbuild-openbsd-64 "0.14.29" - esbuild-sunos-64 "0.14.29" - esbuild-windows-32 "0.14.29" - esbuild-windows-64 "0.14.29" - esbuild-windows-arm64 "0.14.29" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -estree-walker@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - -fast-deep-equal@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^3.2.11: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@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" - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -glob@^7.1.3: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -graceful-fs@^4.1.3: - version "4.2.9" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.9.tgz#041b05df45755e587a24942279b9d113146e1c96" - integrity sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ== - -graphlib@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" - integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== - dependencies: - lodash "^4.17.15" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -iconv-lite@0.4: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@0.6: - version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -"internmap@1 - 2": - version "2.0.3" - resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" - integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.8.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" - integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== - dependencies: - has "^1.0.3" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -js-base64@^3.7.2: - version "3.7.2" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.2.tgz#816d11d81a8aff241603d19ce5761e13e41d7745" - integrity sha512-NnRs6dsyqUXejqk/yv2aiXlAvOs56sLkX6nUdeaNezI5LFFLlsZjOThmwnrcwh5ZZRwZlCMnVAY3CvhIhoVEKQ== - -jsonc-parser@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" - integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== - -khroma@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/khroma/-/khroma-1.4.1.tgz#ad6a5b6a972befc5112ce5129887a1a83af2c003" - integrity sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q== - -kleur@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.4.tgz#8c202987d7e577766d039a8cd461934c01cda04d" - integrity sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA== - -lilconfig@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" - integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== - -lodash@^4.17.15: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -magic-string@^0.25.7: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== - dependencies: - sourcemap-codec "^1.4.4" - -magic-string@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.1.tgz#ba9b651354fa9512474199acecf9c6dbe93f97fd" - integrity sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg== - dependencies: - sourcemap-codec "^1.4.8" - -merge2@^1.3.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -mermaid@^8.14.0: - version "8.14.0" - resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.14.0.tgz#ef589b0537f56d6340069070edb51719a4faba00" - integrity sha512-ITSHjwVaby1Li738sxhF48sLTxcNyUAoWfoqyztL1f7J6JOLpHOuQPNLBb6lxGPUA0u7xP9IRULgvod0dKu35A== - dependencies: - "@braintree/sanitize-url" "^3.1.0" - d3 "^7.0.0" - dagre "^0.8.5" - dagre-d3 "^0.6.4" - dompurify "2.3.5" - graphlib "^2.1.8" - khroma "^1.4.1" - moment-mini "^2.24.0" - stylis "^4.0.10" - -micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== - dependencies: - braces "^3.0.1" - picomatch "^2.2.3" - -min-indent@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" - integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== - -minimatch@^3.0.4: - version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -moment-mini@^2.24.0: - version "2.24.0" - resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.24.0.tgz#fa68d98f7fe93ae65bf1262f6abb5fb6983d8d18" - integrity sha512-9ARkWHBs+6YJIvrIp0Ik5tyTTtP9PoV0Ssu2Ocq5y9v8+NOOpWiRshAp8c4rZVWTOe+157on/5G+zj5pwIQFEQ== - -monaco-editor@^0.33.0: - version "0.33.0" - resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.33.0.tgz#842e244f3750a2482f8a29c676b5684e75ff34af" - integrity sha512-VcRWPSLIUEgQJQIE0pVT8FcGBIgFoxz7jtqctE+IiCxWugD0DwgyQBcZBhdSrdMC84eumoqMZsGl2GTreOzwqw== - -"monaco-yaml@file:./src/monaco-yaml": - version "0.0.0" - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -nanoid@^3.3.1: - version "3.3.2" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557" - integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA== - -node-releases@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01" - integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= - -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - -once@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -pako@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/pako/-/pako-2.0.4.tgz#6cebc4bbb0b6c73b0d5b8d7e8476e2b2fbea576d" - integrity sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg== - -path-browserify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" - integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -postcss-js@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00" - integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== - dependencies: - camelcase-css "^2.0.1" - -postcss-load-config@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" - integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== - dependencies: - lilconfig "^2.0.5" - yaml "^1.10.2" - -postcss-nested@5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" - integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== - dependencies: - postcss-selector-parser "^6.0.6" - -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@^8.4.12: - version "8.4.12" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" - integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== - dependencies: - nanoid "^3.3.1" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prettier@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" - integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew== - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -resolve@^1.22.0: - version "1.22.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.0.tgz#5e0b8c67c15df57a89bdbabe603a002f21731198" - integrity sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw== - dependencies: - is-core-module "^2.8.1" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -rimraf@^2.5.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -robust-predicates@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" - integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== - -rollup@^2.59.0: - version "2.66.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.66.1.tgz#366b0404de353c4331d538c3ad2963934fcb4937" - integrity sha512-crSgLhSkLMnKr4s9iZ/1qJCplgAgrRY+igWv8KhG/AjKOJ0YX/WpmANyn8oxrw+zenF3BXWDLa7Xl/QZISH+7w== - optionalDependencies: - fsevents "~2.3.2" - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -rw@1: - version "1.3.3" - resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" - integrity sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q= - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sander@^0.5.0: - version "0.5.1" - resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" - integrity sha1-dB4kXiMfB8r7b98PEzrfohalAq0= - dependencies: - es6-promise "^3.1.2" - graceful-fs "^4.1.3" - mkdirp "^0.5.1" - rimraf "^2.5.2" - -sorcery@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" - integrity sha1-iukK19fLBfxZ8asMY3hF1cFaUrc= - dependencies: - buffer-crc32 "^0.2.5" - minimist "^1.2.0" - sander "^0.5.0" - sourcemap-codec "^1.3.0" - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.4, sourcemap-codec@^1.4.8: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -strip-indent@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" - integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== - dependencies: - min-indent "^1.0.0" - -stylis@^4.0.10: - version "4.0.13" - resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.0.13.tgz#f5db332e376d13cc84ecfe5dace9a2a51d954c91" - integrity sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag== - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -svelte-copy-to-clipboard@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/svelte-copy-to-clipboard/-/svelte-copy-to-clipboard-0.2.5.tgz#4fd5c89a6415b7f6a4e153a9896b50b2dee12611" - integrity sha512-EAULxib4pRa59nyz25dDKITgSAVkrNVojRZVCSO8MIFd5GJljghJaCTIe/7R+O3GxKYIwJ3XHDNoY1hfjJeyEg== - -svelte-hmr@^0.14.11: - version "0.14.11" - resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.14.11.tgz#63d532dc9c2c849ab708592f034765fa2502e568" - integrity sha512-R9CVfX6DXxW1Kn45Jtmx+yUe+sPhrbYSUp7TkzbW0jI5fVPn6lsNG9NEs5dFg5qRhFNAoVdRw5qQDLALNKhwbQ== - -svelte-preprocess@^4.10.5: - version "4.10.5" - resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.5.tgz#c4d20fd67b92559e5cac80281154c813c1c17353" - integrity sha512-VKXPRScCzAZqeBZOGq4LLwtNrAu++mVn7XvQox3eFDV7Ciq0Lg70Q8QWjH9iXF7J+pMlXhPsSFwpCb2E+hoeyA== - dependencies: - "@types/pug" "^2.0.4" - "@types/sass" "^1.16.0" - detect-indent "^6.0.0" - magic-string "^0.25.7" - sorcery "^0.10.0" - strip-indent "^3.0.0" - -svelte-simple-modal@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/svelte-simple-modal/-/svelte-simple-modal-1.3.1.tgz#9fbe8ae51744bef779294eef008181f4051dd8ca" - integrity sha512-xBeK7VkGBuvqIm1J5eqnLqGIRKDtnsYzu8yVCLuO4rIuv4BMj4S6r0PGMgd4EFMgZwhmmqZPdrsPCDlDC6HUCw== - -svelte@^3.47.0: - version "3.47.0" - resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.47.0.tgz#ba46fe4aea99fc650d6939c215cd4694f5325a19" - integrity sha512-4JaJp3HEoTCGARRWZQIZDUanhYv0iyoHikklVHVLH9xFE9db22g4TDv7CPeNA8HD1JgjXI1vlhR1JZvvhaTu2Q== - -tailwindcss@^3.0.24: - version "3.0.24" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.0.24.tgz#22e31e801a44a78a1d9a81ecc52e13b69d85704d" - integrity sha512-H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig== - dependencies: - arg "^5.0.1" - chokidar "^3.5.3" - color-name "^1.1.4" - detective "^5.2.0" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.2.11" - glob-parent "^6.0.2" - is-glob "^4.0.3" - lilconfig "^2.0.5" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.12" - postcss-js "^4.0.0" - postcss-load-config "^3.1.4" - postcss-nested "5.0.6" - postcss-selector-parser "^6.0.10" - postcss-value-parser "^4.2.0" - quick-lru "^5.1.1" - resolve "^1.22.0" - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tslib@^2.0.3: - version "2.3.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" - integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== - -upper-case-first@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" - integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== - dependencies: - tslib "^2.0.3" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -vite@^2.9.1: - version "2.9.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-2.9.1.tgz#84bce95fae210a7beb566a0af06246748066b48f" - integrity sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ== - dependencies: - esbuild "^0.14.27" - postcss "^8.4.12" - resolve "^1.22.0" - rollup "^2.59.0" - optionalDependencies: - fsevents "~2.3.2" - -vscode-languageserver-textdocument@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.4.tgz#3cd56dd14cec1d09e86c4bb04b09a246cb3df157" - integrity sha512-/xhqXP/2A2RSs+J8JNXpiiNVvvNM0oTosNVmQnunlKvq9o4mupHOBAnnzH0lwIPKazXKvAKsVp1kr+H/K4lgoQ== - -vscode-languageserver-types@^3.0.0: - version "3.16.0" - resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247" - integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA== - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -xtend@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yaml@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yaml@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.0.0.tgz#cbc588ad58e0cd924cd3f5f2b1a9485103048e25" - integrity sha512-JbfdlHKGP2Ik9IHylzWlGd4pPK++EU46/IxMykphS2ZKw7a7h+dHNmcXObLgpRDriBY+rpWslldikckX8oruWQ== diff --git a/site/.gitignore b/site/.gitignore deleted file mode 100644 index d416f552a..000000000 --- a/site/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.hugo_build.lock -node_modules diff --git a/site/Makefile b/site/Makefile deleted file mode 100644 index 68f226f82..000000000 --- a/site/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -.PHONY: serve -serve: - echo "Open docs at: http://localhost:1313" - hugo server --disableFastRender - -.PHONY: release -release: - if [ -z "$$version" ]; then echo "\nERROR: must provide version=v#.#.#\n" && exit 1; fi - ./hack/new-release.sh "$$version" - -.PHONY: gen-crd-reference -gen-crd-reference: - ./hack/crds.rb - -.PHONY: dev-dependencies -dev-dependencies: - yarn install - -.PHONY: lint -lint: dev-dependencies - yarn lint diff --git a/site/README.md b/site/README.md deleted file mode 100644 index a67631fef..000000000 --- a/site/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# Website for [Template] - -## Prerequisites - -- [Hugo](https://github.com/gohugoio/hugo) - - macOS: `brew install hugo` - - Windows: `choco install hugo-extended -confirm` - -## Serve - -```bash -make serve -``` - -Visit (http://localhost:1313)[http://localhost:1313] - -## Generate a Release - -to create a release copy of `development` use - -```bash -make release version=v1.2.3 -``` - -The new version should appear in the site and be the default. - -## Generating CRD Documentation - -There is a tool, `hack/crd.rb` designed to autogenerate CRD documentation based off the content of our Go doc-comments -in `/cartographer/pkg/apis`. - -To update CRD documentation: - -1. Edit the doc-comments in the api, eg: "/cartographer/pkg/apis/v1alpha1/workload.go" -2. Generate the new CRDs `make gen-manifests` -3. generate the CRD documentation `cd site && make gen-crd-reference` -4. review the changes to files in `/cartographer/site/content/docs/development/crds/*.yaml` - 1. Custom edits will be removed, so look for delta's that represent developer edits and roll those line's back diff --git a/site/archetypes/default.md b/site/archetypes/default.md deleted file mode 100644 index 26f317f30..000000000 --- a/site/archetypes/default.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "{{ replace .Name "-" " " | title }}" -date: {{ .Date }} -draft: true ---- diff --git a/site/config.yaml b/site/config.yaml deleted file mode 100644 index cf2262661..000000000 --- a/site/config.yaml +++ /dev/null @@ -1,83 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -#baseURL: "https://cartographer.sh/" -languageCode: "en-us" -title: "Cartographer" -theme: "template" -outputs: - home: [ "HTML", "REDIRECTS" ] -pygmentsCodefences: true -markup: - defaultMarkdownHandler: goldmark - goldmark: # already at defaults, but here for easy adjustment - extensions: - definitionList: true - footnote: true - linkify: true - strikethrough: true - table: true - taskList: true - typographer: true - parser: - attribute: - block: false - title: true - autoHeadingID: true - autoHeadingIDType: github - renderer: - hardWraps: false - unsafe: false - xhtml: false - highlight: - anchorLineNos: false - codeFences: true - guessSyntax: false - hl_Lines: "" - lineAnchors: "" - lineNoStart: 1 - lineNos: false - lineNumbersInTable: true - noClasses: false - tabWidth: 4 -menu: - docs: - - name: Overview - url: /docs/ -params: - twitter_url: "https://twitter.com/OssCartographer" - github_url: "https://github.com/vmware-tanzu/cartographer" - slack_url: "https://slack.com/" - github_base_url: "https://github.com/vmware-tanzu/cartographer" - use_advanced_docs: true - docs_right_sidebar: true - docs_search: false - docs_search_index_name: index_name - docs_search_api_key: api_key - docs_versioning: true - docs_latest: v0.3.0 - docs_versions: - - development - - v0.3.0 - - v0.2.0 - - v0.1.0 - - v0.0.7 - - v0.0.6 -mediaTypes: - "text/netlify": - delimiter: "" -outputFormats: - REDIRECTS: - mediaType: "text/netlify" - baseName: "_redirects" diff --git a/site/content/community/_index.html b/site/content/community/_index.html deleted file mode 100644 index c7855287f..000000000 --- a/site/content/community/_index.html +++ /dev/null @@ -1,79 +0,0 @@ - - -
-
-

Community

-
-
-
-

Do you want to help build Cartographer?

-
-
-
- -
-
-

Github

-

Wanting to contribute but not sure where to start? Please see the good first issue label in the Cartographer repository and feel free to reach out or give feedback!

-
-
-
-
- -
-
-

Twitter

-

Follow us on Twitter at @OssCartographer

-
-
-
-
- -
-
-

Slack

-

You can reach out to us at the #cartographer channel in the Kubernetes workspace

-
-
-
-
- -
-
-

Google Groups

-

Join the mailing list to get updates on the project and receive invitations to the community meetings

-
-
-
-
- -
-
-

Join the Cartographer community meetings every 2 weeks on Wednesday at 8:00AM PT on Zoom

-

Add your discussion topics or questions to the open agenda

-

Join Office Hours every Monday at 2:00PM ET to discuss ideas and improvements to the project in the form of RFCs. Feel free to add your ideas to the agenda

- -
-
-
-
\ No newline at end of file diff --git a/site/content/docs/development/_index.md b/site/content/docs/development/_index.md deleted file mode 100644 index 1ba467353..000000000 --- a/site/content/docs/development/_index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -version: development -cascade: - layout: docs ---- - -## TL;DR - -Cartographer is a -[Supply Chain Choreographer](https://tanzu.vmware.com/developer/guides/ci-cd/supply-chain-choreography/) for Kubernetes. -It allows App Operators to create pre-approved paths to production by integrating Kubernetes resources with the elements -of their existing toolchains (e.g. Jenkins). - -**Each** pre-approved supply chain creates a paved road to production; orchestrating supply chain resources - test, -build, scan, and deploy - allowing developers to be able to focus on delivering value to their users while also -providing App Operators with the peace of mind that all code in production has passed through all of the steps of an -approved workflow. - -## Cartographer Design and Philosophy - -Cartographer allows users to define all of the steps that an application must go through to create an image and -Kubernetes configuration. Users achieve this with the Supply Chain abstraction, see -[Spec Reference](reference/workload#clustersupplychain). - -The supply chain consists of resources that are specified via Templates. Each template acts as a wrapper for existing -Kubernetes resources and allows them to be used with Cartographer. There are currently four different types of templates -that can be use in a Cartographer supply chain: - -- [Source Template](reference/template#clustersourcetemplate) -- [Image Template](reference/template#clusterimagetemplate) -- [Config Template](reference/template#clusterconfigtemplate) -- [Generic Template](reference/template#clustertemplate) - -Contrary to many other Kubernetes native workflow tools that already exist in the market, Cartographer does not “run” -any of the objects themselves. Instead, it monitors the execution of each resource and templates the following resource -in the supply chain after a given resource has completed execution and updated its status. - -The supply chain may also be extended to include integrations to existing CI/CD pipelines by using the Runnable CRD -(which is part of Cartographer). The Runnable CRD acts as a wrapper for CRDs that are immutable (meaning that instead of -updating an object, a new object would be created). There are a number of CI/CD CRDs that follow this pattern, including -Tekton. The Runnable CRD provides a declarative way for pipelines to be run inside of Cartographer. - -While the supply chain is operator facing, Cartographer also provides an abstraction for developers called -[workloads](reference/workload#workload). Workloads allow developers to create application specifications such as the -location of their repository, environment variables and service claims. - -By design, supply chains can be reused by many workloads. This allows an operator to specify the steps in the path to -production a single time, and for developers to specify their applications independently but for each to use the same -path to production. The intent is that developers are able to focus on providing value for their users and can reach -production quickly and easily, while providing peace of mind for app operators, who are ensured that each application -has passed through the steps of the path to production that they’ve defined. - -![Cartographer High Level Diagram](img/ownership-flow.png) diff --git a/site/content/docs/development/architecture.md b/site/content/docs/development/architecture.md deleted file mode 100644 index c0387ea79..000000000 --- a/site/content/docs/development/architecture.md +++ /dev/null @@ -1,223 +0,0 @@ -# Architecture and Concepts - -## Overview - -Cartographer is an open-source Supply Chain Choreographer for Kubernetes. Cartographer provides a set of Kubernetes -controllers and CRDs that allow a platform operator to create an application platform by specifying repeatable, reusable -**code-to-production** blueprints. - -Two kinds of blueprint work together to provide **code-to-production**, [Supply Chains](#clustersupplychain) and -[Delivery](#clusterdelivery). - -## Concepts - -### Blueprints - -| Blueprint | Owner | Valid Templates | -| ----------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [ClusterSupplyChain](reference/workload#clustersupplychain) | [Workload](reference/workload#workload) | [ClusterSourceTemplate](reference/template#clustersourcetemplate), [ClusterImageTemplate](reference/template#clusterimagetemplate), [ClusterConfigTemplate](reference/template#clusterconfigtemplate), [ClusterTemplate](reference/template#clustertemplate) | -| [ClusterDelivery](reference/deliverable#clusterdelivery) | [Deliverable](reference/deliverable#deliverable) | [ClusterSourceTemplate](reference/template#clustersourcetemplate), [ClusterDeploymentTemplate](reference/template#clusterdeploymenttemplate), [ClusterTemplate](reference/template#clustertemplate) | - -Blueprints are a list of templates (called resources) that defines how the templates depend upon each other. It forms -the dependency graph of your supply chain or delivery. - -The dependencies are formed by specifying which resource(s) are used as inputs. - -Blueprints consist of: - -- A **selector** to match owners, see [selectors](#selectors) -- **Parameters** to pass to all resources -- **Resources**: - - A **templateRef** pointing to the template for the resource, see [templateRef](#templateref) - - **Parameters** to pass to the template - - **Inputs**, which specify dependencies for the template - -{{< figure src="../img/blueprint.svg" alt="Blueprint" width="400px" >}} - - - -#### templateRef - -`templateRef` consists of a reference to a Template in one of two ways: - -- kind and name (static), or -- kind and a list of options (dynamic) - -If there is only one option for the template, you can directly refer to the template by name. For example: - -```yaml -templateRef: - kind: ClusterSourceTemplate - name: git-template -``` - -If you need to determine the template based on a value within an Owner (workload|deliverable), you can use options. For -example: - -```yaml -templateRef: - kind: ClusterSourceTemplate - options: - - name: git-template - selector: - matchFields: - - key: workload.spec.source.git - operator: Exists - - name: imgpkg-bundle-template - selector: - matchFields: - - key: workload.spec.source.image - operator: Exists -``` - -The selector specifies the requirements which must match against the Owner (workload|deliverable) for the option to be -chosen. See [selectors](#selectors). - -### Templates - -Templates create or update resources (i.e. kubectl apply). - -Templates consist of: - -- Parameters to pass to `spec.template` or `spec.ytt` -- The Kubernetes resource yaml as `spec.template` or `spec.ytt` see [Templating](templating#templating) -- **Output paths** which tell Cartographer where to find the output of the Kubernetes resource - - The path field depends upon the specific template kind. - - These paths are interpolated and subsequent templates can use them via the input accessors. see - [Inputs](templating#inputs) - -Templates are typed by the output their underlying resource produces. - -| Output | Template | Output Path | Input Accessor | -| ---------- | ------------------------------------------------------------------------- | ----------------------------------- | ----------------------------------------------------------- | -| Config | [ClusterConfigTemplate](reference/template#clusterconfigtemplate) | `spec.configPath` | `configs.` | -| Image | [ClusterImageTemplate](reference/template#clusterimagetemplate) | `spec.imagePath` | `images.` | -| Source | [ClusterSourceTemplate](reference/template#clustersourcetemplate) | `spec.urlPath`, `spec.revisionPath` | `sources..url`, `sources..revision` | -| Deployment | [ClusterDeploymentTemplate](reference/template#clusterdeploymenttemplate) | `spec.urlPath`, `spec.revisionPath` | `sources..url`, `sources..revision` | -| | [ClusterTemplate](reference/template#clustertemplate) | - -{{< figure src="../img/template.svg" alt="Template" width="400px" >}} - -### Owners - -| Owner | Blueprint | -| ----------- | ------------------ | -| Workload | ClusterSupplyChain | -| Deliverable | ClusterDelivery | - -Owners represent the **workload** or **deliverable**, which in many cases refer to a single application's source or -image location. - -Owners are the developer provided configuration which cause a blueprint to be reconciled into resources. Owners -reference the primary **source** or **image** for the **blueprint** - -They consist of: - -- **Labels**: blueprints will select based on the labels of an owner, see [selectors](#selectors) -- **Params**: parameters supplied to the blueprint, see [Parameter Hierarchy](#parameter-hierarchy) -- **Source**: The source reference for the input to the Supply Chain or Delivery Blueprints, see - [Workload](reference/workload#workload) and [Deliverable](reference/deliverable#deliverable) - -{{< figure src="../img/owner.svg" alt="Owner" width="400px" >}} - -## Theory of Operation - -Given an owner that matches a blueprint, Cartographer reconciles the resources referenced by the blueprint. The -resources are only created when the inputs are satisfied, and a resource is only updated when its inputs change. This -results in a system where a new result from one resource can cause other resources to change. - -![Generic Blueprint](../img/generic.jpg) - - - -Although Cartographer is not a 'runner of things', a resource can be something as simple as a Job. - -However, one advantage of Cartographer's design is that resources that self-mutate can cause downstream change. - -For example, a Build resource that discovers new base OCI images. If it rebuilds your image, then Cartographer will see -this new image and update downstream resources. - -When Cartographer reconciles an owner, each resource in the matching blueprint is applied: - -0. **Determine Template**: If options are present, resolve selector to find matching template. Otherwise, use template - name specified. See [templateRef](#templateRef). -1. **Generate Inputs**: Using the **blueprint resource's** `inputs` as a reference, select outputs from previously - applied **Kubernetes resources** -2. **Generate Params**: Using the [Parameter Hierarchy](architecture.md#parameter-hierarchy), generate parameter values -3. **Generate and apply resource spec**: Apply the result of interpolating `spec.template` (or `spec.ytt`), **inputs**, - **params** and the **owner spec**. -4. **Retrieve Output**: Store the output from the applied resource. The output to use is specified in the **template - output path**. - -![Realize](../img/realize.jpg) - -## Blueprint Details - -### ClusterSupplyChain - -A ClusterSupplyChain blueprint continuously integrates and builds your app. - -![ClusterSupplyChain](../img/supplychain.png) - -### ClusterDelivery - -A ClusterDelivery blueprint continuously deploys and validates Kubernetes configuration to a cluster. - -![ClusterDelivery](../img/delivery.jpg) - -### Selectors - -Selectors specify a set of requirements that _must all_ match against an owner. - -They build upon -[set-based requirements in Kubernetes resources](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements), -by adding `matchFields`, which permits the same operators and values as `matchExpressions` against a json path `key` -which is evaluated on the owner. For example: - -```yaml -selector: - matchLabels: - workload-type: web - matchExpressions: - - key: group - operator: In - values: ["internal", "public-facing"] - matchFields: - - key: workload.spec.source.git - operator: Exists -``` - -All requirements must match for the selector to select for the owner. Furthermore, when considered against multiple, -other objects with selectors, the selector with the most specificity wins. If multiple selectors match with equal -specificity, the handling depends on context. - -They are currently employed by: - -1. Blueprints, [in legacy form](#blueprint-selector-legacy) - to determine if the blueprint will select for the owner; -2. options in a [templateRef](#templateRef) - to determine if the template option will select for the owner. - -In both these cases, multiple matching objects is invalid - in the former, no blueprint will reconcile for the owner. In -the latter, no template will be stamped out, and the details of the offending resource reported in the owner's status. - -#### Blueprint selector legacy - -In order to maintain backwards-compatibility with the existing schema, blueprints must currently supply selector -requirements directly in their top-level properties `selector`, `selectorMatchExpressions` and `selectorMatchFields` -(for `matchLabels`, `matchExpressions`, and `matchFields`, respectively). - -In a future schema revision, blueprints' `selector` property will become a Selector, as described above, and the -`selectorMatchExpressions` and `selectorMatchFields` removed. - -## Parameter Hierarchy - - - -Templates can specify default values for **parameters** in `spec.params`. - -These parameters may be overridden by the **blueprint**, which allows operators to specify: - -- a default value which can be overridden by the **owner's** `spec.params` -- a value which cannot be overridden by the **owner** - -Blueprint parameters can be specified globally in `spec.params` or per resource `spec.resource[].params` If the **per -resource param** is specified, the global blueprint param is ignored. diff --git a/site/content/docs/development/authentication.md b/site/content/docs/development/authentication.md deleted file mode 100644 index d6d2eec89..000000000 --- a/site/content/docs/development/authentication.md +++ /dev/null @@ -1,172 +0,0 @@ -# Authentication - -## Owner Permissions - -Cartographer requires a **service account** that permits all actions on the GVKs specified in **templates**. - -### Per namespace service account - -The operator provides a name for the service account that is used (but not the namespace). Typically, the operator will -ensure that a service account with sufficient privileges exists in each developer namespace. - -The developer can still -[override the service account name](#developer-selects-the-name-of-a-service-account-in-their-namespace). - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: "operator-chosen-name" - namespace: # not provided - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # not provided -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: operator-chosen-name - namespace: my-developer-ns -``` - -### Single service account - -The operator provides a reference to a single service account that is used. The operator will ensure that one service -account with sufficient privileges exists. - -The developer can still -[override the service account name](#developer-selects-the-name-of-a-service-account-in-their-namespace). - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: operator-chosen-name - namespace: operator-chosen-namespace - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # not provided -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: operator-chosen-name - namespace: operator-chosen-namespace -``` - -### Developer selected service account - -The developer provides a name for a service account that is in the same namespace as the owner (Workload/Deliverable) -they are creating. This takes precedence over operator provided service accounts. Of course the service account still -requires full permissions for the objects created by the blueprint. - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: # n/a - namespace: # n/a - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: workload-specific-sa -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: workload-specific-sa - namespace: my-developer-ns -``` - -### Default service account - -If a service account is not specified in the blueprint or the owner, the `default` service account in the owner -namespace is used. - -Note: The `default` service account is unlikely to have the necessary permissions. - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: {} # Not provided! - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # Not provided! -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: default - namespace: my-developer-ns -``` - -## Cartographer Controller Permissions - -Cartographer has its own service account, `cartographer-controller` in the `cartographer-system` namespace. The -clusterrole that's bound to the service account is: - -```bash -kubectl get clusterrole cartographer-controller-admin -oyaml - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: cartographer-controller-admin -rules: -- apiGroups: - - carto.run - resources: - - workloads/status - - clustersupplychains/status - - runnables/status - - clusterdeliveries/status - - deliverables/status - verbs: - - create - - update - - delete - - patch -- apiGroups: - - '*' - resources: - - '*' - verbs: - - watch - - get - - list -``` diff --git a/site/content/docs/development/crds/carto.run_clusterconfigtemplates.yaml b/site/content/docs/development/crds/carto.run_clusterconfigtemplates.yaml deleted file mode 100644 index 986de2013..000000000 --- a/site/content/docs/development/crds/carto.run_clusterconfigtemplates.yaml +++ /dev/null @@ -1,52 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterConfigTemplate -metadata: {} -spec: - - # ConfigPath is a path into the templated object's data that - # contains valid yaml. This is typically the information that - # will configure the components of the deployable image. - # ConfigPath is specified in jsonpath format, eg: .data - configPath: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/development/crds/carto.run_clusterdeliveries.yaml b/site/content/docs/development/crds/carto.run_clusterdeliveries.yaml deleted file mode 100644 index 1e47a4b88..000000000 --- a/site/content/docs/development/crds/carto.run_clusterdeliveries.yaml +++ /dev/null @@ -1,240 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterDelivery -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner does not specify this parameter, - # this value is used. - # +optional - default: - - # Name of the parameter. Should match a template parameter - # name. - name: - - # Value of the parameter. If specified, owner properties are - # ignored. - # +optional - value: - - # Resources that are responsible for deploying and validating - # the deliverable - resources: - - # Configs is a list of references to other 'config' - # resources in this list. A config resource has the kind - # ClusterConfigTemplate - # In a template, configs can be consumed as: - # $(configs..config)$ - # If there is only one image, it can be consumed as: - # $(config)$ - # +optional - configs: - - name: - resource: - - # Deployment is a reference to a 'deployment' resource. A - # deployment resource has the kind ClusterDeploymentTemplate - # In a template, the deployment can be consumed as: - # $(deployment.url)$ and $(deployment.revision)$ - # +optional - deployment: - resource: - - # Name of the resource. Used as a reference for inputs, as - # well as being the name presented in deliverable statuses - # to identify this resource. - name: - - # Params are a list of parameters to provide to the template - # in TemplateRef Template params do not have to be specified - # here, unless you want to force a particular value, or add - # a default value. - # Parameters are consumed in a template with the syntax: - # $(params.)$ - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to - # be optional; If the Owner does not specify this - # parameter, this value is used. - # +optional - default: - - # Name of the parameter. Should match a template - # parameter name. - name: - - # Value of the parameter. If specified, owner properties - # are ignored. - # +optional - value: - - # Sources is a list of references to other 'source' - # resources in this list. A source resource has the kind - # ClusterSourceTemplate or ClusterDeploymentTemplate - # In a template, sources can be consumed as: - # $(sources..url)$ and $(sources..revision)$ - # If there is only one source, it can be consumed as: - # $(source.url)$ and $(source.revision)$ - # +optional - sources: - - name: - resource: - - # TemplateRef identifies the template used to produce this - # resource - templateRef: - - # Kind of the template to apply - kind: <[ClusterSourceTemplate|ClusterDeploymentTemplate|ClusterTemplate|ClusterConfigTemplate]> - - # Name of the template to apply - # +optional - name: - - # Options is a list of template names and Selector. The - # templates must all be of type Kind. A template will be - # selected if the deliverable matches the specified - # selector. Only one template can be selected. Only one of - # Name and Options can be specified. - # +optional - options: - - # Name of the template to apply - name: - - # Selector is a criteria to match against a workload - # or deliverable resource. - selector: - - # matchExpressions is a list of label selector - # requirements. The requirements are ANDed. - # +optional - matchExpressions: - - # A label selector requirement is a selector - # that contains values, a key, and an operator - # that relates the key and values. - # +optional - - # key is the label key that the selector applies - # to. - key: - - # operator represents a key's relationship to a - # set of values. Valid operators are In, NotIn, - # Exists and DoesNotExist. - operator: - - # values is an array of string values. If the - # operator is In or NotIn, the values array must - # be non-empty. If the operator is Exists or - # DoesNotExist, the values array must be empty. - # This array is replaced during a strategic - # merge patch. - # +optional - values: [ ] - - # MatchFields is a list of field selector - # requirements. The requirements are ANDed. - # +optional - matchFields: - - # Key is the JSON path in the workload to match - # against. e.g. for workload: - # "workload.spec.source.git.url", e.g. for - # deliverable: "deliverable.spec.source.git.url" - key: - - # Operator represents a key's relationship to a - # set of values. Valid operators are In, NotIn, - # Exists and DoesNotExist. - operator: <[In|NotIn|Exists|DoesNotExist]> - - # Values is an array of string values. If the - # operator is In or NotIn, the values array must - # be non-empty. If the operator is Exists or - # DoesNotExist, the values array must be empty. - # +optional - values: [ ] - - # matchLabels is a map of {key,value} pairs. A - # single {key,value} in the matchLabels map is - # equivalent to an element of matchExpressions, - # whose key field is "key", the operator is "In", - # and the values array contains only "value". The - # requirements are ANDed. - # +optional - matchLabels: {} - - # Specifies the label key-value pairs used to select owners See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selector: {} - - # Specifies the requirements used to select owners based on - # their labels See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selectorMatchExpressions: - - # A label selector requirement is a selector that contains - # values, a key, and an operator that relates the key and - # values. - # +optional - - # key is the label key that the selector applies to. - key: - - # operator represents a key's relationship to a set of - # values. Valid operators are In, NotIn, Exists and - # DoesNotExist. - operator: - - # values is an array of string values. If the operator is In - # or NotIn, the values array must be non-empty. If the - # operator is Exists or DoesNotExist, the values array must - # be empty. This array is replaced during a strategic merge - # patch. - # +optional - values: [ ] - - # Specifies the requirements used to select owners based on - # their fields See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selectorMatchFields: - - # Key is the JSON path in the workload to match against. - # e.g. for workload: "workload.spec.source.git.url", e.g. - # for deliverable: "deliverable.spec.source.git.url" - key: - - # Operator represents a key's relationship to a set of - # values. Valid operators are In, NotIn, Exists and - # DoesNotExist. - operator: <[In|NotIn|Exists|DoesNotExist]> - - # Values is an array of string values. If the operator is In - # or NotIn, the values array must be non-empty. If the - # operator is Exists or DoesNotExist, the values array must - # be empty. - # +optional - values: [ ] - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountRef: - - # Name of the service account being referred to - name: - - # Namespace of the service account being referred to if - # omitted, the Owner's namespace is used. - # +optional - namespace: diff --git a/site/content/docs/development/crds/carto.run_clusterdeploymenttemplates.yaml b/site/content/docs/development/crds/carto.run_clusterdeploymenttemplates.yaml deleted file mode 100644 index d1819068a..000000000 --- a/site/content/docs/development/crds/carto.run_clusterdeploymenttemplates.yaml +++ /dev/null @@ -1,99 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterDeploymentTemplate -metadata: {} -spec: - - # ObservedCompletion describe the criteria for determining that - # the templated object completed configuration of environment. - # These criteria assert completion when metadata.Generation and - # status.ObservedGeneration match, AND success or failure - # criteria match. Cannot specify both ObservedMatches and - # ObservedCompletion. - # +optional - observedCompletion: - - # FailedCondition, when matched, indicates that the input did - # not deploy successfully. - # +optional - failed: - - # Key is a jsonPath expression pointing to the field to - # inspect on the templated object, eg: - # 'status.conditions[?(@.type=="Succeeded")].status' - key: - - # Value is the expected value that, when matching the key's - # actual value, makes this condition true. - value: - - # SucceededCondition, when matched, indicates that the input - # was successfully deployed. - succeeded: - - # Key is a jsonPath expression pointing to the field to - # inspect on the templated object, eg: - # 'status.conditions[?(@.type=="Succeeded")].status' - key: - - # Value is the expected value that, when matching the key's - # actual value, makes this condition true. - value: - - # ObservedMatches describe the criteria for determining that the - # templated object completed configuration of environment. These - # criteria assert completion when an output (usually a field in - # .status) matches an input (usually a field in .spec) Cannot - # specify both ObservedMatches and ObservedCompletion. - # +optional - observedMatches: - - # Input is a jsonPath to a value that is fulfilled before - # the templated object is reconciled. Usually a value in the - # .spec of the object - input: - - # Output is a jsonPath to a value that is fulfilled after - # the templated object is reconciled. Usually a value in the - # .status of the object - output: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/development/crds/carto.run_clusterimagetemplates.yaml b/site/content/docs/development/crds/carto.run_clusterimagetemplates.yaml deleted file mode 100644 index 52f18461d..000000000 --- a/site/content/docs/development/crds/carto.run_clusterimagetemplates.yaml +++ /dev/null @@ -1,55 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: {} -spec: - - # ImagePath is a path into the templated object's data that - # contains a valid image digest. This might be a URL or in some - # cases just a repository path and digest. The final spec for - # this field may change as we implement RFC-0016 - # https://github.com/vmware-tanzu/cartographer/blob/main/rfc/rfc-0016-validate-template-outputs.md - # ImagePath is specified in jsonpath format, eg: - # .status.artifact.image_digest - imagePath: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/development/crds/carto.run_clusterruntemplates.yaml b/site/content/docs/development/crds/carto.run_clusterruntemplates.yaml deleted file mode 100644 index cf86cfce0..000000000 --- a/site/content/docs/development/crds/carto.run_clusterruntemplates.yaml +++ /dev/null @@ -1,29 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: {} -spec: - - # Outputs are a named list of jsonPaths that are used to gather - # results from the last successful object stamped by the - # template. E.g: my-output: - # .status.results[?(@.name=="IMAGE-DIGEST")].value Note: outputs - # are only filled on the runnable when the templated object has - # a Succeeded condition with a Status of True E.g: - # status.conditions[?(@.type=="Succeeded")].status == True a - # runnable creating an object without a Succeeded condition - # (like a Job or ConfigMap) will never display an output - # +optional - outputs: {} - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - template: {} diff --git a/site/content/docs/development/crds/carto.run_clustersourcetemplates.yaml b/site/content/docs/development/crds/carto.run_clustersourcetemplates.yaml deleted file mode 100644 index 253b4d6f6..000000000 --- a/site/content/docs/development/crds/carto.run_clustersourcetemplates.yaml +++ /dev/null @@ -1,58 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # RevisionPath is a path into the templated object's data that - # contains a revision. The revision, along with the URL, - # represents the output of the Template. RevisionPath is - # specified in jsonpath format, eg: .status.artifact.revision - revisionPath: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # URLPath is a path into the templated object's data that - # contains a URL. The URL, along with the revision, represents - # the output of the Template. URLPath is specified in jsonpath - # format, eg: .status.artifact.url - urlPath: - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/development/crds/carto.run_clustersupplychains.yaml b/site/content/docs/development/crds/carto.run_clustersupplychains.yaml deleted file mode 100644 index fbee9e9c8..000000000 --- a/site/content/docs/development/crds/carto.run_clustersupplychains.yaml +++ /dev/null @@ -1,246 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner does not specify this parameter, - # this value is used. - # +optional - default: - - # Name of the parameter. Should match a template parameter - # name. - name: - - # Value of the parameter. If specified, owner properties are - # ignored. - # +optional - value: - - # Resources that are responsible for bringing the application to - # a deliverable state. - resources: - - # Configs is a list of references to other 'config' - # resources in this list. A config resource has the kind - # ClusterConfigTemplate - # In a template, configs can be consumed as: - # $(configs..config)$ - # If there is only one image, it can be consumed as: - # $(config)$ - # +optional - configs: - - name: - resource: - - # Images is a list of references to other 'image' resources - # in this list. An image resource has the kind - # ClusterImageTemplate - # In a template, images can be consumed as: - # $(images..image)$ - # If there is only one image, it can be consumed as: - # $(image)$ - # +optional - images: - - name: - resource: - - # Name of the resource. Used as a reference for inputs, as - # well as being the name presented in workload statuses to - # identify this resource. - name: - - # Params are a list of parameters to provide to the template - # in TemplateRef Template params do not have to be specified - # here, unless you want to force a particular value, or add - # a default value. - # Parameters are consumed in a template with the syntax: - # $(params.)$ - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to - # be optional; If the Owner does not specify this - # parameter, this value is used. - # +optional - default: - - # Name of the parameter. Should match a template - # parameter name. - name: - - # Value of the parameter. If specified, owner properties - # are ignored. - # +optional - value: - - # Sources is a list of references to other 'source' - # resources in this list. A source resource has the kind - # ClusterSourceTemplate - # In a template, sources can be consumed as: - # $(sources..url)$ and $(sources..revision)$ - # If there is only one source, it can be consumed as: - # $(source.url)$ and $(source.revision)$ - # +optional - sources: - - name: - resource: - - # TemplateRef identifies the template used to produce this - # resource - templateRef: - - # Kind of the template to apply - kind: <[ClusterSourceTemplate|ClusterImageTemplate|ClusterTemplate|ClusterConfigTemplate]> - - # Name of the template to apply Only one of Name and - # Options can be specified. - # +optional - name: - - # Options is a list of template names and Selector. The - # templates must all be of type Kind. A template will be - # selected if the workload matches the specified selector. - # Only one template can be selected. Only one of Name and - # Options can be specified. Minimum number of items in - # list is two. - # +optional - options: - - # Name of the template to apply - name: - - # Selector is a criteria to match against a workload - # or deliverable resource. - selector: - - # matchExpressions is a list of label selector - # requirements. The requirements are ANDed. - # +optional - matchExpressions: - - # A label selector requirement is a selector - # that contains values, a key, and an operator - # that relates the key and values. - # +optional - - # key is the label key that the selector applies - # to. - key: - - # operator represents a key's relationship to a - # set of values. Valid operators are In, NotIn, - # Exists and DoesNotExist. - operator: - - # values is an array of string values. If the - # operator is In or NotIn, the values array must - # be non-empty. If the operator is Exists or - # DoesNotExist, the values array must be empty. - # This array is replaced during a strategic - # merge patch. - # +optional - values: [ ] - - # MatchFields is a list of field selector - # requirements. The requirements are ANDed. - # +optional - matchFields: - - # Key is the JSON path in the workload to match - # against. e.g. for workload: - # "workload.spec.source.git.url", e.g. for - # deliverable: "deliverable.spec.source.git.url" - key: - - # Operator represents a key's relationship to a - # set of values. Valid operators are In, NotIn, - # Exists and DoesNotExist. - operator: <[In|NotIn|Exists|DoesNotExist]> - - # Values is an array of string values. If the - # operator is In or NotIn, the values array must - # be non-empty. If the operator is Exists or - # DoesNotExist, the values array must be empty. - # +optional - values: [ ] - - # matchLabels is a map of {key,value} pairs. A - # single {key,value} in the matchLabels map is - # equivalent to an element of matchExpressions, - # whose key field is "key", the operator is "In", - # and the values array contains only "value". The - # requirements are ANDed. - # +optional - matchLabels: {} - - # Specifies the label key-value pairs used to select owners See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selector: {} - - # Specifies the requirements used to select owners based on - # their labels See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selectorMatchExpressions: - - # A label selector requirement is a selector that contains - # values, a key, and an operator that relates the key and - # values. - # +optional - - # key is the label key that the selector applies to. - key: - - # operator represents a key's relationship to a set of - # values. Valid operators are In, NotIn, Exists and - # DoesNotExist. - operator: - - # values is an array of string values. If the operator is In - # or NotIn, the values array must be non-empty. If the - # operator is Exists or DoesNotExist, the values array must - # be empty. This array is replaced during a strategic merge - # patch. - # +optional - values: [ ] - - # Specifies the requirements used to select owners based on - # their fields See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selectorMatchFields: - - # Key is the JSON path in the workload to match against. - # e.g. for workload: "workload.spec.source.git.url", e.g. - # for deliverable: "deliverable.spec.source.git.url" - key: - - # Operator represents a key's relationship to a set of - # values. Valid operators are In, NotIn, Exists and - # DoesNotExist. - operator: <[In|NotIn|Exists|DoesNotExist]> - - # Values is an array of string values. If the operator is In - # or NotIn, the values array must be non-empty. If the - # operator is Exists or DoesNotExist, the values array must - # be empty. - # +optional - values: [ ] - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountRef: - - # Name of the service account being referred to - name: - - # Namespace of the service account being referred to if - # omitted, the Owner's namespace is used. - # +optional - namespace: diff --git a/site/content/docs/development/crds/carto.run_clustertemplates.yaml b/site/content/docs/development/crds/carto.run_clustertemplates.yaml deleted file mode 100644 index ae1557fac..000000000 --- a/site/content/docs/development/crds/carto.run_clustertemplates.yaml +++ /dev/null @@ -1,46 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/development/crds/carto.run_deliverables.yaml b/site/content/docs/development/crds/carto.run_deliverables.yaml deleted file mode 100644 index b71be5fc1..000000000 --- a/site/content/docs/development/crds/carto.run_deliverables.yaml +++ /dev/null @@ -1,265 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Deliverable -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # Name of the parameter. Should match a blueprint or - # template parameter name. - name: - - # Value of the parameter. - value: - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # delivery. - # If that is also not set, Cartographer will use the default - # service account in the deliverable's namespace. - # +optional - serviceAccountName: - - # The location of the source code for the workload. Specify one - # of `spec.source` or `spec.image` - # +optional - source: - - # Source code location in a git repository. - # +optional - git: - ref: - branch: - commit: - tag: - url: - - # OCI Image in a repository, containing the source code to be - # used throughout the supply chain. - # +optional - image: - - # Subpath inside the Git repository or Image to treat as the - # root of the application. Defaults to the root if left empty. - # +optional - subPath: - -# Status conforms to the Kubernetes conventions: -# https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties -# +optional -status: - - # Conditions describing this resource's reconcile state. The top - # level condition is of type `Ready`, and follows these - # Kubernetes conventions: - # https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties - # +optional - conditions: - - # Condition contains details for one aspect of the current - # state of this API Resource. --- This struct is intended - # for direct use as an array at the field path - # .status.conditions. For example, type FooStatus struct{ - # // Represents the observations of a foo's current state. - # // Known .status.conditions.type are: "Available", - # "Progressing", and "Degraded" // +patchMergeKey=type // - # +patchStrategy=merge // +listType=map // +listMapKey=type - # Conditions []metav1.Condition `json:"conditions,omitempty" - # patchStrategy:"merge" patchMergeKey:"type" - # protobuf:"bytes,1,rep,name=conditions"` - # // other fields } - # +optional - - # lastTransitionTime is the last time the condition - # transitioned from one status to another. This should be - # when the underlying condition changed. If that is not - # known, then using the time when the API field changed is - # acceptable. - lastTransitionTime: - - # message is a human readable message indicating details - # about the transition. This may be an empty string. - message: - - # observedGeneration represents the .metadata.generation - # that the condition was set based upon. For instance, if - # .metadata.generation is currently 12, but the - # .status.conditions[x].observedGeneration is 9, the - # condition is out of date with respect to the current state - # of the instance. - # +optional - observedGeneration: - - # reason contains a programmatic identifier indicating the - # reason for the condition's last transition. Producers of - # specific condition types may define expected values and - # meanings for this field, and whether the values are - # considered a guaranteed API. The value should be a - # CamelCase string. This field may not be empty. - reason: - - # status of the condition, one of True, False, Unknown. - status: <[True|False|Unknown]> - - # type of condition in CamelCase or in - # foo.example.com/CamelCase. --- Many .condition.type values - # are consistent across resources like Available, but - # because arbitrary conditions can be useful (see - # .node.status.conditions), the ability to deconflict is - # important. The regex it matches is - # (dns1123SubdomainFmt/)?(qualifiedNameFmt) - type: - - # DeliveryRef is the Delivery resource that was used when this - # status was set. - # +optional - deliveryRef: - apiVersion: - kind: - name: - namespace: - - # ObservedGeneration refers to the metadata.Generation of the - # spec that resulted in the current `status`. - # +optional - observedGeneration: - - # Resources contain references to the objects created by the - # Delivery and the templates used to create them. It also - # contains Inputs and Outputs that were passed between the - # templates as the Delivery was processed. - # +optional - resources: - - # Inputs are references to resources that were used to - # template the object in StampedRef - # +optional - inputs: - - # Name is the name of the resource in the blueprint - # whose output the resource consumes as an input - name: - - # Name is the name of the resource in the blueprint - name: - - # Outputs are values from the object in StampedRef that can - # be consumed by other resources - # +optional - outputs: - - # Digest is a sha256 of the full value of the output - digest: - - # LastTransitionTime is a timestamp of the last time the - # value changed - lastTransitionTime: - - # Name is the output type generated from the resource - # [url, revision, image or config] - name: - - # Preview is a preview of the value of the output - preview: - - # StampedRef is a reference to the object that was created - # by the resource - # +optional - stampedRef: - - # API version of the referent. - # +optional - apiVersion: - - # If referring to a piece of an object instead of an - # entire object, this string should contain a valid - # JSON/Go field access statement, such as - # desiredState.manifest.containers[2]. For example, if the - # object reference is to a container within a pod, this - # would take on a value like: "spec.containers{name}" - # (where "name" refers to the name of the container that - # triggered the event) or if no container name is - # specified "spec.containers[2]" (container with index 2 - # in this pod). This syntax is chosen only to have some - # well-defined way of referencing a part of an object. - # TODO: this design is not final and this field is subject - # to change in the future. - # +optional - fieldPath: - - # Kind of the referent. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - # +optional - kind: - - # Name of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - # +optional - name: - - # Namespace of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - # +optional - namespace: - - # Specific resourceVersion to which this reference is - # made, if any. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - # +optional - resourceVersion: - - # UID of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - # +optional - uid: - - # TemplateRef is a reference to the template used to create - # the object in StampedRef - # +optional - templateRef: - - # API version of the referent. - # +optional - apiVersion: - - # If referring to a piece of an object instead of an - # entire object, this string should contain a valid - # JSON/Go field access statement, such as - # desiredState.manifest.containers[2]. For example, if the - # object reference is to a container within a pod, this - # would take on a value like: "spec.containers{name}" - # (where "name" refers to the name of the container that - # triggered the event) or if no container name is - # specified "spec.containers[2]" (container with index 2 - # in this pod). This syntax is chosen only to have some - # well-defined way of referencing a part of an object. - # TODO: this design is not final and this field is subject - # to change in the future. - # +optional - fieldPath: - - # Kind of the referent. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - # +optional - kind: - - # Name of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - # +optional - name: - - # Namespace of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - # +optional - namespace: - - # Specific resourceVersion to which this reference is - # made, if any. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - # +optional - resourceVersion: - - # UID of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - # +optional - uid: diff --git a/site/content/docs/development/crds/carto.run_runnables.yaml b/site/content/docs/development/crds/carto.run_runnables.yaml deleted file mode 100644 index 11ba47311..000000000 --- a/site/content/docs/development/crds/carto.run_runnables.yaml +++ /dev/null @@ -1,53 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Runnable -metadata: {} -spec: - - # Inputs are key/values providing inputs to the templated object - # created for this runnable. Reference inputs in the template - # using the jsonPath: $(runnable.spec.inputs.)$ - # +optional - inputs: {} - - # RetentionPolicy specifies how many successful and failed runs - # should be retained. Runs older than this (ordered by creation - # time) will be deleted. Setting higher values will increase - # memory footprint. - # +optional - retentionPolicy: - - # MaxFailedRuns is the number of failed runs to retain. - maxFailedRuns: - - # MaxSuccessfulRuns is the number of successful runs to - # retain. - maxSuccessfulRuns: - - # RunTemplateRef identifies the run template used to produce - # resources for this runnable. - runTemplateRef: - kind: - name: - - # Selector refers to an additional object that the template can - # refer to using: $(selected)$. - # +optional - selector: - - # MatchingLabels must match on a single target object, making - # the object available in the template as $(selected)$ - matchingLabels: {} - - # Resource is the GVK that must match the selected object. - resource: - apiVersion: - kind: - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the - # ClusterRunTemplate. - # If not set, Cartographer will use the default service account - # in the runnable's namespace. - # +optional - serviceAccountName: diff --git a/site/content/docs/development/crds/carto.run_workloads.yaml b/site/content/docs/development/crds/carto.run_workloads.yaml deleted file mode 100644 index c93a04e5e..000000000 --- a/site/content/docs/development/crds/carto.run_workloads.yaml +++ /dev/null @@ -1,316 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: {} -spec: - - # Build configuration, for the build resources in the supply - # chain - # +optional - build: - - # Env is an array of environment variables to propagate to - # build resources in the supply chain. See - # https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ - # +optional - env: - - # EnvVar represents an environment variable present in a - # Container. - # +optional - name: - value: - valueFrom: {} - - # Environment variables to be passed to the main container - # running the application. See - # https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ - # +optional - env: - - # EnvVar represents an environment variable present in a - # Container. - # +optional - name: - value: - valueFrom: {} - - # Image refers to a pre-built image in a registry. It is an - # alternative to specifying the location of source code for the - # workload. Specify one of `spec.source` or `spec.image`. - # +optional - image: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # Name of the parameter. Should match a blueprint or - # template parameter name. - name: - - # Value of the parameter. - value: - - # Resource constraints for the application. See - # https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - # +optional - resources: - limits: {} - requests: {} - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountName: - - # ServiceClaims to be bound through ServiceBindings. - # +optional - serviceClaims: - - name: - ref: - apiVersion: - kind: - name: - - # The location of the source code for the workload. Specify one - # of `spec.source` or `spec.image` - # +optional - source: - - # Source code location in a git repository. - # +optional - git: - ref: - branch: - commit: - tag: - url: - - # OCI Image in a repository, containing the source code to be - # used throughout the supply chain. - # +optional - image: - - # Subpath inside the Git repository or Image to treat as the - # root of the application. Defaults to the root if left empty. - # +optional - subPath: - -# Status conforms to the Kubernetes conventions: -# https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties -# +optional -status: - - # Conditions describing this resource's reconcile state. The top - # level condition is of type `Ready`, and follows these - # Kubernetes conventions: - # https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties - # +optional - conditions: - - # Condition contains details for one aspect of the current - # state of this API Resource. --- This struct is intended - # for direct use as an array at the field path - # .status.conditions. For example, type FooStatus struct{ - # // Represents the observations of a foo's current state. - # // Known .status.conditions.type are: "Available", - # "Progressing", and "Degraded" // +patchMergeKey=type // - # +patchStrategy=merge // +listType=map // +listMapKey=type - # Conditions []metav1.Condition `json:"conditions,omitempty" - # patchStrategy:"merge" patchMergeKey:"type" - # protobuf:"bytes,1,rep,name=conditions"` - # // other fields } - # +optional - - # lastTransitionTime is the last time the condition - # transitioned from one status to another. This should be - # when the underlying condition changed. If that is not - # known, then using the time when the API field changed is - # acceptable. - lastTransitionTime: - - # message is a human readable message indicating details - # about the transition. This may be an empty string. - message: - - # observedGeneration represents the .metadata.generation - # that the condition was set based upon. For instance, if - # .metadata.generation is currently 12, but the - # .status.conditions[x].observedGeneration is 9, the - # condition is out of date with respect to the current state - # of the instance. - # +optional - observedGeneration: - - # reason contains a programmatic identifier indicating the - # reason for the condition's last transition. Producers of - # specific condition types may define expected values and - # meanings for this field, and whether the values are - # considered a guaranteed API. The value should be a - # CamelCase string. This field may not be empty. - reason: - - # status of the condition, one of True, False, Unknown. - status: <[True|False|Unknown]> - - # type of condition in CamelCase or in - # foo.example.com/CamelCase. --- Many .condition.type values - # are consistent across resources like Available, but - # because arbitrary conditions can be useful (see - # .node.status.conditions), the ability to deconflict is - # important. The regex it matches is - # (dns1123SubdomainFmt/)?(qualifiedNameFmt) - type: - - # ObservedGeneration refers to the metadata.Generation of the - # spec that resulted in the current `status`. - # +optional - observedGeneration: - - # Resources contain references to the objects created by the - # Supply Chain and the templates used to create them. It also - # contains Inputs and Outputs that were passed between the - # templates as the Supply Chain was processed. - # +optional - resources: - - # Inputs are references to resources that were used to - # template the object in StampedRef - # +optional - inputs: - - # Name is the name of the resource in the blueprint - # whose output the resource consumes as an input - name: - - # Name is the name of the resource in the blueprint - name: - - # Outputs are values from the object in StampedRef that can - # be consumed by other resources - # +optional - outputs: - - # Digest is a sha256 of the full value of the output - digest: - - # LastTransitionTime is a timestamp of the last time the - # value changed - lastTransitionTime: - - # Name is the output type generated from the resource - # [url, revision, image or config] - name: - - # Preview is a preview of the value of the output - preview: - - # StampedRef is a reference to the object that was created - # by the resource - # +optional - stampedRef: - - # API version of the referent. - # +optional - apiVersion: - - # If referring to a piece of an object instead of an - # entire object, this string should contain a valid - # JSON/Go field access statement, such as - # desiredState.manifest.containers[2]. For example, if the - # object reference is to a container within a pod, this - # would take on a value like: "spec.containers{name}" - # (where "name" refers to the name of the container that - # triggered the event) or if no container name is - # specified "spec.containers[2]" (container with index 2 - # in this pod). This syntax is chosen only to have some - # well-defined way of referencing a part of an object. - # TODO: this design is not final and this field is subject - # to change in the future. - # +optional - fieldPath: - - # Kind of the referent. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - # +optional - kind: - - # Name of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - # +optional - name: - - # Namespace of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - # +optional - namespace: - - # Specific resourceVersion to which this reference is - # made, if any. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - # +optional - resourceVersion: - - # UID of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - # +optional - uid: - - # TemplateRef is a reference to the template used to create - # the object in StampedRef - # +optional - templateRef: - - # API version of the referent. - # +optional - apiVersion: - - # If referring to a piece of an object instead of an - # entire object, this string should contain a valid - # JSON/Go field access statement, such as - # desiredState.manifest.containers[2]. For example, if the - # object reference is to a container within a pod, this - # would take on a value like: "spec.containers{name}" - # (where "name" refers to the name of the container that - # triggered the event) or if no container name is - # specified "spec.containers[2]" (container with index 2 - # in this pod). This syntax is chosen only to have some - # well-defined way of referencing a part of an object. - # TODO: this design is not final and this field is subject - # to change in the future. - # +optional - fieldPath: - - # Kind of the referent. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - # +optional - kind: - - # Name of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - # +optional - name: - - # Namespace of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - # +optional - namespace: - - # Specific resourceVersion to which this reference is - # made, if any. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - # +optional - resourceVersion: - - # UID of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - # +optional - uid: - - # SupplyChainRef is the Supply Chain resource that was used when - # this status was set. - # +optional - supplyChainRef: - apiVersion: - kind: - name: - namespace: diff --git a/site/content/docs/development/examples.md b/site/content/docs/development/examples.md deleted file mode 100644 index def4fdcff..000000000 --- a/site/content/docs/development/examples.md +++ /dev/null @@ -1,5 +0,0 @@ -# Examples - -Check out the [examples directory] on our repository. - -[examples directory]: https://github.com/vmware-tanzu/cartographer/tree/main/examples diff --git a/site/content/docs/development/img/blueprint.svg b/site/content/docs/development/img/blueprint.svg deleted file mode 100644 index aa2b742f0..000000000 --- a/site/content/docs/development/img/blueprint.svg +++ /dev/null @@ -1,503 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/development/img/delivery.jpg b/site/content/docs/development/img/delivery.jpg deleted file mode 100644 index 220bd0dad..000000000 Binary files a/site/content/docs/development/img/delivery.jpg and /dev/null differ diff --git a/site/content/docs/development/img/generic.jpg b/site/content/docs/development/img/generic.jpg deleted file mode 100644 index 80349bfe8..000000000 Binary files a/site/content/docs/development/img/generic.jpg and /dev/null differ diff --git a/site/content/docs/development/img/gitops.jpg b/site/content/docs/development/img/gitops.jpg deleted file mode 100644 index 47b9171ee..000000000 Binary files a/site/content/docs/development/img/gitops.jpg and /dev/null differ diff --git a/site/content/docs/development/img/multi-cluster.jpg b/site/content/docs/development/img/multi-cluster.jpg deleted file mode 100644 index f15fedfd6..000000000 Binary files a/site/content/docs/development/img/multi-cluster.jpg and /dev/null differ diff --git a/site/content/docs/development/img/owner.svg b/site/content/docs/development/img/owner.svg deleted file mode 100644 index cc7480488..000000000 --- a/site/content/docs/development/img/owner.svg +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/development/img/ownership-flow.png b/site/content/docs/development/img/ownership-flow.png deleted file mode 100644 index f74cb3cfa..000000000 Binary files a/site/content/docs/development/img/ownership-flow.png and /dev/null differ diff --git a/site/content/docs/development/img/realize.jpg b/site/content/docs/development/img/realize.jpg deleted file mode 100644 index f1904475c..000000000 Binary files a/site/content/docs/development/img/realize.jpg and /dev/null differ diff --git a/site/content/docs/development/img/runnable/clusterruntemplate.svg b/site/content/docs/development/img/runnable/clusterruntemplate.svg deleted file mode 100644 index 074bee4a8..000000000 --- a/site/content/docs/development/img/runnable/clusterruntemplate.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/development/img/runnable/runnable-new.jpg b/site/content/docs/development/img/runnable/runnable-new.jpg deleted file mode 100644 index 283eaea86..000000000 Binary files a/site/content/docs/development/img/runnable/runnable-new.jpg and /dev/null differ diff --git a/site/content/docs/development/img/runnable/runnable-outline.svg b/site/content/docs/development/img/runnable/runnable-outline.svg deleted file mode 100644 index 6cd268939..000000000 --- a/site/content/docs/development/img/runnable/runnable-outline.svg +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/development/img/runnable/runnable-realize-new.jpg b/site/content/docs/development/img/runnable/runnable-realize-new.jpg deleted file mode 100644 index 04c7f1640..000000000 Binary files a/site/content/docs/development/img/runnable/runnable-realize-new.jpg and /dev/null differ diff --git a/site/content/docs/development/img/runnable/runnable-supplychain-new.jpg b/site/content/docs/development/img/runnable/runnable-supplychain-new.jpg deleted file mode 100644 index 3d7fd60aa..000000000 Binary files a/site/content/docs/development/img/runnable/runnable-supplychain-new.jpg and /dev/null differ diff --git a/site/content/docs/development/img/supplychain.png b/site/content/docs/development/img/supplychain.png deleted file mode 100644 index eb94a98ef..000000000 Binary files a/site/content/docs/development/img/supplychain.png and /dev/null differ diff --git a/site/content/docs/development/img/template.svg b/site/content/docs/development/img/template.svg deleted file mode 100644 index ea904a5ae..000000000 --- a/site/content/docs/development/img/template.svg +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/development/img/tutorials/hello-world-nginx.png b/site/content/docs/development/img/tutorials/hello-world-nginx.png deleted file mode 100644 index 227d9b12c..000000000 Binary files a/site/content/docs/development/img/tutorials/hello-world-nginx.png and /dev/null differ diff --git a/site/content/docs/development/install.md b/site/content/docs/development/install.md deleted file mode 100644 index b3f37cb1b..000000000 --- a/site/content/docs/development/install.md +++ /dev/null @@ -1,49 +0,0 @@ -# Installing Cartographer - -## Prerequisites - -- Kubernetes cluster v1.19+ -- cert-manager, see [cert-manager Installation](https://cert-manager.io/docs/installation/) - -## Install - -1. Apply `cartographer.yaml` - - ```bash - kubectl apply -f https://github.com/vmware-tanzu/cartographer/releases/latest/download/cartographer.yaml - ``` - - Resources in file `cartographer.yaml`: - - ```console - Namespace Name Kind - (cluster) cartographer-cluster-admin ClusterRoleBinding - ^ cartographer-controller-admin ClusterRole - ^ clusterconfigtemplates.carto.run CustomResourceDefinition - ^ clusterdeliveries.carto.run CustomResourceDefinition - ^ clusterdeploymenttemplates.carto.run CustomResourceDefinition - ^ clusterimagetemplates.carto.run CustomResourceDefinition - ^ clusterruntemplates.carto.run CustomResourceDefinition - ^ clustersourcetemplates.carto.run CustomResourceDefinition - ^ clustersupplychains.carto.run CustomResourceDefinition - ^ clustersupplychainvalidator ValidatingWebhookConfiguration - ^ clustertemplates.carto.run CustomResourceDefinition - ^ deliverables.carto.run CustomResourceDefinition - ^ deliveryvalidator ValidatingWebhookConfiguration - ^ runnables.carto.run CustomResourceDefinition - ^ workloads.carto.run CustomResourceDefinition - - cartographer-system cartographer-controller Deployment - ^ cartographer-controller ServiceAccount - ^ cartographer-webhook Certificate - ^ cartographer-webhook Secret - ^ cartographer-webhook Service - ^ selfsigned-issuer Issuer - ``` - -## Uninstall - -1. Delete `cartographer.yaml` - ```bash - kubectl delete -f https://github.com/vmware-tanzu/cartographer/releases/latest/download/cartographer.yaml - ``` diff --git a/site/content/docs/development/multi-cluster.md b/site/content/docs/development/multi-cluster.md deleted file mode 100644 index 2a0c0b227..000000000 --- a/site/content/docs/development/multi-cluster.md +++ /dev/null @@ -1,36 +0,0 @@ -# Multi-Cluster - -## Overview - -It is often desirable to separate build and production environments; this can be achieved with multiple clusters. -Cartographer helps pave a path to production across clusters with -[ClusterSupplyChains](reference/workload.md#clustersupplychain) and -[ClusterDeliveries](reference/deliverable.md#clusterdelivery), leveraging [GitOps](https://www.gitops.tech/). - -A ClusterSupplyChain can be installed into an isolated build cluster to manage the path from source code to Kubernetes -configuration in a Git repository. Meanwhile, a ClusterDelivery can be installed in the production cluster, which will -pick up that configuration from the Git repository to be deployed and tested. This allows for the same artifact to be -promoted through multiple environments to first test/validate and finally run in production. - -## Examples - -### Example PR based flow - -0. Developer commits new source code -1. ClusterSupplyChain in the build cluster generates Kubernetes configuration and commits it to a git repository (i.e. - staging/feature-a) -2. "Staging environment maintainer" opens a PR and merges staging/feature-a into staging -3. ClusterDelivery in the staging cluster picks up the merged PR and deploys the Kubernetes configuration to be tested - and commits it to a git repository (i.e. production/feature-a) -4. "Production environment maintainer" opens a PR and merges production/feature-a into production -5. ClusterDelivery in the production cluster picks up the merged PR and deploys the Kubernetes configuration. - -![Multi-Cluster](../img/multi-cluster.jpg) - -### Basic example without PRs - -- [Supply Chain: Source ➡️ Image ➡️ Git](https://github.com/vmware-tanzu/cartographer/tree/main/examples/gitwriter-sc/README.md) - - This simple ClusterSupplyChain takes source code, builds an image, generates app configuration, and writes it to a - Git repository. -- [Delivery: Git ➡️ App](https://github.com/vmware-tanzu/cartographer/tree/main/examples/basic-delivery/README.md) - - This simple ClusterDelivery picks up app configuration from a Git repository and deploys to the cluster. diff --git a/site/content/docs/development/reference/deliverable.md b/site/content/docs/development/reference/deliverable.md deleted file mode 100644 index 736797cb9..000000000 --- a/site/content/docs/development/reference/deliverable.md +++ /dev/null @@ -1,35 +0,0 @@ -# Deliverable and Delivery Custom Resources - -## Deliverable - -`Deliverable` allows the operator to pass information about the configuration to be applied to the environment to the -delivery. - -{{< crd carto.run_deliverables.yaml >}} - -Notes: - -1. labels serve as a way of indirectly selecting `ClusterDelivery` - -_ref: -[pkg/apis/v1alpha1/deliverable.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/deliverable.go)_ - -## ClusterDelivery - -A `ClusterDelivery` is a cluster-scoped resources that enables application operators to define a continuous delivery -workflow. Delivery is analogous to SupplyChain, in that it specifies a list of resources that are created when requested -by the developer. Early resources in the delivery are expected to configure the k8s environment (for example by -deploying an application). Later resources validate the environment is healthy. - -The SupplyChain resources `ClusterSourceTemplates` and `ClusterTemplates` are valid for delivery. Delivery additionally -has the resource `ClusterDeploymentTemplates`. Delivery can cast the values from a `ClusterSourceTemplate` so that they -may be consumed by a `ClusterDeploymentTemplate`. - -`ClusterDeliveries` specify the type of configuration they accept through the `spec.selector` field. `Deliverable`s with -matching `spec.selector` then create a logical delivery. This makes the values in the `Deliverable` available to all of -the resources in the `ClusterDelivery`s `spec.resources`. - -{{< crd carto.run_clusterdeliveries.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_delivery.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_delivery.go)_ diff --git a/site/content/docs/development/reference/gvk.md b/site/content/docs/development/reference/gvk.md deleted file mode 100644 index d72e6905f..000000000 --- a/site/content/docs/development/reference/gvk.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -aliases: - - /docs/development/reference/ ---- - -# GVK - -## Version - -All of the custom resources that Cartographer is working on are being written under `v1alpha1` to indicate that our -first version of it is at the "alpha stability level", and that it's our first iteration on it. - -See -[Versions in CustomResourceDefinitions](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/) - -## Group - -All of our custom resources under the `carto.run` group. - -For instance: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -``` diff --git a/site/content/docs/development/reference/runnable.md b/site/content/docs/development/reference/runnable.md deleted file mode 100644 index 1f090b051..000000000 --- a/site/content/docs/development/reference/runnable.md +++ /dev/null @@ -1,36 +0,0 @@ -# Runnable Custom Resources - -## Runnable - -A `Runnable` object declares the intention of having immutable objects submitted to Kubernetes according to a template ( -via ClusterRunTemplate) whenever any of the inputs passed to it changes. i.e., it allows us to provide a mutable spec -that drives the creation of immutable objects whenever that spec changes. - -{{< crd carto.run_runnables.yaml >}} - -## ClusterRunTemplate - -A `ClusterRunTemplate` defines how an immutable object should be stamped out based on data provided by a `Runnable`. - -{{< crd carto.run_clusterruntemplates.yaml >}} - -ClusterRunTemplate differs from supply chain templates in many aspects: - -- ClusterRunTemplate cannot be referenced directly by a ClusterSupplyChain object (it can only be reference by a - Runnable) - -- `outputs` provide a free-form way of exposing any form of results from what has been run (i.e., submitted by the - Runnable) to the status of the Runnable object (as opposed to typed "source", "image", and "config" from supply - chains) - -- Templating context (values provided to the interpolation) is specific to the Runnable: the runnable object itself and - the object resulting from the selection query. - -- Templated object metadata.name should not be set. differently from ClusterSupplyChain, a Runnable has the semantics of - creating new objects on change, rather than patching. This means that on every input set change, a new name must be - derived. To be sure that a name can always be generated, `metadata.generateName` should be set rather than - `metadata.name`. - -Similarly to other templates, ClusterRunTemplate has a `template` field where data is taken (in this case, from Runnable -and selected objects via `runnable.spec.selector`) and via `$()$` allows one to interpolate such data to form a final -object. diff --git a/site/content/docs/development/reference/template.md b/site/content/docs/development/reference/template.md deleted file mode 100644 index 3b0ca5680..000000000 --- a/site/content/docs/development/reference/template.md +++ /dev/null @@ -1,73 +0,0 @@ -# Template Custom Resources - -## ClusterSourceTemplate - -`ClusterSourceTemplate` indicates how the supply chain could instantiate an object responsible for providing source -code. - -The `ClusterSourceTemplate` requires definition of a `urlPath` and `revisionPath`. `ClusterSourceTemplate` will update -its status to emit `url` and `revision` values, which are reflections of the values at the path on the created objects. -The supply chain may make these values available to other resources. - -{{< crd carto.run_clustersourcetemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_source_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_source_template.go)_ - -## ClusterImageTemplate - -`ClusterImageTemplate` instructs how the supply chain should instantiate an object responsible for supplying container -images, for instance, one that takes source code, builds a container image out of it. - -The `ClusterImageTemplate` requires definition of an `imagePath`. `ClusterImageTemplate` will update its status to emit -an `image` value, which is a reflection of the value at the path on the created object. The supply chain may make this -value available to other resources. - -{{< crd carto.run_clusterimagetemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_image_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_image_template.go)_ - -## ClusterConfigTemplate - -Instructs the supply chain how to instantiate a Kubernetes object that knows how to make Kubernetes configurations -available to further resources in the chain. - -The `ClusterConfigTemplate` requires definition of a `configPath`. `ClusterConfigTemplate` will update its status to -emit a `config` value, which is a reflection of the value at the path on the created object. The supply chain may make -this value available to other resources. - -{{< crd carto.run_clusterconfigtemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_config_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_config_template.go)_ - -## ClusterDeploymentTemplate - -A `ClusterDeploymentTemplate` indicates how the delivery should configure the environment (namespace/cluster). - -The `ClusterDeploymentTemplate` consumes configuration from the `deployment` values provided by the `ClusterDelivery`. -The `ClusterDeploymentTemplate` outputs these same values. The `ClusterDeploymentTemplate` is able to consume additional -configuration from the `sources` provided by the `ClusterDelivery`. - -`ClusterDeploymentTemplate` must specify criteria to determine whether the templated object has successfully completed -its role in configuring the environment. Once the criteria are met, the `ClusterDeploymentTemplate` will output the -`deployment` values. The criteria may be specified in `spec.observedMatches` or in `spec.observedCompletion`. - -{{< crd carto.run_clusterdeploymenttemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_deployment_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_deployment_template.go)_ - -## ClusterTemplate - -A `ClusterTemplate` instructs the supply chain to instantiate a Kubernetes object that has no outputs to be supplied to -other objects in the chain, for instance, a resource that deploys a container image that has been built by other -ancestor resources. - -The `ClusterTemplate` does not emit values to the supply chain. - -{{< crd carto.run_clustertemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_template.go)_ diff --git a/site/content/docs/development/reference/workload.md b/site/content/docs/development/reference/workload.md deleted file mode 100644 index 874bfa31a..000000000 --- a/site/content/docs/development/reference/workload.md +++ /dev/null @@ -1,31 +0,0 @@ -# Workload and Supply Chain Custom Resources - -## Workload - -`Workload` allows the developer to pass information about the app to be delivered through the supply chain. - -{{< crd carto.run_workloads.yaml >}} - -Notes: - -1. labels serve as a way of indirectly selecting `ClusterSupplyChain` - `Workload`s without labels that match a - `ClusterSupplyChain`'s `spec.selector` won't be reconciled and will stay in an `Errored` state. -2. `spec.image` is useful for enabling workflows that are not based on building the container image from within the - supplychain, but outside. - -_ref: -[pkg/apis/v1alpha1/workload.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/workload.go)_ - -## ClusterSupplyChain - -With a `ClusterSupplyChain`, app operators describe which "shape of applications" they deal with (via `spec.selector`), -and what series of resources are responsible for creating an artifact that delivers it (via `spec.resources`). - -Those `Workload`s that match `spec.selector` then go through the resources specified in `spec.resources`. - -A resource can emit values, which the supply chain can make available to other resources. - -{{< crd carto.run_clustersupplychains.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_supply_chain.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_supply_chain.go)_ diff --git a/site/content/docs/development/runnable/architecture.md b/site/content/docs/development/runnable/architecture.md deleted file mode 100644 index 7d111459a..000000000 --- a/site/content/docs/development/runnable/architecture.md +++ /dev/null @@ -1,98 +0,0 @@ -# Architecture and Concepts - -## Overview - -Runnable is a component of Cartographer. The `Runnable` CRD provides an intermediate layer to update immutable -resources. For example, Tekton does not allow updating TaskRuns and PipelineRuns, so we'll update Runnable to test new -commits. - -## Concepts - -[comment]: <> (### Edge vs level-driven triggers) [comment]: <> (TODO) - -### ClusterRunTemplate - -With the addition of Runnable, there is a new template, `ClusterRunTemplate`. A `ClusterRunTemplate` will _always_ -create resources (i.e. `kubectl create`). - -ClusterRunTemplate consists of: - -- The Kubernetes resource yaml as `spec.template` -- **Output paths** which tell Cartographer where to find the output of the Kubernetes resource - - The outputs will be added to `runnable.status.outputs` - -{{< figure src="../../img/runnable/clusterruntemplate.svg" alt="Template" width="400px" >}} - -### Runnable - -Runnables consist of: - -- **RunTemplateRef**: a reference to a `ClusterRunTemplate` which contains the yaml of the immutable resource to be - created -- **Selector**: used to dynamically discover a resource that is needed in the `ClusterRunTemplate`. The matching - resource is available in the template data as `selected`. -- **Inputs**: arbitrary key, value pairs that are passed along to the `ClusterRunTemplate`. - -{{< figure src="../../img/runnable/runnable-outline.svg" alt="Runnable" width="400px" >}} - -### Template Data - -See [Template Data](../../templating#template-data) for templating in Cartographer. - -The ClusterRunTemplate is provided a data structure that contains: - -- runnable -- selected - -#### Runnable - -The entire Runnable resource is available for retrieving values. To use a Runnable value, use the format: - -- **Simple template**: `$(runnable..(...))$` -- **ytt**: not currently supported, see [issue](https://github.com/vmware-tanzu/cartographer/issues/214) - -**Runnable Examples** - -| Simple template | ytt | -| ---------------------------- | --- | -| `$(runnable.metadata.name)$` | N/A | -| `$(runnable.spec.inputs)$` | N/A | - -#### Selected - -The entire selected resource is available for retrieving values. To use selected value, use the format: - -- **Simple template**: `$(selected..(...))$` -- **ytt**: not currently supported, see [issue](https://github.com/vmware-tanzu/cartographer/issues/214) - -**Selected Examples** - -| Simple template | ytt | -| ---------------------------- | --- | -| `$(selected.metadata.name)$` | N/A | - -## Theory of Operation - -When Cartographer reconciles a Runnable, the resource in the specified `ClusterRunTemplate` is applied: - -1. **Resolve Selector**: attempt to find a resource that matches the selector -2. **Generate and apply resource spec**: Apply the result of interpolating `spec.template` in the `ClusterRunTemplate`, - **selected**, and the **runnable spec**. -3. **Retrieve Output**: The output to use is specified in the **template output path** - 1. Get the output from the most recently created resource, where - `status.conditions[?(@.type=="Succeeded")].status == True`. - 2. Store the output in `runnable.status.outputs`. - -![Realize](../../img/runnable/runnable-realize-new.jpg) - - - -## Runnable In Action - -![Runnable](../../img/runnable/runnable-new.jpg) - -### Using Runnable with a Supply Chain - -![Runnable-SupplyChain](../../img/runnable/runnable-supplychain-new.jpg) - -To see an example of the rest of the supply chain, see [ClusterSupplyChain](../architecture#clustersupplychain). diff --git a/site/content/docs/development/style-guide.md b/site/content/docs/development/style-guide.md deleted file mode 100644 index eb96b0d15..000000000 --- a/site/content/docs/development/style-guide.md +++ /dev/null @@ -1,392 +0,0 @@ -_This style guide is adapted from the -[Velero Style Guide](https://github.com/vmware-tanzu/velero/blob/main/site/content/docs/v1.6/style-guide.md)._ - -This page outlines writing style guidelines for the Cartographer documentation and you should use this page as a -reference you write or edit content. Note that these are guidelines, not rules. Use your best judgment as you write -documentation, and feel free to propose changes to these guidelines. Changes to the style guide are made by the -Cartographer maintainers as a group. To propose a change or addition create an issue/PR. - -## Content best practices - -### Use present tense - -{{< table caption="Do and Don't - Use present tense" >}} - -| Do | Don't | -| ------------------------------ | -------------------------------- | -| This `command` starts a proxy. | This command will start a proxy. | - -{{< /table >}} - -Exception: Use future or past tense if it is required to convey the correct meaning. - -### Use active voice - -{{< table caption="Do and Don't - Use active voice" >}} - -| Do | Don't | -| ------------------------------------------ | ------------------------------------------------ | -| You can explore the API using a browser. | The API can be explored using a browser. | -| The YAML file specifies the replica count. | The replica count is specified in the YAML file. | - -{{< /table >}} - -Exception: Use passive voice if active voice leads to an awkward sentence construction. - -### Use simple and direct language - -Use simple and direct language. Avoid using unnecessary phrases, such as saying "please." - -{{< table caption="Do and Don't - Use simple and direct language" >}} - -| Do | Don't | -| --------------------------- | -------------------------------------------- | -| To create a ReplicaSet, ... | In order to create a ReplicaSet, ... | -| See the configuration file. | Please see the configuration file. | -| View the Pods. | With this next command, we'll view the Pods. | - -{{< /table >}} - -### Address the reader as "you" - -{{< table caption="Do and Don't - Addressing the reader" >}} - -| Do | Don't | -| --------------------------------------- | --------------------------------------- | -| You can create a Deployment by ... | We'll create a Deployment by ... | -| In the preceding output, you can see... | In the preceding output, we can see ... | - -{{< /table >}} - -### Avoid Latin phrases - -Prefer English terms over Latin abbreviations. - -{{< table caption="Do and Don't - Avoid Latin phrases" >}} - -| Do | Don't | -| ---------------- | --------- | -| For example, ... | e.g., ... | -| That is, ... | i.e., ... | - -{{< /table >}} - -Exception: Use "etc." for et cetera. - -## Patterns to avoid - -### Avoid using "we" - -Using "we" in a sentence can be confusing, because the reader might not know whether they're part of the "we" you're -describing. - -{{< table caption="Do and Don't - Avoid using we" >}} - -| Do | Don't | -| ----------------------------------------- | ----------------------------------------------- | -| Version 1.4 includes ... | In version 1.4, we have added ... | -| Kubernetes provides a new feature for ... | We provide a new feature ... | -| This page teaches you how to use Pods. | In this page, we are going to learn about Pods. | - -{{< /table >}} - -### Avoid jargon and idioms - -Many readers speak English as a second language. Avoid jargon and idioms to help them understand better. - -{{< table caption="Do and Don't - Avoid jargon and idioms" >}} - -| Do | Don't | -| --------------------- | ---------------------- | -| Internally, ... | Under the hood, ... | -| Create a new cluster. | Turn up a new cluster. | - -{{< /table >}} - -### Avoid statements about the future or that will soon be out of date - -Avoid making promises or giving hints about the future. If you need to talk about a beta feature, put the text under a -heading that identifies it as beta information. - -Also avoid words like “recently”, "currently" and "new." A feature that is new today might not be considered new in a -few months. - -{{< table caption="Do and Don't - Avoid statements that will soon be out of date" >}} - -| Do | Don't | -| ----------------------------------- | --------------------------------------- | -| In version 1.4, ... | In the current version, ... | -| The Federation feature provides ... | The new Federation feature provides ... | - -{{< /table >}} - -### Language - -This documentation uses U.S. English spelling and grammar. - -## Documentation formatting standards - -### Use camel case for API objects - -When you refer to an API object, use the same uppercase and lowercase letters that are used in the actual object name. -Typically, the names of API objects use [camel case](https://en.wikipedia.org/wiki/Camel_case). - -Don't split the API object name into separate words. For example, use PodTemplateList, not Pod Template List. - -Refer to API objects without saying "object," unless omitting "object" leads to an awkward sentence construction. - -{{< table caption="Do and Don't - Do and Don't - API objects" >}} - -| Do | Don't | -| -------------------------------------------- | -------------------------------------------- | -| The Pod has two containers. | The pod has two containers. | -| The Deployment is responsible for ... | The Deployment object is responsible for ... | -| A PodList is a list of Pods. | A Pod List is a list of pods. | -| The two ContainerPorts ... | The two ContainerPort objects ... | -| The two ContainerStateTerminated objects ... | The two ContainerStateTerminateds ... | - -{{< /table >}} - -### Use angle brackets for placeholders - -Use angle brackets for placeholders. Tell the reader what a placeholder represents. - -1. Display information about a Pod: - - kubectl describe pod -n - - If the pod is in the default namespace, you can omit the '-n' parameter. - -### Use bold for user interface elements - -{{< table caption="Do and Don't - Bold interface elements" >}} - -| Do | Don't | -| ----------------- | --------------- | -| Click **Fork**. | Click "Fork". | -| Select **Other**. | Select "Other". | - -{{< /table >}} - -### Use italics to define or introduce new terms - -{{< table caption="Do and Don't - Use italics for new terms" >}} - -| Do | Don't | -| ------------------------------------------ | -------------------------------------------- | -| A _cluster_ is a set of nodes ... | A "cluster" is a set of nodes ... | -| These components form the _control plane_. | These components form the **control plane**. | - -{{< /table >}} - -### Use code style for filenames, directories, paths, object field names and namespaces - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| -------------------------------------- | ------------------------------------ | -| Open the `envars.yaml` file. | Open the envars.yaml file. | -| Go to the `/docs/tutorials` directory. | Go to the /docs/tutorials directory. | -| Open the `/_data/concepts.yaml` file. | Open the /\_data/concepts.yaml file. | - -{{< /table >}} - -### Use punctuation inside quotes - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| events are recorded with an associated "stage." | events are recorded with an associated "stage". | -| The copy is called a "fork." | The copy is called a "fork". | - -{{< /table >}} - -Exception: When the quoted word is a user input. - -Example: - -- My user ID is “IM47g”. -- Did you try the password “mycatisawesome”? - -## Inline code formatting - -### Use code style for inline code and commands - -For inline code in an HTML document, use the `` tag. In a Markdown document, use the backtick (`` ` ``). - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| The `kubectl run` command creates a Deployment. | The "kubectl run" command creates a Deployment. | -| For declarative management, use `kubectl apply`. | For declarative management, use "kubectl apply". | -| Use single backticks to enclose inline code. For example, `var example = true`. | Use two asterisks (`**`) or an underscore (`_`) to enclose inline code. For example, **var example = true**. | -| Use triple backticks (\`\`\`) before and after a multi-line block of code for fenced code blocks. | Use multi-line blocks of code to create diagrams, flowcharts, or other illustrations. | -| Use meaningful variable names that have a context. | Use variable names such as 'foo','bar', and 'baz' that are not meaningful and lack context. | -| Remove trailing spaces in the code. | Add trailing spaces in the code, where these are important, because a screen reader will read out the spaces as well. | - -{{< /table >}} - -### Starting a sentence with a component tool or component name - -{{< table caption="Do and Don't - Starting a sentence with a component tool or component name" >}} - -| Do | Don't | -| ------------------------------------------------------------------- | --------------------------------------------------------------- | -| The `kubeadm` tool bootstraps and provisions machines in a cluster. | `kubeadm` tool bootstraps and provisions machines in a cluster. | -| The kube-scheduler is the default scheduler for Kubernetes. | kube-scheduler is the default scheduler for Kubernetes. | - -{{< /table >}} - -### Use normal style for string and integer field values - -For field values of type string or integer, use normal style without quotation marks. - -{{< table caption="Do and Don't - Use normal style for string and integer field values" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| Set the value of `imagePullPolicy` to `Always`. | Set the value of `imagePullPolicy` to "Always". | -| Set the value of `image` to `nginx:1.16`. | Set the value of `image` to nginx:1.16. | -| Set the value of the `replicas` field to `2`. | Set the value of the `replicas` field to 2. | - -{{< /table >}} - -## Code snippet formatting - -### Don't include the command prompt - -{{< table caption="Do and Don't - Don't include the command prompt" >}} - -| Do | Don't | -| ---------------- | ------------------ | -| kubectl get pods | $ kubectl get pods | - -{{< /table >}} - -### Separate commands from output - -Verify that the Pod is running on your chosen node: - -``` -kubectl get pods --output=wide -``` - -The output is similar to this: - -``` -NAME READY STATUS RESTARTS AGE IP NODE -nginx 1/1 Running 0 13s 10.200.0.4 worker0 -``` - -## Cartographer word list - -A list of Cartographer-specific terms and words to be used consistently across the site. - -{{< table caption="Cartographer word list" >}} - -| Trem | Usage | -| ------------ | ------------------------------------------------------------------ | -| Kubernetes | Kubernetes should always be capitalized. | -| Docker | Docker should always be capitalized. | -| Cartographer | Cartographer should always be capitalized. | -| VMware | VMware should always be correctly capitalized. | -| On-premises | On-premises or on-prem rather than on-premise or other variations. | -| Backup | Backup rather than back up, back-up or other variations. | -| Plugin | Plugin rather than plug-in or other variations. | -| Allowlist | Use allowlist instead of whitelist. | -| Denylist | Use denylist instead of blacklist. | - -{{< /table >}} - -## Markdown elements - -### Headings - -People accessing this documentation may use a screen reader or other assistive technology (AT). -[Screen readers](https://en.wikipedia.org/wiki/Screen_reader) are linear output devices, they output items on a page one -at a time. If there is a lot of content on a page, you can use headings to give the page an internal structure. A good -page structure helps all readers to easily navigate the page or filter topics of interest. - -{{< table caption="Do and Don't - Headings" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| Include a title on each page or blog post. | Include more than one title headings (#) in a page. | -| Use ordered headings to provide a meaningful high-level outline of your content. | Use headings level 4 through 6, unless it is absolutely necessary. If your content is that detailed, it may need to be broken into separate articles. | -| Use sentence case for headings. For example, **Extend kubectl with plugins** | Use title case for headings. For example, **Extend Kubectl With Plugins** | - -{{< /table >}} - -### Paragraphs - -{{< table caption="Do and Don't - Paragraphs" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------------- | ------------------------------------ | -| Try to keep paragraphs under 6 sentences. | Write long-winded paragraphs. | -| Use three hyphens (`---`) to create a horizontal rule for breaks in paragraph content. | Use horizontal rules for decoration. | - -{{< /table >}} - -### Links - -{{< table caption="Do and Don't - Links" >}} - -| Do | Don't | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| Write hyperlinks that give you context for the content they link to. For example: Certain ports are open on your machines. See [check required ports](#check-required-ports) for more details. | Use ambiguous terms such as “click here”. For example: Certain ports are open on your machines. See [here](#check-required-ports) for more details. | -| Write Markdown-style links: `[link text](URL)`. For example: `[community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA)` and the output is [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA). | Write HTML-style links: `Visit our tutorial!` | - -{{< /table >}} - -### Lists - -Group items in a list that are related to each other and need to appear in a specific order or to indicate a correlation -between multiple items. When a screen reader comes across a list—whether it is an ordered or unordered list—it will be -announced to the user that there is a group of list items. The user can then use the arrow keys to move up and down -between the various items in the list. Website navigation links can also be marked up as list items; after all they are -nothing but a group of related links. - -- End each item in a list with a period if one or more items in the list are complete sentences. For the sake of - consistency, normally either all items or none should be complete sentences. - -- Ordered lists that are part of an incomplete introductory sentence can be in lowercase and punctuated as if each item - was a part of the introductory sentence. - -- Use the number one (`1.`) for ordered lists. - -- Use (`+`), (`*`), or (`-`) for unordered lists - be consistent within the same document. - -- Leave a blank line after each list. - -- Indent nested lists with four spaces (for example, ⋅⋅⋅⋅). - -- List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either - four spaces or one tab. - -### Tables - -The semantic purpose of a data table is to present tabular data. Sighted users can quickly scan the table but a screen -reader goes through line by line. A table [caption](https://www.w3schools.com/tags/tag_caption.asp) is used to create a -descriptive title for a data table. Assistive technologies (AT) use the HTML table caption element to identify the table -contents to the user within the page structure. - -If you need to create a table, create the table in markdown and use the table -[Hugo shortcode](https://gohugo.io/content-management/shortcodes/) to include a caption. - -``` -{{}} - -| Parameter | Description | Default | -|:---------|:------------|:------- | -| `timeout` | The timeout for requests | `30s` | -| `logLevel` | The log level for log output | `INFO` | - -{{< /table */>}} - -``` - -**Note:** This shortcode does not support markdown reference-style links. Use inline-style links in tables. See more -information about [markdown link styles](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links). diff --git a/site/content/docs/development/templating.md b/site/content/docs/development/templating.md deleted file mode 100644 index 4ea0d8535..000000000 --- a/site/content/docs/development/templating.md +++ /dev/null @@ -1,234 +0,0 @@ -# Templating - -There are two options for templating in Cartographer, simple templates and ytt: - -## Simple Templates - -Define simple templates in `spec.template` in [Templates](./reference/template) - -Simple templates provide string interpolation in a `$(...)$` tag with -[jsonpath](https://pkg.go.dev/k8s.io/client-go/util/jsonpath) syntax. - -## ytt - -Define [ytt](https://carvel.dev/ytt/) templates in `spec.ytt` in [Templates](./reference/template) - -[ytt](https://carvel.dev/ytt/) is complete YAML aware templating language. - -Use `ytt` when your templates contain complex logic, such as **conditionals** or **looping over collections**. - -## Template Data - -Both options for templating are provided a data structure that contains: - -- owner resource (workload, deliverable) -- inputs, that are specified in the blueprint for the template (sources, images, configs, deployments) -- parameters - -Note: all `ytt` examples assume you have loaded the data module with `#@ load("@ytt:data", "data")`. - -### Owner - -The entire owner resource is available for retrieving values. To use an owner value, use the format: - -- **Simple template**: `$(..(...))$` -- **ytt**: `#@ data.values...(...)` - -#### Owner Examples - -| Simple template | ytt | -| --------------------------------- | -------------------------------------------- | -| `$(workload.metadata.name)$` | `#@ data.values.workload.metadata.name` | -| `$(deliverable.spec.source.url)$` | `#@ data.values.deliverable.spec.source.url` | - -### Inputs - -The template specifies the inputs required in the blueprint. - -You may specify a combination of one or more of these input types: - -| Input type | Accessor | -| ----------- | ----------------------------------------------------------- | -| sources | `sources..url`, `sources..revision` | -| images | `images.` | -| configs | `configs.` | -| deployments | `sources..url`, `sources..revision` | - -Where the `` corresponds to the `spec.resources[].[].name` expected in -the blueprint. - -Specifying inputs in a template: - -- **Simple template**: `$(.(.))$` -- **ytt**: `#@ data.values..(.)` - -#### Inputs Examples - -Given a supply chain where a resource has multiple sources and a config: - -```yaml ---- -spec: - resources: - - name: my-template - sources: - - resource: source-tester - name: tested - - resource: source-original - name: original - configs: - - resource: configurator - name: app-configuration -``` - -They could be used in the template as follows: - -| Simple template | ytt | -| ------------------------------- | ------------------------------------------ | -| `$(sources.original.url)$` | `#@ data.values.sources.original.url` | -| `$(sources.tested.revision)$` | `#@ data.values.sources.tested.revision` | -| `$(configs.app-configuration)$` | `#@ data.values.configs.app-configuration` | - -#### Input Aliases - -If only one input of a given input-type is required, refer to it in the singular and omit the input-name. - -- **Simple template**: `$(.)$` -- **ytt**: `#@ data.values.(.)` - -#### Input Alias Examples - -Given a supply chain where a resource has a single source and a single config: - -```yaml ---- -spec: - resources: - - name: my-template - sources: - - resource: source-original - name: original - configs: - - resource: configurator - name: app-configuration -``` - -They could be used in the template as follows: - -| Simple template | ytt | -| --------------------- | -------------------------------- | -| `$(source.url)$` | `#@ data.values.source.url` | -| `$(source.revision)$` | `#@ data.values.source.revision` | -| `$(config)$` | `#@ data.values.config` | - -### Parameters - -See [Parameter Hierarchy](architecture#parameter-hierarchy) for more information on the precedence of parameters for -owner, blueprint and templates. - -To use a parameter in the template, use the format: - -- **Simple template**: `$(params.)$` -- **ytt**: `data.values.params.` - -#### Parameter Example - -| Simple template | ytt | -| ------------------------- | ------------------------------------ | -| `$(params.image_prefix)$` | `#@ data.values.params.image_prefix` | - -## Complete Examples - -### Simple Template - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - params: - - name: image_prefix - default: projectcartographer/demo- - - imagePath: .status.latestImage - - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: service-account - builder: - kind: ClusterBuilder - name: go-builder - source: - blob: - url: $(sources.source.url)$ - build: - env: $(workload.spec.build.env)$ -``` - -### ytt - -```yaml ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - imagePath: .status.latestImage - params: - - name: serviceAccount - default: default - - name: clusterBuilder - default: default - - name: registry - default: {} - ytt: | - #@ load("@ytt:data", "data") - - #@ def image(): - #@ return "/".join([ - #@ data.values.params.registry.server, - #@ data.values.params.registry.repository, - #@ "-".join([ - #@ data.values.workload.metadata.name, - #@ data.values.workload.metadata.namespace, - #@ ]) - #@ ]) - #@ end - - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: #@ data.values.workload.metadata.name - labels: - app.kubernetes.io/component: build - #@ if/end hasattr(data.values.workload.metadata, "labels") and hasattr(data.values.workload.metadata.labels, "app.kubernetes.io/part-of"): - app.kubernetes.io/part-of: #@ data.values.workload.metadata.labels["app.kubernetes.io/part-of"] - spec: - tag: #@ image() - serviceAccountName: #@ data.values.params.serviceAccount - builder: - kind: ClusterBuilder - name: #@ data.values.params.clusterBuilder - source: - blob: - url: #@ data.values.source.url - #@ if/end hasattr(data.values.workload.spec.source, "subPath"): - subPath: #@ data.values.workload.spec.source.subPath - build: - env: - - name: BP_OCI_SOURCE - value: #@ data.values.source.revision - #@ if hasattr(data.values.workload.spec.build, "env"): - #@ for var in data.values.workload.spec.build.env: - - name: #@ var.name - value: #@ var.value - #@ end - #@ end -``` diff --git a/site/content/docs/development/troubleshooting.md b/site/content/docs/development/troubleshooting.md deleted file mode 100644 index 4cbf3b9f6..000000000 --- a/site/content/docs/development/troubleshooting.md +++ /dev/null @@ -1,140 +0,0 @@ -# Troubleshooting - -## Reading your workload or deliverable status - -Cartographer makes every effort to provide you with useful information in the `status` field of your `workload` or -`deliverable` object. - -To see the status of your workload: - -```bash -kubectl get workload -n -oyaml -``` - -**Note**: We do not recommend `kubectl describe` as it makes statuses harder to read. - -Take a look at the `status:` section for conditions. E.g.: - -```yaml -status: - conditions: - - type: SupplyChainReady - status: True - reason: Ready - - type: ResourcesSubmitted - status: True - reason: Ready - - type: Ready - status: True - reason: Ready -``` - -## Common status conditions - -Cartographer conditions follow the -[Kubernetes API conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties) - -There is a top level condition of `Type: Ready` which can have a `Status` of `Unknown`, `True` or `False`. - -If your workload or deliverable has a `False` or a `Unknown` condition, inspect the conditions for cause. The -`Type: Ready` condition's `Reason` will match that of the sub-condition causing the negative status. - -### Unknown vs. False - -A status of `False` typically means Cartographer can not proceed until user intervention occurs. These are errors in -configuration. - -A status of `Unknown` indicates that resources have not yet resolved. Causes can include network timeouts, long running -processes, and occasionally a misconfiguration that Cartographer cannot itself detect. - -### MissingValueAtPath - -| Type | Status | Occurs In | -| ------------------ | ------------------ | --------------------- | -| ResourcesSubmitted | MissingValueAtPath | Workload, Deliverable | - -This is the most common `Unknown` state. - -```yaml -status: - conditions: - - type: SupplyChainReady - status: True - reason: Ready - - type: ResourcesSubmitted - status: Unknown - reason: MissingValueAtPath - message: - Waiting to read value [.status.latestImage] from resource [images.kpack.io/cool-app] in namespace [default] - - type: Ready - status: Unknown - reason: MissingValueAtPath -``` - -You will see this as part of normal operation, because a [Blueprint Resource](architecture.md/#blueprints) is applied to -your cluster, however the [output path](architecture.md/#templates) is not populated. - -If your `workload` or `deliverable` are taking a long time to become ready, then there might be an issue with the -**resource** or the **output path** - -The `message:` for `ResourcesSubmitted` will help you locate the resource causing issues. - -The most likely cause for this status is that the resource is unable to populate the specified path. Look at the -resource's status to diagnose the cause. - -#### Resolving MissingValueAtPath when the resource is failing: - -First look at the resource itself: - -```bash -kubectl describe images.kpack.io/cool-app -n default -``` - -You will see that the value at path `.status.latestImage` is not populated. Check the status and events of the resource, -consulting the documentation for the specific resource. - -#### Resolving MissingValueAtPath when the path is incorrect: - -Refer to the template specified resource's documentation for the location of the required output. - -For example, given the message - -``` -Waiting to read value [.status.latestImg] from resource [images.kpack.io/cool-app] in namespace [default] -``` - -- Look at the resources status, that's the most likely place you'll find the output you want - -```bash -kubectl get images.kpack.io/cool-app -n default -oyaml` - -... -status: - buildCounter: 5 - conditions: - - lastTransitionTime: "2021-11-09T03:16:54Z" - status: "True" - type: Ready - - lastTransitionTime: "2021-11-09T03:16:54Z" - status: "True" - type: BuilderReady - latestBuildImageGeneration: 2 - latestBuildReason: STACK - latestBuildRef: tanzu-java-web-app-build-5 - latestImage: myrepo.io/tanzu-java-web-app@sha256:a92eafaf8a2e5ec306be44e29c9c5e0696bf2c6517b4627be1580c2d16f2ddb9 - latestStack: io.buildpacks.stacks.bionic - observedGeneration: 2 -``` - -- Change the **output path** of the template to match, E.g: from `.status.latestImg` to `.status.latestImage` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - imagePath: .status.latestImage -``` - -[comment]: <> (## Viewing your supply chain or delivery instances) diff --git a/site/content/docs/development/tutorials/extending-a-supply-chain.md b/site/content/docs/development/tutorials/extending-a-supply-chain.md deleted file mode 100644 index a9cf1fe4b..000000000 --- a/site/content/docs/development/tutorials/extending-a-supply-chain.md +++ /dev/null @@ -1,503 +0,0 @@ -# Extending a Supply Chain (_or_ Multiple Templates in a Supply Chain) - -## Overview - -So far our supply chains have been a bit anemic, single step affairs. In this tutorial we’ll explore two topics: - -- Adding new templates to an existing supply chain -- Passing information from one object created by a template to the template about to create another object - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer and -[kpack](https://buildpacks.io/docs/tools/kpack/) installed. You can find -[Cartographer's installation instructions here](https://github.com/vmware-tanzu/cartographer#installation) and -[kpack's installation instructions can be found here](https://github.com/pivotal/kpack/blob/main/docs/install.md). - -You will also need an image registry for which you have read and write permission. - -Alternatively, you may choose to use the -[./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script to install a kind cluster -with Cartographer, kpack and a local registry. _This script is meant for our end-to-end testing and while we rely on it -working in that role, no user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest example-dependencies -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -### App Operator Steps - -#### Supply Chain - -We’ll start by considering the supply chain from our [“Build Your First Supply Chain"](first-supply-chain.md) tutorial: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supply-chain -spec: - selector: - workload-type: pre-built - - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy -``` - -Let’s think through what we want to change here. We know that we’re going to create a new step, so we’ll need a new -resource. This step is going to build an image, so it will come before the existing step that creates a deployment of -the image. For readability we’ll list the new resource before the current `deploy` resource. We’ll give the resource a -reasonable name. So far our `.spec.resources` will look like this: - - -```yaml - resources: - - name: build-image - templateRef: - kind: ??? - Name: ??? - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy -``` - - -So far we’ve only seen the template kind ClusterTemplate. But now we want to template an object that will pass -information to further templates in the supply chain. Cartographer expects three different types of information to be -passed through a supply chain. There are subsequently three template types that expose information to later resources in -a supply chain: - -- ClusterSourceTemplates expose location of source code -- ClusterImageTemplates expose location of images -- ClusterConfigTemplates expose yaml specification of k8s objects - -(Documentation of these custom resources [can be found here](../reference/template/)) - -In our scenario, we know that we’re going to template some object that will take the location of source code from the -workload, build an image and then we’ll want to share the location of that image with the next object in the supply -chain. As we want to expose the location of an image to the supply chain, we’ll use the ClusterImageTemplate and we’ll -give it a reasonable name. Our supply chain .spec.resources now looks like this: - - -```yaml - resources: - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy -``` - - -There’s one more addition we must make to the resources. While the build-image step will make information available for -consumption, we need to explicitly indicate that the deploy step will consume that information. We’ll do so by adding an -images field to that step. We’ll refer to the resource providing an image and give that value a name by which the -app-deploy template can refer to that value: - - -```yaml - resources: - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy - images: - - resource: build-image - name: built-image -``` - - -Our resources section is looking good. Before we move on to writing the templates, let’s take a moment to think about -our app platform. We previously had just one supply chain that worked for all of our devs that provided prebuilt images. -We’re in the process of adding a supply chain that accepts apps defined in source code. This new supply chain doesn't -also support the prebuilt images; the final deploy step of this supply chain has a dependency on the build-image step. -We need to make three changes: - -1. Give the supply chain a new name. -2. Give the supply chain different selector(s). -3. Change the template reference for the deploy step. - -The name change is straightforward: - -```yaml -metadata: - name: source-code-supply-chain -``` - -The selector change in similarly straightforward: - - -```yaml - selector: - workload-type: source-code -``` - - -Before changing the template reference, let’s take a moment to think about why the deploy step needs a new reference. In -the general case, it is completely fine for 2 supply chains to refer to common templates; that reusability is a feature -of Cartographer. But in this case, we know that the deploy step of our two supply chains have different dependencies. In -our original supply chain the deploy step depended only on the workload values. In our new supply chain we’ve declared -that the deploy step depends on values from the build-image step. This indicates to us that the templates will need to -differ. So we’ll need to write a new deploy template. We’ll refer to it in the supply chain: - - -```yaml - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - ... -``` - - -Finally, we'll need a new service account for this supply chain, one that has permission to create the objects in both -templates. We'll specify a name for that service account now and create it below (after completing our templates). - - -```yaml - serviceAccountRef: - name: cartographer-from-source-sa - namespace: default -``` - - -We can see our final supply chain defined here: - -{{< tutorial supply-chain.yaml >}} - -#### Templates - -Now we’re ready to define our templates. Let’s begin with the template for the deploy step, as we’re familiar with it -already. There’s only one field that will change; previously the image location was defined by the workload. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - containers: - - name: $(workload.metadata.name)$ - image: $(workload.spec.image)$ # <=== No longer the proper source - params: - - name: image-pull-sa-name - default: expected-service-account -``` - -Now the template expects that value to come from a previous step in the supply chain. So we’ll simply replace - - -```yaml - image: $(workload.spec.image)$ -``` - - -with - - -```yaml - image: $(images.built-image.image)$ -``` - - -Let’s break down that syntax. In the supply chain we specified that we were providing an array of images to this -template. So we start with `images`. In the supply chain we further declared that the one image in the array of images -would have the name "built-image", so we continue `images.built-image`. Finally, images provide a single value, an image -location (if we were providing sources, each source would provide both a url and a revision). So we complete the -reference: `images.built-image.image`. - -Finally, we'll give this ClusterTemplate a new name (already specified in the supply chain): - -```yaml -metadata: - name: app-deploy-from-sc-image -``` - -The template for our deploy step is complete: - -{{< tutorial app-deploy-template.yaml >}} - -Now we’re ready to create our new template, `image-builder`. We’re going to rely on kpack, a kubernetes native container -build service. We’ll need to template out a kpack Image object. Much of this will be familiar from the -[Build Your First Supply Chain](../first-supply-chain) tutorial. We’ll have a value (the location of the source code) -that is only known by the application developer. We’ll also have values that must remain unique among templated objects -in the name space, for which we’ll use the name of the workload. And similar to the tutorial on Using Params, we’ll -leverage params to provide a default image registry but allow devs to specify another image registry if they so desire. -Let’s look at the .spec.template field of our ClusterImageTemplate: - - -```yaml - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: $(params.image-pull-sa-name)$ - builder: - kind: ClusterBuilder - name: my-builder - source: - git: - url: $(workload.spec.source.git.url)$ - revision: $(workload.spec.source.git.ref.branch)$ -``` - - -Though learners may not be as familiar with kpack Images as they are with the Deployment resource, there’s nothing novel -here from a Cartographer perspective. - -Since our template leverages 2 params, we’ll provide default values for them: - - -```yaml - params: - - name: image-pull-sa-name - default: expected-service-account - - name: image_prefix - default: 0.0.0.0:5000/example-basic-sc- -``` - - -_For those using using dockerhub, gcr or other registry, substitute the appropriate default value for image_prefix. For -those using the hack script to create a local registry for this tutorial, run the following command to get the ip -address to use in the place of 0.0.0.0:_ - -```shell -$ ./hack/ip.py -``` - -So far, creating our ClusterImageTemplate has been similar to what we’ve done in previous tutorials using the -ClusterTemplate. There’s only one novel step we must do. We must specify what value will be exposed from this template. -Again, we’re using a ClusterImageTemplate and this custom resource requires the specification of an imagePath. This is -the path on the templated object where we will find our desired value. -[The documentation for the kpack Image resource](https://github.com/pivotal/kpack/blob/main/docs/image.md) lets us know -“When an image resource has successfully built with its current configuration, its status will report the up to date -fully qualified built OCI image reference.” We can see this value is in the `.status.latestImage` field. So that is the -path that we put in the ClusterImageTemplate’s `.spec.imagePath`: - - -```yaml - imagePath: .status.latestImage -``` - - -We now have our full object: - -{{< tutorial image-builder-template.yaml >}} - -#### Service Account - -We now have our two templates. It's time to create the service account that will give Cartographer permission to create -the objects in the templates (a deployment and a kpack image). In the default namespace (because that's where we -declared it would be in the supply chain) we create: - -{{< tutorial cartographer-service-account.yaml >}} - -#### kpack Dependencies - -From Cartographer's perspective, we've completed our work as app operators. We've created our templates, our supply -chain and our service account. When app devs create workloads, Cartographer will happily begin creating objects. But -before we switch over to the app dev role, we have to consider the objects that we're creating and whether they have any -dependencies. We've already seen how the deployment will rely on a service account existing with imagePullCredentials. -Similarly, our kpack image relies on both a service account and on other kpack resources having been installed in the -cluster. - -This isn’t a tutorial on kpack, so we’ll quickly specify objects below. Learners interested in exploring kpack should -[read more here](https://github.com/pivotal/kpack/blob/main/docs/tutorial.md). - -{{< tutorial kpack-boilerplate.yaml >}} - -{{< tutorial registry-service-account.yaml >}} - -- Note that the ClusterBuilder object has a placeholder value in the `.spec.tag` field. Either a local registry ip - address or another image registry specification should be put here. - -- Note that the registry-credentials secret has placeholder values for the `.stringData` field. If learners are using - the local registry from the hack script, use the ./hack/ip.py ip address in place of the 0.0.0.0 address (the username - and password will then be correct). Otherwise learners should put the appropriate credentials for their image - registry. - -Now we've completed our work as app operators. Let’s step into our role as app devs. - -### App Dev Steps - -As is appropriate for an app platform, the complication undertaken by the app operators above is hidden from the app -devs. As devs, all we need to know is that our request has been answered: we can now submit a workload that specifies -the location of our source code and it will be built and deployed. Let’s do that! - -For our app we’ve used a copy of one of the many paketo buildpack sample apps. -[That copy resides here](https://github.com/waciumawanjohi/demo-hello-world) - -_Note: Copying a paketo sample app ensures that our app will be built. Troubleshooting kpack builds of an arbitrary -application is far outside the scope of this tutorial. The sample apps -[can be found here](https://github.com/paketo-buildpacks/samples). Note that for expediency we only installed kpack with -the ability to build golang and java applications. Users should feel free to install additional paketo buildpacks if -desired._ - -Let’s specify the location of our source code in the workload's spec: - -```yaml -spec: - source: - git: - ref: - branch: main - url: https://github.com/waciumawanjohi/demo-hello-world -``` - -We have a new type of app now; it is no longer pre-built. Let’s change our workload type label and match it to the new -supply chain's selector. - - -```yaml - workload-type: source-code -``` - - -And as app devs, we're done! Let’s look at the complete workload: - -{{< tutorial workload.yaml >}} - -## Observe - -### Workload - -Looking at the workload, we can see that it resolves to a healthy state: - -```shell -$ kubectl get -o yaml workload hello-again -``` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - ... - name: hello-again -status: - conditions: - ... - - lastTransitionTime: ... - message: "" - reason: Ready - status: "True" - type: Ready -``` - -### Stamped Objects - -All the objects that we templated out exist. - -```shell -$ kubectl get -o yaml image.kpack.io hello-again -``` - -```yaml -apiVersion: kpack.io/v1alpha2 -kind: Image -metadata: - ... - name: hello-again -spec: ... -status: - buildCacheName: hello-again-cache - buildCounter: 1 - conditions: - - lastTransitionTime: ... - status: "True" - type: Ready - - lastTransitionTime: ... - status: "True" - type: BuilderReady - latestBuildImageGeneration: 1 - latestBuildReason: CONFIG - latestBuildRef: hello-again-build-1 - latestImage: 0.0.0.0:5000/example-basic-sc-hello-again@sha256:abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12 - latestStack: ... - observedGeneration: 1 -``` - -```shell -$ kubectl get -o yaml deployment hello-again-deployment -``` - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - ... - name: hello-again-deployment -spec: - ... - template: - ... - spec: - containers: - - image: 0.0.0.0:5000/example-basic-sc-hello-again@sha256:abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12 - ... - ... -status: - availableReplicas: 3 - conditions: - - status: "True" - type: Available - ... - - status: "True" - type: Progressing - ... - ... -``` - -The conditions of all of these objects are healthy. In addition, we can see where the kpack image's -`.status.latestImage` field has been used by the deployment's `spec.template.spec.containers[0].image` field. - -## Wrap Up - -Another tutorial under your belt; you’re well on your way to building a robust app platform for your organization! In -this tutorial you learned: - -- How to expose a value from a template to other steps in a supply chain -- How to consume an earlier exposed value in a template -- How to add to a supply chain -- How to create supply chains with different behavior/templates diff --git a/site/content/docs/development/tutorials/files/extending-a-supply-chain/app-deploy-template.yaml b/site/content/docs/development/tutorials/files/extending-a-supply-chain/app-deploy-template.yaml deleted file mode 100644 index 149d62b6e..000000000 --- a/site/content/docs/development/tutorials/files/extending-a-supply-chain/app-deploy-template.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy-from-sc-image -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - containers: - - name: $(workload.metadata.name)$ - image: $(images.built-image.image)$ - params: - - name: image-pull-sa-name - default: expected-service-account diff --git a/site/content/docs/development/tutorials/files/extending-a-supply-chain/cartographer-service-account.yaml b/site/content/docs/development/tutorials/files/extending-a-supply-chain/cartographer-service-account.yaml deleted file mode 100644 index 0a93f6e17..000000000 --- a/site/content/docs/development/tutorials/files/extending-a-supply-chain/cartographer-service-account.yaml +++ /dev/null @@ -1,69 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: deploy-image-role -rules: - - apiGroups: - - apps - resources: - - deployments - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-deploy-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: deploy-image-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: build-image-role -rules: - - apiGroups: - - kpack.io - resources: - - images - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-build-image-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: build-image-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa diff --git a/site/content/docs/development/tutorials/files/extending-a-supply-chain/image-builder-template.yaml b/site/content/docs/development/tutorials/files/extending-a-supply-chain/image-builder-template.yaml deleted file mode 100644 index ca0ffa77d..000000000 --- a/site/content/docs/development/tutorials/files/extending-a-supply-chain/image-builder-template.yaml +++ /dev/null @@ -1,27 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: image-builder -spec: - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: $(params.image-pull-sa-name)$ - builder: - kind: ClusterBuilder - name: my-builder - source: - git: - url: $(workload.spec.source.git.url)$ - revision: $(workload.spec.source.git.ref.branch)$ - params: - - name: image-pull-sa-name - default: expected-service-account - - name: image_prefix - default: 0.0.0.0:5000/example-basic-sc- # <=== Change to proper image registry - imagePath: .status.latestImage diff --git a/site/content/docs/development/tutorials/files/extending-a-supply-chain/kpack-boilerplate.yaml b/site/content/docs/development/tutorials/files/extending-a-supply-chain/kpack-boilerplate.yaml deleted file mode 100644 index 09dbf91eb..000000000 --- a/site/content/docs/development/tutorials/files/extending-a-supply-chain/kpack-boilerplate.yaml +++ /dev/null @@ -1,43 +0,0 @@ ---- -apiVersion: kpack.io/v1alpha1 -kind: ClusterStore -metadata: - name: default -spec: - sources: - - image: gcr.io/paketo-buildpacks/java - - image: gcr.io/paketo-buildpacks/go - ---- -apiVersion: kpack.io/v1alpha1 -kind: ClusterStack -metadata: - name: base -spec: - id: "io.buildpacks.stacks.bionic" - buildImage: - image: "paketobuildpacks/build:base-cnb" - runImage: - image: "paketobuildpacks/run:base-cnb" - ---- -apiVersion: kpack.io/v1alpha2 -kind: ClusterBuilder -metadata: - name: my-builder -spec: - serviceAccountRef: - name: expected-service-account - namespace: default - tag: "0.0.0.0:5000/go-java-builder" # <=== Change to proper image registry - stack: - name: base - kind: ClusterStack - store: - name: default - kind: ClusterStore - order: - - group: - - id: paketo-buildpacks/java - - group: - - id: paketo-buildpacks/go diff --git a/site/content/docs/development/tutorials/files/extending-a-supply-chain/registry-service-account.yaml b/site/content/docs/development/tutorials/files/extending-a-supply-chain/registry-service-account.yaml deleted file mode 100644 index 657747918..000000000 --- a/site/content/docs/development/tutorials/files/extending-a-supply-chain/registry-service-account.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: registry-credentials -type: kubernetes.io/dockerconfigjson -stringData: - .dockerconfigjson: '{"auths": {"0.0.0.0:5000": {"username": "admin", "password": "admin"}}}' # <=== Change to proper image registry - ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: expected-service-account -secrets: - - name: registry-credentials -imagePullSecrets: - - name: registry-credentials diff --git a/site/content/docs/development/tutorials/files/extending-a-supply-chain/supply-chain.yaml b/site/content/docs/development/tutorials/files/extending-a-supply-chain/supply-chain.yaml deleted file mode 100644 index 352c3b886..000000000 --- a/site/content/docs/development/tutorials/files/extending-a-supply-chain/supply-chain.yaml +++ /dev/null @@ -1,25 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: source-code-supply-chain -spec: - selector: - workload-type: source-code - - resources: - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - images: - - resource: build-image - name: built-image - - serviceAccountRef: - name: cartographer-from-source-sa - namespace: default diff --git a/site/content/docs/development/tutorials/files/extending-a-supply-chain/workload.yaml b/site/content/docs/development/tutorials/files/extending-a-supply-chain/workload.yaml deleted file mode 100644 index f1e09410b..000000000 --- a/site/content/docs/development/tutorials/files/extending-a-supply-chain/workload.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello-again - labels: - workload-type: source-code -spec: - source: - git: - ref: - branch: main - url: https://github.com/waciumawanjohi/demo-hello-world \ No newline at end of file diff --git a/site/content/docs/development/tutorials/files/first-supply-chain/app-deploy-template.yaml b/site/content/docs/development/tutorials/files/first-supply-chain/app-deploy-template.yaml deleted file mode 100644 index fe93739fd..000000000 --- a/site/content/docs/development/tutorials/files/first-supply-chain/app-deploy-template.yaml +++ /dev/null @@ -1,26 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - containers: - - name: $(workload.metadata.name)$ - image: $(workload.spec.image)$ diff --git a/site/content/docs/development/tutorials/files/first-supply-chain/cartographer-service-account.yaml b/site/content/docs/development/tutorials/files/first-supply-chain/cartographer-service-account.yaml deleted file mode 100644 index 4d8de36c4..000000000 --- a/site/content/docs/development/tutorials/files/first-supply-chain/cartographer-service-account.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cartographer-pre-built-sa - namespace: default diff --git a/site/content/docs/development/tutorials/files/first-supply-chain/deployment-role.yaml b/site/content/docs/development/tutorials/files/first-supply-chain/deployment-role.yaml deleted file mode 100644 index 13793234f..000000000 --- a/site/content/docs/development/tutorials/files/first-supply-chain/deployment-role.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: deploy-image-role -rules: - - apiGroups: - - apps - resources: - - deployments - verbs: - - list - - create - - update - - delete - - patch - - watch - - get diff --git a/site/content/docs/development/tutorials/files/first-supply-chain/role-binding-dep-carto.yaml b/site/content/docs/development/tutorials/files/first-supply-chain/role-binding-dep-carto.yaml deleted file mode 100644 index 7f5f10c7f..000000000 --- a/site/content/docs/development/tutorials/files/first-supply-chain/role-binding-dep-carto.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-prebuilt-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: deploy-image-role -subjects: - - kind: ServiceAccount - name: cartographer-pre-built-sa \ No newline at end of file diff --git a/site/content/docs/development/tutorials/files/first-supply-chain/supply-chain.yaml b/site/content/docs/development/tutorials/files/first-supply-chain/supply-chain.yaml deleted file mode 100644 index a42e5f11b..000000000 --- a/site/content/docs/development/tutorials/files/first-supply-chain/supply-chain.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supply-chain -spec: - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy - - serviceAccountRef: - name: cartographer-pre-built-sa - namespace: default - - selector: - workload-type: pre-built diff --git a/site/content/docs/development/tutorials/files/first-supply-chain/workload-2.yaml b/site/content/docs/development/tutorials/files/first-supply-chain/workload-2.yaml deleted file mode 100644 index a6e9cf006..000000000 --- a/site/content/docs/development/tutorials/files/first-supply-chain/workload-2.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: whale-hello-there - labels: - workload-type: pre-built -spec: - image: docker.io/crccheck/hello-world:latest diff --git a/site/content/docs/development/tutorials/files/first-supply-chain/workload.yaml b/site/content/docs/development/tutorials/files/first-supply-chain/workload.yaml deleted file mode 100644 index 13b8b0582..000000000 --- a/site/content/docs/development/tutorials/files/first-supply-chain/workload.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello - labels: - workload-type: pre-built -spec: - image: docker.io/nginxdemos/hello:latest diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/cartographer-service-account.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/cartographer-service-account.yaml deleted file mode 100644 index f71951d8c..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/cartographer-service-account.yaml +++ /dev/null @@ -1,101 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: deploy-image-role -rules: - - apiGroups: - - apps - resources: - - deployments - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-prebuilt-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: deploy-image-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: build-image-role -rules: - - apiGroups: - - kpack.io - resources: - - images - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-build-image-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: build-image-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: runnable-role -rules: - - apiGroups: - - carto.run - resources: - - runnables - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-runnable-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: runnable-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/cluster-run-template.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/cluster-run-template.yaml deleted file mode 100644 index e45a407d4..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/cluster-run-template.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: - name: md-linting-pipelinerun -spec: - template: - apiVersion: tekton.dev/v1beta1 - kind: PipelineRun - metadata: - generateName: $(runnable.metadata.name)$-pipeline-run- - spec: - pipelineRef: - name: linter-pipeline - params: - - name: repository - value: $(runnable.spec.inputs.repository)$ - - name: revision - value: $(runnable.spec.inputs.revision)$ - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - outputs: - url: spec.params[?(@.name=="repository")].value - revision: spec.params[?(@.name=="revision")].value diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/kpack-boilerplate.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/kpack-boilerplate.yaml deleted file mode 100644 index 09dbf91eb..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/kpack-boilerplate.yaml +++ /dev/null @@ -1,43 +0,0 @@ ---- -apiVersion: kpack.io/v1alpha1 -kind: ClusterStore -metadata: - name: default -spec: - sources: - - image: gcr.io/paketo-buildpacks/java - - image: gcr.io/paketo-buildpacks/go - ---- -apiVersion: kpack.io/v1alpha1 -kind: ClusterStack -metadata: - name: base -spec: - id: "io.buildpacks.stacks.bionic" - buildImage: - image: "paketobuildpacks/build:base-cnb" - runImage: - image: "paketobuildpacks/run:base-cnb" - ---- -apiVersion: kpack.io/v1alpha2 -kind: ClusterBuilder -metadata: - name: my-builder -spec: - serviceAccountRef: - name: expected-service-account - namespace: default - tag: "0.0.0.0:5000/go-java-builder" # <=== Change to proper image registry - stack: - name: base - kind: ClusterStack - store: - name: default - kind: ClusterStore - order: - - group: - - id: paketo-buildpacks/java - - group: - - id: paketo-buildpacks/go diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/pipeline.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/pipeline.yaml deleted file mode 100644 index f921a7e6f..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/pipeline.yaml +++ /dev/null @@ -1,40 +0,0 @@ ---- -apiVersion: tekton.dev/v1beta1 -kind: Pipeline -metadata: - name: linter-pipeline -spec: - params: - - name: repository - type: string - - name: revision - type: string - workspaces: - - name: shared-workspace - tasks: - - name: fetch-repository - taskRef: - name: git-clone - workspaces: - - name: output - workspace: shared-workspace - params: - - name: url - value: $(params.repository) - - name: revision - value: $(params.revision) - - name: subdirectory - value: "" - - name: deleteExisting - value: "true" - - name: md-lint-run #lint mardown - taskRef: - name: markdown-lint - runAfter: - - fetch-repository - workspaces: - - name: shared-workspace - workspace: shared-workspace - params: - - name: args - value: ["."] diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/registry-service-account.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/registry-service-account.yaml deleted file mode 100644 index 9680988e4..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/registry-service-account.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: registry-credentials -type: kubernetes.io/dockerconfigjson -stringData: - .dockerconfigjson: '{"auths": {"0.0.0.0:5000": {"username": "admin", "password": "admin"}}}' # <=== Change to proper image registry - ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: expected-service-account -secrets: - - name: registry-credentials -imagePullSecrets: - - name: registry-credentials diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/runnable-service-account.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/runnable-service-account.yaml deleted file mode 100644 index 3431f8224..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/runnable-service-account.yaml +++ /dev/null @@ -1,37 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: pipeline-run-management-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: testing-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: pipeline-run-management-role -subjects: - - kind: ServiceAccount - name: pipeline-run-management-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: pipeline-run-management-role -rules: - - apiGroups: - - tekton.dev - resources: - - pipelineruns - verbs: - - list - - create - - update - - delete - - patch - - watch - - get diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/source-linter-template.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/source-linter-template.yaml deleted file mode 100644 index ab67b91bb..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/source-linter-template.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: - name: source-linter -spec: - template: - apiVersion: carto.run/v1alpha1 - kind: Runnable - metadata: - name: $(workload.metadata.name)$-linter - spec: - runTemplateRef: - name: md-linting-pipelinerun - inputs: - repository: $(workload.spec.source.git.url)$ - revision: $(workload.spec.source.git.ref.branch)$ - serviceAccountName: pipeline-run-management-sa - urlPath: .status.outputs.url - revisionPath: .status.outputs.revision diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/supply-chain.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/supply-chain.yaml deleted file mode 100644 index a4d533396..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/supply-chain.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: source-code-supply-chain -spec: - selector: - workload-type: source-code - - resources: - - name: lint-source - templateRef: - kind: ClusterSourceTemplate - name: source-linter - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder-from-previous-step - sources: - - resource: lint-source - name: source - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - images: - - resource: build-image - name: built-image - - serviceAccountRef: - name: cartographer-from-source-sa - namespace: default diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/tasks.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/tasks.yaml deleted file mode 100644 index 0d40ef7aa..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/tasks.yaml +++ /dev/null @@ -1,204 +0,0 @@ ---- -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: git-clone - labels: - app.kubernetes.io/version: "0.3" - annotations: - tekton.dev/pipelines.minVersion: "0.21.0" - tekton.dev/categories: Git - tekton.dev/tags: git - tekton.dev/displayName: "git clone" - tekton.dev/platforms: "linux/amd64" -spec: - description: >- - These Tasks are Git tasks to work with repositories used by other tasks - in your Pipeline. - - The git-clone Task will clone a repo from the provided url into the - output Workspace. By default the repo will be cloned into the root of - your Workspace. You can clone into a subdirectory by setting this Task's - subdirectory param. This Task also supports sparse checkouts. To perform - a sparse checkout, pass a list of comma separated directory patterns to - this Task's sparseCheckoutDirectories param. - - workspaces: - - name: output - description: The git repo will be cloned onto the volume backing this workspace - params: - - name: url - description: git url to clone - type: string - - name: revision - description: git revision to checkout (branch, tag, sha, ref…) - type: string - default: "" - - name: refspec - description: (optional) git refspec to fetch before checking out revision - default: "" - - name: submodules - description: defines if the resource should initialize and fetch the submodules - type: string - default: "true" - - name: depth - description: performs a shallow clone where only the most recent commit(s) will be fetched - type: string - default: "1" - - name: sslVerify - description: defines if http.sslVerify should be set to true or false in the global git config - type: string - default: "true" - - name: subdirectory - description: subdirectory inside the "output" workspace to clone the git repo into - type: string - default: "" - - name: sparseCheckoutDirectories - description: defines which directories patterns to match or exclude when performing a sparse checkout - type: string - default: "" - - name: deleteExisting - description: clean out the contents of the repo's destination directory (if it already exists) before trying to clone the repo there - type: string - default: "true" - - name: httpProxy - description: git HTTP proxy server for non-SSL requests - type: string - default: "" - - name: httpsProxy - description: git HTTPS proxy server for SSL requests - type: string - default: "" - - name: noProxy - description: git no proxy - opt out of proxying HTTP/HTTPS requests - type: string - default: "" - - name: verbose - description: log the commands used during execution - type: string - default: "true" - - name: gitInitImage - description: the image used where the git-init binary is - type: string - default: "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.21.0" - results: - - name: commit - description: The precise commit SHA that was fetched by this Task - - name: url - description: The precise URL that was fetched by this Task - steps: - - name: clone - image: $(params.gitInitImage) - env: - - name: PARAM_URL - value: $(params.url) - - name: PARAM_REVISION - value: $(params.revision) - - name: PARAM_REFSPEC - value: $(params.refspec) - - name: PARAM_SUBMODULES - value: $(params.submodules) - - name: PARAM_DEPTH - value: $(params.depth) - - name: PARAM_SSL_VERIFY - value: $(params.sslVerify) - - name: PARAM_SUBDIRECTORY - value: $(params.subdirectory) - - name: PARAM_DELETE_EXISTING - value: $(params.deleteExisting) - - name: PARAM_HTTP_PROXY - value: $(params.httpProxy) - - name: PARAM_HTTPS_PROXY - value: $(params.httpsProxy) - - name: PARAM_NO_PROXY - value: $(params.noProxy) - - name: PARAM_VERBOSE - value: $(params.verbose) - - name: PARAM_SPARSE_CHECKOUT_DIRECTORIES - value: $(params.sparseCheckoutDirectories) - - name: WORKSPACE_OUTPUT_PATH - value: $(workspaces.output.path) - script: | - #!/bin/sh - set -eu -o pipefail - - if [[ "${PARAM_VERBOSE}" == "true" ]] ; then - set -x - fi - - CHECKOUT_DIR="${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}" - - cleandir() { - # Delete any existing contents of the repo directory if it exists. - # - # We don't just "rm -rf $CHECKOUT_DIR" because $CHECKOUT_DIR might be "/" - # or the root of a mounted volume. - if [[ -d "$CHECKOUT_DIR" ]] ; then - # Delete non-hidden files and directories - rm -rf "$CHECKOUT_DIR"/* - # Delete files and directories starting with . but excluding .. - rm -rf "$CHECKOUT_DIR"/.[!.]* - # Delete files and directories starting with .. plus any other character - rm -rf "$CHECKOUT_DIR"/..?* - fi - } - - if [[ "${PARAM_DELETE_EXISTING}" == "true" ]] ; then - cleandir - fi - - test -z "${PARAM_HTTP_PROXY}" || export HTTP_PROXY="${PARAM_HTTP_PROXY}" - test -z "${PARAM_HTTPS_PROXY}" || export HTTPS_PROXY="${PARAM_HTTPS_PROXY}" - test -z "${PARAM_NO_PROXY}" || export NO_PROXY="${PARAM_NO_PROXY}" - - /ko-app/git-init \ - -url "${PARAM_URL}" \ - -revision "${PARAM_REVISION}" \ - -refspec "${PARAM_REFSPEC}" \ - -path "$CHECKOUT_DIR" \ - -sslVerify="${PARAM_SSL_VERIFY}" \ - -submodules="${PARAM_SUBMODULES}" \ - -depth "${PARAM_DEPTH}" \ - -sparseCheckoutDirectories "${PARAM_SPARSE_CHECKOUT_DIRECTORIES}" - cd "$CHECKOUT_DIR" - RESULT_SHA="$(git rev-parse HEAD)" - EXIT_CODE="$?" - if [ "$EXIT_CODE" != 0 ] ; then - exit $EXIT_CODE - fi - # ensure we don't add a trailing newline to the result - echo -n "$RESULT_SHA" > $(results.commit.path) - echo -n "${PARAM_URL}" > $(results.url.path) - ---- -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: markdown-lint - labels: - app.kubernetes.io/version: "0.1" - annotations: - tekton.dev/pipelines.minVersion: "0.12.1" - tekton.dev/categories: Code Quality - tekton.dev/tags: linter - tekton.dev/displayName: "Markdown linter" - tekton.dev/platforms: "linux/amd64" -spec: - description: >- - This task can be used to perform lint check on Markdown files - workspaces: - - name: shared-workspace - description: A workspace that contains the fetched git repository. - params: - - name: args - type: array - description: extra args needs to append - default: ["--help"] - steps: - - name: lint-markdown-files - image: docker.io/markdownlint/markdownlint:0.11.0@sha256:399a199c92f89f42cf3a0a1159bd86ca5cdc293fcfd39f87c0669ddee9767724 #tag: 0.11.0 - workingDir: $(workspaces.shared-workspace.path) - command: - - mdl - args: - - $(params.args) \ No newline at end of file diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/templates.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/templates.yaml deleted file mode 100644 index fb981b70a..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/templates.yaml +++ /dev/null @@ -1,58 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: image-builder-from-previous-step -spec: - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: $(params.image-pull-sa-name)$ - builder: - kind: ClusterBuilder - name: my-builder - source: - git: - url: $(sources.source.url)$ - revision: $(sources.source.revision)$ - params: - - name: image-pull-sa-name - default: expected-service-account - - name: image_prefix - default: 0.0.0.0:5000/example-basic-sc- # <=== Change to proper image registry - imagePath: .status.latestImage - ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy-from-sc-image -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - containers: - - name: $(workload.metadata.name)$ - image: $(images.built-image.image)$ - params: - - name: image-pull-sa-name - default: expected-service-account diff --git a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/workload.yaml b/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/workload.yaml deleted file mode 100644 index f1e09410b..000000000 --- a/site/content/docs/development/tutorials/files/runnable-in-a-supply-chain/workload.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello-again - labels: - workload-type: source-code -spec: - source: - git: - ref: - branch: main - url: https://github.com/waciumawanjohi/demo-hello-world \ No newline at end of file diff --git a/site/content/docs/development/tutorials/files/runnable/cluster-run-template.yaml b/site/content/docs/development/tutorials/files/runnable/cluster-run-template.yaml deleted file mode 100644 index 6a12ef7ff..000000000 --- a/site/content/docs/development/tutorials/files/runnable/cluster-run-template.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: - name: md-linting-pipelinerun -spec: - template: - apiVersion: tekton.dev/v1beta1 - kind: PipelineRun - metadata: - generateName: linter-pipeline-run- - spec: - pipelineRef: - name: linter-pipeline - params: - - name: repository - value: $(runnable.spec.inputs.repository)$ - - name: revision - value: $(runnable.spec.inputs.revision)$ - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - outputs: - lastTransitionTime: .status.conditions[0].lastTransitionTime diff --git a/site/content/docs/development/tutorials/files/runnable/pipeline.yaml b/site/content/docs/development/tutorials/files/runnable/pipeline.yaml deleted file mode 100644 index e8ed9afe4..000000000 --- a/site/content/docs/development/tutorials/files/runnable/pipeline.yaml +++ /dev/null @@ -1,40 +0,0 @@ ---- -apiVersion: tekton.dev/v1beta1 -kind: Pipeline -metadata: - name: linter-pipeline -spec: - params: - - name: repository - type: string - - name: revision - type: string - workspaces: - - name: shared-workspace - tasks: - - name: fetch-repository - taskRef: - name: git-clone - workspaces: - - name: output - workspace: shared-workspace - params: - - name: url - value: $(params.repository) - - name: revision - value: $(params.revision) - - name: subdirectory - value: "" - - name: deleteExisting - value: "true" - - name: md-lint-run #lint markdown - taskRef: - name: markdown-lint - runAfter: - - fetch-repository - workspaces: - - name: shared-workspace - workspace: shared-workspace - params: - - name: args - value: ["."] diff --git a/site/content/docs/development/tutorials/files/runnable/runnable.yaml b/site/content/docs/development/tutorials/files/runnable/runnable.yaml deleted file mode 100644 index 9cdaae94e..000000000 --- a/site/content/docs/development/tutorials/files/runnable/runnable.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Runnable -metadata: - name: linter -spec: - runTemplateRef: - name: md-linting-pipelinerun - inputs: - repository: https://github.com/waciumawanjohi/demo-hello-world - revision: main - serviceAccountName: pipeline-run-management-sa diff --git a/site/content/docs/development/tutorials/files/runnable/service-account.yaml b/site/content/docs/development/tutorials/files/runnable/service-account.yaml deleted file mode 100644 index 3431f8224..000000000 --- a/site/content/docs/development/tutorials/files/runnable/service-account.yaml +++ /dev/null @@ -1,37 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: pipeline-run-management-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: testing-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: pipeline-run-management-role -subjects: - - kind: ServiceAccount - name: pipeline-run-management-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: pipeline-run-management-role -rules: - - apiGroups: - - tekton.dev - resources: - - pipelineruns - verbs: - - list - - create - - update - - delete - - patch - - watch - - get diff --git a/site/content/docs/development/tutorials/files/runnable/tasks.yaml b/site/content/docs/development/tutorials/files/runnable/tasks.yaml deleted file mode 100644 index 0d40ef7aa..000000000 --- a/site/content/docs/development/tutorials/files/runnable/tasks.yaml +++ /dev/null @@ -1,204 +0,0 @@ ---- -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: git-clone - labels: - app.kubernetes.io/version: "0.3" - annotations: - tekton.dev/pipelines.minVersion: "0.21.0" - tekton.dev/categories: Git - tekton.dev/tags: git - tekton.dev/displayName: "git clone" - tekton.dev/platforms: "linux/amd64" -spec: - description: >- - These Tasks are Git tasks to work with repositories used by other tasks - in your Pipeline. - - The git-clone Task will clone a repo from the provided url into the - output Workspace. By default the repo will be cloned into the root of - your Workspace. You can clone into a subdirectory by setting this Task's - subdirectory param. This Task also supports sparse checkouts. To perform - a sparse checkout, pass a list of comma separated directory patterns to - this Task's sparseCheckoutDirectories param. - - workspaces: - - name: output - description: The git repo will be cloned onto the volume backing this workspace - params: - - name: url - description: git url to clone - type: string - - name: revision - description: git revision to checkout (branch, tag, sha, ref…) - type: string - default: "" - - name: refspec - description: (optional) git refspec to fetch before checking out revision - default: "" - - name: submodules - description: defines if the resource should initialize and fetch the submodules - type: string - default: "true" - - name: depth - description: performs a shallow clone where only the most recent commit(s) will be fetched - type: string - default: "1" - - name: sslVerify - description: defines if http.sslVerify should be set to true or false in the global git config - type: string - default: "true" - - name: subdirectory - description: subdirectory inside the "output" workspace to clone the git repo into - type: string - default: "" - - name: sparseCheckoutDirectories - description: defines which directories patterns to match or exclude when performing a sparse checkout - type: string - default: "" - - name: deleteExisting - description: clean out the contents of the repo's destination directory (if it already exists) before trying to clone the repo there - type: string - default: "true" - - name: httpProxy - description: git HTTP proxy server for non-SSL requests - type: string - default: "" - - name: httpsProxy - description: git HTTPS proxy server for SSL requests - type: string - default: "" - - name: noProxy - description: git no proxy - opt out of proxying HTTP/HTTPS requests - type: string - default: "" - - name: verbose - description: log the commands used during execution - type: string - default: "true" - - name: gitInitImage - description: the image used where the git-init binary is - type: string - default: "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.21.0" - results: - - name: commit - description: The precise commit SHA that was fetched by this Task - - name: url - description: The precise URL that was fetched by this Task - steps: - - name: clone - image: $(params.gitInitImage) - env: - - name: PARAM_URL - value: $(params.url) - - name: PARAM_REVISION - value: $(params.revision) - - name: PARAM_REFSPEC - value: $(params.refspec) - - name: PARAM_SUBMODULES - value: $(params.submodules) - - name: PARAM_DEPTH - value: $(params.depth) - - name: PARAM_SSL_VERIFY - value: $(params.sslVerify) - - name: PARAM_SUBDIRECTORY - value: $(params.subdirectory) - - name: PARAM_DELETE_EXISTING - value: $(params.deleteExisting) - - name: PARAM_HTTP_PROXY - value: $(params.httpProxy) - - name: PARAM_HTTPS_PROXY - value: $(params.httpsProxy) - - name: PARAM_NO_PROXY - value: $(params.noProxy) - - name: PARAM_VERBOSE - value: $(params.verbose) - - name: PARAM_SPARSE_CHECKOUT_DIRECTORIES - value: $(params.sparseCheckoutDirectories) - - name: WORKSPACE_OUTPUT_PATH - value: $(workspaces.output.path) - script: | - #!/bin/sh - set -eu -o pipefail - - if [[ "${PARAM_VERBOSE}" == "true" ]] ; then - set -x - fi - - CHECKOUT_DIR="${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}" - - cleandir() { - # Delete any existing contents of the repo directory if it exists. - # - # We don't just "rm -rf $CHECKOUT_DIR" because $CHECKOUT_DIR might be "/" - # or the root of a mounted volume. - if [[ -d "$CHECKOUT_DIR" ]] ; then - # Delete non-hidden files and directories - rm -rf "$CHECKOUT_DIR"/* - # Delete files and directories starting with . but excluding .. - rm -rf "$CHECKOUT_DIR"/.[!.]* - # Delete files and directories starting with .. plus any other character - rm -rf "$CHECKOUT_DIR"/..?* - fi - } - - if [[ "${PARAM_DELETE_EXISTING}" == "true" ]] ; then - cleandir - fi - - test -z "${PARAM_HTTP_PROXY}" || export HTTP_PROXY="${PARAM_HTTP_PROXY}" - test -z "${PARAM_HTTPS_PROXY}" || export HTTPS_PROXY="${PARAM_HTTPS_PROXY}" - test -z "${PARAM_NO_PROXY}" || export NO_PROXY="${PARAM_NO_PROXY}" - - /ko-app/git-init \ - -url "${PARAM_URL}" \ - -revision "${PARAM_REVISION}" \ - -refspec "${PARAM_REFSPEC}" \ - -path "$CHECKOUT_DIR" \ - -sslVerify="${PARAM_SSL_VERIFY}" \ - -submodules="${PARAM_SUBMODULES}" \ - -depth "${PARAM_DEPTH}" \ - -sparseCheckoutDirectories "${PARAM_SPARSE_CHECKOUT_DIRECTORIES}" - cd "$CHECKOUT_DIR" - RESULT_SHA="$(git rev-parse HEAD)" - EXIT_CODE="$?" - if [ "$EXIT_CODE" != 0 ] ; then - exit $EXIT_CODE - fi - # ensure we don't add a trailing newline to the result - echo -n "$RESULT_SHA" > $(results.commit.path) - echo -n "${PARAM_URL}" > $(results.url.path) - ---- -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: markdown-lint - labels: - app.kubernetes.io/version: "0.1" - annotations: - tekton.dev/pipelines.minVersion: "0.12.1" - tekton.dev/categories: Code Quality - tekton.dev/tags: linter - tekton.dev/displayName: "Markdown linter" - tekton.dev/platforms: "linux/amd64" -spec: - description: >- - This task can be used to perform lint check on Markdown files - workspaces: - - name: shared-workspace - description: A workspace that contains the fetched git repository. - params: - - name: args - type: array - description: extra args needs to append - default: ["--help"] - steps: - - name: lint-markdown-files - image: docker.io/markdownlint/markdownlint:0.11.0@sha256:399a199c92f89f42cf3a0a1159bd86ca5cdc293fcfd39f87c0669ddee9767724 #tag: 0.11.0 - workingDir: $(workspaces.shared-workspace.path) - command: - - mdl - args: - - $(params.args) \ No newline at end of file diff --git a/site/content/docs/development/tutorials/files/using-params/app-deploy-template.yaml b/site/content/docs/development/tutorials/files/using-params/app-deploy-template.yaml deleted file mode 100644 index 5d6ef0744..000000000 --- a/site/content/docs/development/tutorials/files/using-params/app-deploy-template.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - containers: - - name: $(workload.metadata.name)$ - image: $(workload.spec.image)$ - params: - - name: image-pull-sa-name - default: expected-service-account diff --git a/site/content/docs/development/tutorials/files/using-params/cartographer-service-account.yaml b/site/content/docs/development/tutorials/files/using-params/cartographer-service-account.yaml deleted file mode 100644 index 8dc26ceee..000000000 --- a/site/content/docs/development/tutorials/files/using-params/cartographer-service-account.yaml +++ /dev/null @@ -1,37 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cartographer-pre-built-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-prebuilt-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: deploy-image-role -subjects: - - kind: ServiceAccount - name: cartographer-pre-built-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: deploy-image-role -rules: - - apiGroups: - - apps - resources: - - deployments - verbs: - - list - - create - - update - - delete - - patch - - watch - - get diff --git a/site/content/docs/development/tutorials/files/using-params/registry-service-account.yaml b/site/content/docs/development/tutorials/files/using-params/registry-service-account.yaml deleted file mode 100644 index c14e50908..000000000 --- a/site/content/docs/development/tutorials/files/using-params/registry-service-account.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: registry-credentials -type: kubernetes.io/dockerconfigjson -stringData: - .dockerconfigjson: '{"auths": {"0.0.0.0:5000": {"username": "admin", "password": "admin"}}}' # <=== Change to proper image registry credentials - ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: unconventionally-named-service-account -secrets: - - name: registry-credentials -imagePullSecrets: - - name: registry-credentials diff --git a/site/content/docs/development/tutorials/files/using-params/supply-chain.yaml b/site/content/docs/development/tutorials/files/using-params/supply-chain.yaml deleted file mode 100644 index a42e5f11b..000000000 --- a/site/content/docs/development/tutorials/files/using-params/supply-chain.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supply-chain -spec: - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy - - serviceAccountRef: - name: cartographer-pre-built-sa - namespace: default - - selector: - workload-type: pre-built diff --git a/site/content/docs/development/tutorials/files/using-params/workload.yaml b/site/content/docs/development/tutorials/files/using-params/workload.yaml deleted file mode 100644 index 8bfde1945..000000000 --- a/site/content/docs/development/tutorials/files/using-params/workload.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello-again - labels: - workload-type: pre-built -spec: - image: 0.0.0.0:5000/hello-world # <=== Change this to some proper registry and image - serviceAccountName: cartographer-pre-built-sa - params: - - name: image-pull-sa-name - value: unconventionally-named-service-account diff --git a/site/content/docs/development/tutorials/first-supply-chain.md b/site/content/docs/development/tutorials/first-supply-chain.md deleted file mode 100644 index 98ee4c08b..000000000 --- a/site/content/docs/development/tutorials/first-supply-chain.md +++ /dev/null @@ -1,500 +0,0 @@ -# Build Your First Supply Chain - -## Overview - -In this example, we’ll explore the two fundamental resources that an operator deploys, templates and supply-chains, and -how these interact with the resource a dev deploys, the workload. We'll also see how we grant Cartographer RBAC -permission to create our specified objects with a service account. We’ll do this with an incredibly simple supply chain, -one that has a single step: creating a deployment from an image. - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer installed. You may follow -[the installation instructions here](https://github.com/vmware-tanzu/cartographer#installation). - -Alternatively, you may choose to use the -[./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script to install a kind cluster -with Cartographer. _This script is meant for our end-to-end testing and while we rely on it working in that role, no -user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -We will work as the devs and the app operators in a company creating hello world web applications. As app devs we will -already have created pre-built images of these distros. Our supply chain will create deployments with these pre-built -images on them. We will work first as the app operators to create the appropriate template, supply chain, and service -account. Then we will work as the app devs to create our workload object. - -## Steps - -### App Operator Steps - -#### Templates - -For any template there are fields that the operator can hardcode for all apps and there are other fields that will need -to vary. There are two concerns that can necessitate a field varying: - -- Some fields must be unique across the fleet of apps from all devs. -- Some fields must have specific values specific to the particular application (generally known only by the application - developer). - -For our scenario, we will create a -[Kubernetes Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) for each application. Let -us wrap a deployment in a [Cartographer ClusterTemplate](../reference/template/#clustertemplate), notating fields that -will need to vary and fields that can be hardcoded: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: # MUST BE UNIQUE - labels: - app: # MUST BE UNIQUE - spec: - replicas: # CAN BE HARDCODED - selector: - matchLabels: - app: # MUST BE UNIQUE - template: - metadata: - labels: - app: # MUST BE UNIQUE - spec: - containers: - - name: # MUST BE UNIQUE - image: # KNOWN ONLY TO THE DEV -``` - -We can see an example of a field that may be hardcoded. The number of replicas is a concern of the app operator and can -be set for all apps as policy. We can see the template evolve: - -```yaml -... -spec: - template: - apiVersion: apps/v1 - kind: Deployment - spec: - replicas: 3 - ... - ... -``` - -Next, we will fill the fields that must be unique. Every application will be specified in a workload object specified by -the developer. We know that these objects (as all kubernetes objects) have unique names in their namespaces. As such, we -can leverage that name for all fields that must be unique. That name can be found on the workload object at -`.metadata.name`. We can see that in use below: - -```yaml -... -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - ... - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - containers: - - name: $(workload.metadata.name)$ - ... -``` - -Finally, there are the fields that are known only to the dev. There are a few classes of information so fundamental to -the process of building and deploying applications that the workload has fields for their specification. We can see -these in [the reference for the Workload custom resource](../reference/workload/#workload). They include: - -- Location of source code -- Environment variables to use in building images -- Location of pre-built images -- Resource constraints -- And more… - -For our example, the workload field for specifying the location of pre-built images is exactly what is necessary. We -will expect the appropriate image address to be specified on the workload in the ".spec.image" field. - -```yaml -... -spec: - template: - ... - spec: - template: - spec: - containers: - - image: $(workload.spec.image)$ - ... - ... -``` - -Let’s look at the completed template: - -{{< tutorial "app-deploy-template.yaml" >}} - -Wonderful! As app operators, we have created the template desired for our supply chain. - -#### Service Account - -Next, we turn to permissions. For Cartographer to create objects it needs RBAC permission to do so. For that we’ll -create a service account that will specify the requisite permissions to create, update, and otherwise manage the objects -referred to in our templates. - -First let’s create a service account. For ease of use in this tutorial, we’ll create it in the default namespace. - -{{< tutorial cartographer-service-account.yaml >}} - -Now we’ll create the roles we want this service account to have. In our case, we need a role allowing us to manage -deployments. - -{{< tutorial deployment-role.yaml >}} - -Now we bind the role to our service account: - -{{< tutorial role-binding-dep-carto.yaml >}} - -Great, we’ve created all of the objects to which the supply chain will refer: templates and a service account. Let’s -create the supply chain! - -#### Supply Chain - -The supply chain has three top level fields in its spec, the resources, a service account reference and a selector for -workloads. - -We’ll start with the resources field, which is a list. Each item in the resource list represents an object that will be -stamped out in the supply chain of each workload. We give each a name and a reference to a template. In the example -below we can see the templateRef has the name and kind of the template: - - -```yaml - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy -``` - - -Next we’ll add the reference to the service account: - - -```yaml - serviceAccountRef: - name: cartographer-pre-built-sa - namespace: default -``` - - -Our last step with the supply chain is to specify the selector. This is the set of labels on a workload that will -indicate that the workload matches with this supply-chain, rather than some other supply chain. We specify the types of -workloads that are appropriate for this supply chain. For our example, we only want workloads that have pre-built images -to match with this supply chain. Let’s enforce that by expecting workloads that match to have the label -`workload-type: pre-built`: - - -```yaml - selector: - workload-type: pre-built -``` - - -We can bring these all together for our complete supply chain: - -{{< tutorial supply-chain.yaml >}} - -We’re now ready to submit these objects to our cluster. The next responsibility is for our app developers to submit -workloads. Let’s step into that role now. - -### App Dev Steps - -Our app operators have created a contract that needs to be fulfilled by our workload. First, we’ll need to ensure that -our workload has the necessary labels to match with the selector. We can see that on the workload below. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello - labels: - workload-type: pre-built # <=== label matches selector of our supply chain -spec: ... -``` - -Next, our workload must provide all of the values referenced in the templates of the supply chain. We’ll remember that -for this supply chain that is the location of a pre-built image. Let’s point to -[our very sophisticated hello-world app](https://hub.docker.com/r/nginxdemos/hello/): -`docker.io/nginxdemos/hello:latest` - -```yaml -spec: - image: docker.io/nginxdemos/hello:latest -``` - -We bring it all together: - -{{< tutorial workload.yaml >}} - -And we're done! The app dev always has less work to do than the app operator. - -Let's submit all of these items to the cluster! - -## Observe - -### Workload - -The workload quickly resolves. We can examine the workload object: - -```shell -$ kubectl get -o yaml workload hello -``` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - generation: 1 - labels: - workload-type: pre-built - name: hello - namespace: default - ... -spec: - image: docker.io/nginxdemos/hello:latest - serviceAccountName: cartographer-pre-built-sa -status: - conditions: ... - observedGeneration: 1 - resources: ... - supplyChainRef: - kind: ClusterSupplyChain - name: supply-chain -``` - -Let's look more closely at the `status.conditions`: - -```yaml -status: - conditions: - - lastTransitionTime: ... - message: "" - reason: Ready - status: "True" - type: SupplyChainReady - - lastTransitionTime: ... - message: "" - reason: ResourceSubmissionComplete - status: "True" - type: ResourcesSubmitted - - lastTransitionTime: ... - message: "" - reason: Ready - status: "True" - type: Ready - ... -``` - -The `SupplyChainReady` condition merely tells us that the SupplyChain is in a healthy condition. e.g. if we do a -`kubectl get -o yaml clustersupplychain supply-chain`, we'll see that it's top level `Ready` condition is true. - -The `ResourcesSubmitted` condition is more important. It tells us that all of the objects that were specified in the -supply chain have been created. It is important to note, _this does not indicate that every submitted resource has -finished reconciling_. - -The `Ready` condition is the top level condition. For this condition to be true, all other conditions must be as well. A -quick scan of this value can let you know if the workload is in a ready state. - -You may want to more closely examine the resources deployed. Maybe a step in the supply chain is reporting a problem. Or -maybe you want to check if a successfully deployed object has completed reconciling. For such purposes we can use the -`status.resources` field. - -```yaml -status: - resources: - - name: deploy - stampedRef: - apiVersion: apps/v1 - kind: Deployment - name: hello-deployment - namespace: default - templateRef: - apiVersion: carto.run/v1alpha1 - kind: ClusterTemplate - name: app-deploy - ... -``` - -`status.resources` contains a reference to each of the objects created by the supply chain. For our single step supply -chain, we can see the name of that step/resource, "deploy". There is a reference to the template object (just as we -specified in the supply chain object) and a reference to the object that was stamped out. Let’s examine that object: - -### Stamped Object - -```shell -$ kubectl get -o yaml deployment hello-deployment -``` - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: ... -spec: ... -status: - availableReplicas: 3 - conditions: - - lastTransitionTime: ... - lastUpdateTime: ... - message: Deployment has minimum availability. - reason: MinimumReplicasAvailable - status: "True" - type: Available - - lastTransitionTime: ... - lastUpdateTime: ... - message: ReplicaSet "hello-deployment-5dddb657c" has successfully progressed. - reason: NewReplicaSetAvailable - status: "True" - type: Progressing - observedGeneration: 1 - readyReplicas: 3 - replicas: 3 - updatedReplicas: 3 -``` - -Success! We can tell that the deployment is ready on the cluster because its condition `Available` is true. - -We should also note some of the metadata of our created object: - -```yaml -metadata: - ownerReferences: - - apiVersion: carto.run/v1alpha1 - blockOwnerDeletion: true - controller: true - kind: Workload - name: hello - uid: d86b7dbf-8fcf-466e-abab-ebbc25404a06 - ... -``` - -First, we see an owner reference to our workload. This is helpful in a number of ways. It allows easy tracking of -relationships. If you use a tool like [kubectl tree](https://github.com/ahmetb/kubectl-tree) or -[kube-lineage](https://github.com/tohjustin/kube-lineage), examining the workload will display the child objects created -and the children of those objects. - -```shell -$ kubectl tree workload hello -``` - -```console -NAMESPACE NAME READY REASON AGE -default Workload/hello True Ready ... -default └─Deployment/hello-deployment - ... -default └─ReplicaSet/hello-deployment-abc123 - ... -default ├─Pod/hello-deployment-abc123-def45 True ... -default ├─Pod/hello-deployment-abc123-ghi67 True ... -default └─Pod/hello-deployment-abc123-jkl89 True ... -``` - -The other advantage of this owner relation is in cleanup. If the app dev deletes the workload, kubernetes will handle -deletion of the child objects. - -The other part of the metadata for us to observe are the labels: - -```yaml -metadata: ... - labels: - carto.run/cluster-template-name: app-deploy - carto.run/resource-name: deploy - carto.run/supply-chain-name: supply-chain - carto.run/template-kind: ClusterTemplate - carto.run/workload-name: hello - carto.run/workload-namespace: default -``` - -Cartographer adds helpful labels to indicate all of the Cartographer objects involved in the creation of a stamped -object (template, supply chain, workload). - -### Interacting with the app - -As a final step let’s create a quick port-forward and see our deployment serve traffic: - -```shell -$ kubectl port-forward deployment/hello-deployment 3000:80 -``` - -Now we visit the site! [http://localhost:3000/](http://localhost:3000/) - -We should see our app serving: - -{{< figure src="../../img/tutorials/hello-world-nginx.png" alt="Hello World" -width="400px" >}} - -Wonderful. Our company's first application has been delivered. - -## Steps for a second dev - -We use Cartographer to create an application platform for our developers. Let’s act now as a second dev, bringing a new -application to the platform. - -We assume that all the app operator setup from above remains. All we need to do is create a new workload with a -reference to a different pre-built image: - -{{< tutorial workload-2.yaml >}} - -We can follow the same steps to observe the workload and the created objects. And we can do a similar port-forward (note -that this app serves traffic on its 8000 port): - -```shell -$ kubectl port-forward deployment/whale-hello-there-deployment 3000:8000 -$ curl localhost:3000 -``` - -```html -
-Hello World
-
-
-                                       ##         .
-                                 ## ## ##        ==
-                              ## ## ## ## ##    ===
-                           /""""""""""""""""\___/ ===
-                      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
-                           \______ o          _,/
-                            \      \       _,'
-                             `'--.._\..--''
-
-``` - -## Wrap Up - -Congratulations, you’ve built your first supply chain! Here are some of the things you’ve learned: - -- The relationship between supply chains and templates -- The syntax for templates to refer to workload values -- The relationship between the selector on a supply chain and the labels on a workload -- The creation and referencing of a service account for Cartographer to manage the objects specified by the supply chain diff --git a/site/content/docs/development/tutorials/runnable-in-a-supply-chain.md b/site/content/docs/development/tutorials/runnable-in-a-supply-chain.md deleted file mode 100644 index d1b30d2cb..000000000 --- a/site/content/docs/development/tutorials/runnable-in-a-supply-chain.md +++ /dev/null @@ -1,415 +0,0 @@ -# Using Runnable in a Supply Chain - -## Overview - -In the previous tutorial we saw how Runnable brings updateable behavior to immutable kubernetes objects. In this -tutorial, we’ll see how we can use Runnable in our supply chains for common behavior like linting, scanning, and -testing. - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer, kpack and Tekton installed. You can find -[Cartographer's installation instructions here](https://github.com/vmware-tanzu/cartographer#installation), kpack's -[here](https://github.com/pivotal/kpack/blob/main/docs/install.md) and Tekton's -[here](https://github.com/pivotal/kpack/blob/main/docs/install.md). - -You will also need an image registry for which you have read and write permission. - -You may choose to use the [./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script -to install a kind cluster with Cartographer, Tekton, kpack and a local registry. _This script is meant for our -end-to-end testing and while we rely on it working in that role, no user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest example-dependencies -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -Continuing the scenario from [the previous tutorial](runnable.md), we remember that our CTO is interested in putting -quality controls in place; only code that passes certain checks should be built and deployed. They want to start small, -and have decided all source code repositories that are built must pass markdown linting. In order to do this we’re going -to leverage -[the markdown linting pipeline in the TektonCD catalog](https://github.com/tektoncd/catalog/tree/main/task/markdown-lint/0.1). - -Last tutorial we saw how to use Cartographer’s Runnable to give us easy updating behavior of Tekton (no need for Tekton -Triggers and Github Webhooks). In this following tutorial we’ll complete the scenario by using Runnable in a supply -chain. - -## Steps - -### App Operator Steps - -Much of our work from the previous tutorial remains the same. We deployed a Tekton pipeline and two Tekton Tasks in the -cluster. These objects will be applied in this tutorial with no change. - -We deployed a ClusterRunTemplate that templated a Tekton PipelineRun. This will stay largely the same, with only a -change to the outputs (We're going to define outputs that are slightly more useful than the ones we chose last -tutorial). We will still deploy this object directly. - -The object that we’ll deploy differently is the Runnable. To use Runnable in a supply chain we’ll wrap it in a -Cartographer template. This template will be referenced in our supply chain. This work should feel very familiar to the -steps we took in the [Build Your First Supply Chain](first-supply-chain.md) tutorial! - -#### Supply Chain - -Let’s begin by thinking through what template we need and where it will go in our supply chain. Our goal is to ensure -that the only repos that are built and deployed are those that pass linting. So we’ll need our new step to be the first -step in a supply chain. This step will receive the location of a source code and if the source code passes linting it -will pass that location inforation to the next step in the supply chain. Do you remember what template is meant to -expose information about the location of source code? That’s right, the ClusterSourceTemplate. - -Let’s define our supply chain now. We’ll start with the supply chain we created in the Extending a Supply Chain -tutorial. The resources then looked like this: - - -```yaml - resources: - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - images: - - resource: build-image - name: built-image -``` - - -We’ll add a new first step, lint source code. As we determined before, this will refer to a ClusterSourceTemplate. Our -second step will remain a ClusterImageTemplate, but it will have to be a new template. This is because it will consume -the source code from the previous step rather than directly from the workload. The rest of the resources will remain the -same. - - -```yaml - resources: - - name: lint-source - templateRef: - kind: ClusterSourceTemplate - Name: source-linter - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder-from-previous-step - sources: - - resource: lint-source - name: source - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - images: - - resource: build-image - name: built-image -``` - - -Our final step with the supply chain will be referring to a service-account. Let's think through what permissions we -need: - -- the `source-linter` template will create a runnable -- the `image-builder-from-previous-step` template will create a kpack image (just as the supply chain from the - [Extending a Supply Chain](extending-a-supply-chain.md) tutorial) -- the `app-deploy-from-sc-image` template will create a deployment (just as the supply chain from the - [Extending a Supply Chain](extending-a-supply-chain.md) tutorial) - -The only new object created here is a runnable, which is a Cartographer resource. The Cartographer controller already -has permission to manipulate Cartographer resources. So we do not need to do any alterations, we can simply reuse the -service account (and roles and role bindings) from the [Extending a Supply Chain](extending-a-supply-chain.md) tutorial. - -_Note that while the supply chain refers to a service account, the Runnable itself also refers to a service account. -More on that in a moment._ - -Here is our complete supply chain. - -{{< tutorial supply-chain.yaml >}} - -#### Templates - -There are two new templates that need to be written, `image-builder-from-previous-step` and `source-linter`. Creating -the `image-builder-from-previous-step` will be left as an exercise for the reader. Refer to the Extending a Supply Chain -tutorial for help. Let's turn to creating the `source-linter` template. - -We know we’ll wrap our Runnable in a ClusterSourceTemplate. We’ll begin as always, taking our previously created -Runnable and simply pasting it into a ClusterSourceTemplate: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: - name: source-linter -spec: - template: - apiVersion: carto.run/v1alpha1 - kind: Runnable - metadata: - name: linter - spec: - runTemplateRef: - name: md-linting-pipelinerun - inputs: - repository: https://github.com/waciumawanjohi/demo-hello-world - revision: main - serviceAccountName: pipeline-run-management-sa - urlPath: ??? - revisionPath: ??? -``` - -We can quickly see that there are hardcoded values that we’ll want to replace with references to the workload (so that -our supply chain can work with many different workloads). These are the `inputs` values. Remember, these fields are -inputs to the ClusterRunTemplate. If a value could be hardcoded, it should not be a field in the Runnable’s inputs at -all, it should simply be hardcoded in the ClusterRunTemplate (e.g. every field in the runnable `spec.inputs` should -become a Cartographer variable). Let’s look at how we’ll change `inputs`: - - -```yaml - inputs: - repository: $(workload.spec.source.git.url)$ - revision: $(workload.spec.source.git.revision)$ -``` - - -Quite straightforward and familiar. Simply pull the requisite values from the workload. The next step will be -straightforward as well; we need to make sure that multiple apps don’t overwrite one Runnable object. We need to -template the Runnable’s name: - - -```yaml - metadata: - name: $(workload.metadata.name)$-linter -``` - - -Finally, we need to fill the `urlPath` and `revisionPath` to tell the ClusterSourceTemplate what field of the Runnable -to expose for the `url` and `revision`. Remember, that’s the contract of a ClusterSourceTemplate, it exposes those two -values to the rest of the supply chain. Runnables have a `.status` field, which we'll use. The contents of that field -are determined by fields on the ClusterRunTemplate. In the [previous tutorial](runnable.md) the ClusterRunTemplate -declared that the output would be called `lastTransitionTime`. Let's declare our intention now to change the -ClusterRunTemplate. In a moment we'll alter it to set new outputs named `url` and `revision`. That will allow us to -finish the ClusterSourceTemplate wrapping our runnable. - -```yaml -spec: - template: ... - urlPath: .status.outputs.url - revisionPath: .status.outputs.revision -``` - -Wonderful. Our ClusterSourceTemplate is complete: - -{{< tutorial source-linter-template.yaml >}} - -#### ClusterRunTemplate - -Our supply-chain will now stamp out a Runnable. But we still have to change the ClusterRunTemplate to ensure that the -status of the Runnable has the fields we want. Just a moment ago we decided that these fields should be `url` and -`revision`. Before we alter the previous ClusterRunTemplate from the previous tutorial, let's look at it: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: - name: md-linting-pipelinerun -spec: - template: - apiVersion: tekton.dev/v1beta1 - kind: PipelineRun - metadata: - generateName: linter-pipeline-run- - spec: - pipelineRef: - name: linter-pipeline - params: - - name: repository - value: $(runnable.spec.inputs.repository)$ - - name: revision - value: $(runnable.spec.inputs.revision)$ - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - outputs: - lastTransitionTime: .status.conditions[0].lastTransitionTime -``` - -We can see that the `spec.outputs` field was used to prescribe a `lastTransitionTime` field. We’ll change that to a -`url` and `revision` field: - - -```yaml - outputs: - url: ??? - revision: ??? -``` - - -Great. Now let’s think; where on the object that’s created will we find these values. Actually, why think about it; -let’s take a look at the pipelinerun that was created in the last tutorial! - -```yaml -apiVersion: tekton.dev/v1beta1 -kind: PipelineRun -metadata: - name: linter-pipeline-run-123az - generateName: linter-pipeline-run- - labels: - carto.run/run-template-name: md-linting-pipelinerun - carto.run/runnable-name: linter - tekton.dev/pipeline: linter-pipeline - ownerReferences: - - apiVersion: carto.run/v1alpha1 - blockOwnerDeletion: true - controller: true - kind: Runnable - name: linter - uid: ... - ... -spec: - params: - - name: repository - value: https://github.com/waciumawanjohi/demo-hello-world - - name: revision - value: main - pipelineRef: - name: linter-pipeline - serviceAccountName: default - timeout: 1h0m0s - workspaces: - - name: shared-workspace - volumeClaimTemplate: - metadata: - creationTimestamp: null - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - status: {} -status: - completionTime: ... - conditions: ... - pipelineSpec: ... - startTime: ... - taskRuns: ... -``` - -While it feels most natural to read outputs from the `.status` of objects, in this case the value we want is in the -`.spec`. We can see that the `.spec.params` of this object has the url and revision of the source code. That's the value -we wish to pass on if the pipeline-run is successful. We'll use jsonpath in our outputs to grab these values: - - -```yaml - outputs: - url: spec.params[?(@.name=="repository")].value - revision: spec.params[?(@.name=="revision")].value -``` - - -Great, our outputs are complete. - -There’s one more thing that we can do to make things easy on ourselves, differentiate the name of pipeline-runs of one -workload from those of another. Technically, we do not have to do this. Cartographer is smart enough to stamp out these -objects and differentiate objects created from the same prefix from Runnable 1 and Runnable 2. But we’re human and it’ll -be nice for us to quickly be able to distinguish. - -```yaml -spec: - template: - metadata: - generateName: $(runnable.metadata.name)$-pipeline-run- -``` - -Let’s pull it all together! Our ClusterRunTemplate now reads: - -{{< tutorial cluster-run-template.yaml >}} - -#### Runnable's Service Account - -The last object to mention is the serviceAccount object referred to in the ClusterSourceTemplate wrapped Runnable. We -could refer to the same service account referred to in the supply chain. Then we would simply bind an additional role to -the account, one that allows creation of a Tekton PipelineRun. Or we can refer to a different service account with these -permissions. We created such a service account in the [previous tutorial](runnable.md) and our runnable still refers to -that name. We will simply deploy that service account. - -Now we're ready. Let’s submit all these objects and step into our role as App Devs. - -### App Dev Steps - -As devs, our work is easy! We submit a workload. We’re being asked for the same information as ever from the templates, -a url and a revision for the location of the source code. We can submit the same workload from the -[Extending a Supply Chain tutorial](extending-a-supply-chain.md): - -{{< tutorial workload.yaml >}} - -## Observe - -Using [kubectl tree](https://github.com/ahmetb/kubectl-tree) we can see our workload is parent to a runnable which in -turn is parent to a pipeline-run. - -```shell -$ kubectl tree workload hello-again -``` - -```console -NAMESPACE NAME READY REASON AGE -default Workload/hello-again True Ready -default ├─Deployment/hello-again-deployment - -default │ └─ReplicaSet/hello-again-deployment-67b7dc6d5 - -default │ ├─Pod/hello-again-deployment-67b7dc6d5-djtph True -default │ ├─Pod/hello-again-deployment-67b7dc6d5-f2nkv True -default │ └─Pod/hello-again-deployment-67b7dc6d5-p4m9c True -default ├─Image/hello-again True -default │ ├─Build/hello-again-build-1 - -default │ │ └─Pod/hello-again-build-1-build-pod False PodCompleted -default │ ├─PersistentVolumeClaim/hello-again-cache - -default │ └─SourceResolver/hello-again-source True -default └─Runnable/hello-again-linter True Ready -default └─PipelineRun/hello-again-linter-pipeline-run-x123x - -default ├─PersistentVolumeClaim/pvc-1a89a7e201 - -default ├─TaskRun/hello-again-linter-pipeline-run-x123x-fetch-repository - -default │ └─Pod/hello-again-linter-pipeline-run-x123x-fetch-repository-pod False PodCompleted -default └─TaskRun/hello-again-linter-pipeline-run-x123x-md-lint-run - -default └─Pod/hello-again-linter-pipeline-run-x123x-md-lint-run-pod False PodCompleted -``` - -We also see that the workload is in a ready state, as are all of the pods of our deployment. - -## Wrap Up - -You’ve now built a supply chain leveraging runnables. Your app platform can now provide testing, scanning, linting and -more to all the applications brought by your dev teams. Let’s look at what you learned in this tutorial: - -- How to wrap a Runnable in a Cartographer template -- How to align the outputs from a ClusterRunTemplate with the values exposed by the template wrapping the Runnable - -Before we leave this tutorial, we should note that the supply chain that we’ve created deals very well with new apps -that are brought to the platform. That is, when a workload is submitted, the app will be linted and upon success will -proceed to be built. But this supply chain is not resilient to changes made to the source code of said app. What will -happen if the code was good, but is changed to a bad state? The linting step won’t rerun, as from the tekton -perspective, no value has changed; it still has the same url and revision. - -In order to address this problem, production supply chains should leverage a resource like -[fluxCD’s source controller](https://fluxcd.io/docs/components/source/). This kubernetes resource will translate a -revision like `main` into the revision of the current commit on main (e.g. commit `abc123`). When main is updated, -source controller will ensure that it outputs the new commit that is the head of main. Leveraging this resource, we can -avoid the dilemma presented above. - -Users can see supply chains that use fluxCD’s source controller in -[Cartographer’s examples](https://github.com/vmware-tanzu/cartographer/tree/main/examples). diff --git a/site/content/docs/development/tutorials/runnable.md b/site/content/docs/development/tutorials/runnable.md deleted file mode 100644 index 81f2dcc93..000000000 --- a/site/content/docs/development/tutorials/runnable.md +++ /dev/null @@ -1,386 +0,0 @@ -# Runnable: Templating Objects That Cannot Update - -## Overview - -In this tutorial we’ll explore a new Cartographer resource: runnable. Runnables will enable us to choreograph resources -that do not support standard update behavior. We’ll see how we can wrap Runnables around tools useful for testing, like -Tekton, and how that will provide us easy updating behavior of our testing objects. - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer and Tekton installed. You can find -[Cartographer's installation instructions here](https://github.com/vmware-tanzu/cartographer#installation) and -[Tekton's installation instructions are here](https://github.com/pivotal/kpack/blob/main/docs/install.md). - -Alternatively, you may choose to use the -[./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script to install a kind cluster -with Cartographer and Tekton. _This script is meant for our end-to-end testing and while we rely on it working in that -role, no user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest example-dependencies -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -Our CTO is interested in putting quality controls in place; only code that passes certain checks should be built and -deployed. They want to start small: all source code repositories that are built must pass markdown linting. In order to -do this we’re going to leverage -[the markdown linting pipeline in the TektonCD catalog](https://github.com/tektoncd/catalog/tree/main/task/markdown-lint/0.1). - -In this tutorial we’ll see how to use Cartographer’s Runnable to give us easy updating behavior of Tekton (no need for -Tekton Triggers and Github Webhooks). In [the next tutorial](runnable-in-a-supply-chain.md) we’ll complete the scenario -by using Runnable in a supply chain. - -## Steps - -### Tekton Basics - -Before using Cartographer, let’s think about how we would use Tekton on its own to lint a repo. First we would define a -pipeline: - -{{< tutorial pipeline.yaml >}} - -We would apply this pipeline to the cluster, along with the tasks. Those tasks are in the TektonCD Catalog: - -```shell -$ kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/git-clone/0.3/git-clone.yaml -$ kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/markdown-lint/0.1/markdown-lint.yaml -``` - -Finally, we need to create a pipeline-run object. This object provides the param and workspace values defined at the top -level `.spec` field of the pipeline. - -```yaml ---- -apiVersion: tekton.dev/v1beta1 -kind: PipelineRun -metadata: - name: linter-pipeline-run -spec: - pipelineRef: - name: linter-pipeline - params: - - name: repository - value: https://github.com/waciumawanjohi/demo-hello-world - - name: revision - value: main - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi -``` - -Importantly, this pipeline-run object will kick off a single run of the pipeline. The run will either succeed or fail. -The outcome will be written into the pipeline-run’s status. No later changes to the pipeline-run object will change -those outcomes; the run happens once. - -To see this in action, let’s apply the above pipeline-run. If we watch the object, we’ll soon see that it succeeds. - -```shell -$ watch 'kubectl get -o yaml pipelinerun linter-pipeline-run | yq .status.conditions' -``` - -Eventually yields the result: - -```yaml -- lastTransitionTime: ... - message: "Tasks Completed: 2 (Failed: 0, Cancelled 0), Skipped: 0" - reason: "Succeeded" - status: "True" - type: "Succeeded" -``` - -### Templating Pipeline Runs - -This seems like a very easy step to encode in a supply chain. All we would need to do is ensure that the Tekton tasks -and pipeline are created beforehand. Then a supply chain could stamp out a templated pipeline-run object. This template -will pull the repository and revision value from the workload. But there’s a problem... what happens if an app dev -changes one of these values on the workload? Our supply chain would not properly reflect the change, because the -pipeline-run object cannot be updated! - -Fortunately there’s an easy fix. We’re going to use a pair of new Cartographer resources: Runnable and -ClusterRunTemplate. - -It will be the responsibility of the ClusterRunTemplate to template our desired object (in this case, our Tekton -pipeline-run). The Runnable will be responsible for providing values to the ClusterRunTemplate, the values that we -expect to vary (in our example, the url and revision of the source code). When the set of values from the Runnable -changes, a new object will be created (rather than the old object updated). - -The Runnable will also expose results. Of course, multiple results will exist, a result for each of the objects created. -Runnable will only expose the results from the most recently submitted successful object. - -In this manner, we get a wrapper (Runnable) that is updateable and updates results in its status. This is similar to the -default behavior of kuberenetes objects. By wrapping Tekton pipeline-runs (or any immutable resource) in a Runnable, we -will be able to use the resource in a supply chain as if it were mutable. - -Let’s see the Runnable and the ClusterRunTemplate at work. Once we’re solid on those, we’ll use Runnable in a Supply -Chain in the next tutorial. - -#### ClusterRunTemplate - -Let’s start with the ClusterRunTemplate. As can be expected from the name, there’s a `.spec.template` field in it, where -we will write something very similar to our pipeline-run above. In fact, let’s write that exact pipeline-run in and then -look at the values that will need to change: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: - name: md-linting-pipelinerun -spec: - template: - apiVersion: tekton.dev/v1beta1 - kind: PipelineRun - metadata: - name: linter-pipeline-run # <=== Can’t all have the same name - spec: - pipelineRef: - name: linter-pipeline - params: # <=== These param values will change - - name: repository - value: https://github.com/waciumawanjohi/demo-hello-world - - name: revision - value: main - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi -``` - -Most fields are fine. The name field is not. Why not? If we want to change the values for the pipeline-run, we’re not -going to update the templated object. We’re going to create an entirely new object. And of course that new object can’t -have the same hardcoded name. To handle this, every object templated in a ClusterRunTemplate specifies a `generateName` -rather than a `name`. We can use `linter-pipeline-run-` and kubernetes will handle putting a unique suffix on the name -of each pipeline-run. - - -```yaml - metadata: - generateName: linter-pipeline-run- -``` - - -The other change we want to make is to the values on the params. It doesn’t do much good to hardcode -`https://github.com/waciumawanjohi/demo-hello-world` into the repository param; this is the value we want to update. As -we said, we intend to update the Runnable and have the value in that update stamped out in a new pipeline-run object. So -we replace the hardcoded value with a Cartographer parameter. We’ll find the value that we want on the runnable. That -will look like `$(runnable.spec.inputs.repository)$`. This specifies that the value we want will be found in the -runnable spec, in a field named inputs, one of which will have the name `repository`. - -There’s only one more thing that we need to specify on the ClusterRunTemplate: what the outputs will be! We said that -the Runnable status will reflect results of a successful run. The ClusterRunTemplate specifies what results. For now -let’s simply report the lastTransition time that we saw on the conditions. We use jsonpath to indicate the location of -this value on the objects that are being stamped: - - -```yaml - outputs: - lastTransitionTime: .status.conditions[0].lastTransitionTime -``` - - -Let’s look at our complete ClusterRunTemplate: - -{{< tutorial cluster-run-template.yaml >}} - -#### Runnable - -Now let’s make the Runnable. First we’ll specify which ClusterRunTemplate our Runnable works with. We do this in the -Runnable's `.spec.runTemplateRef.` field and we refer to the name of the ClusterRunTemplate we just created. - - -```yaml - runTemplateRef: - name: md-linting-pipelinerun -``` - - -Next we’ll fill in the inputs. These are the paths that we templated into the ClusterRunTemplate param values, the -`runnable.spec.inputs.repository` and `runnable.spec.inputs.revision`. We’ll fill these with the values we previously -hardcoded in the pipelinerun. With runnable we’ll be able to update them later as we like. - - -```yaml - inputs: - repository: https://github.com/waciumawanjohi/demo-hello-world - revision: main -``` - - -Finally, we need a serviceAccountName. Just like the supply-chain, with Runnable Cartographer could be stamping out -_anything_. Using RBAC we expect a service account to provide permissions to Cartographer and limit it to creating only -the types of objects we expect. We'll create a service account named `pipeline-run-management-sa`. We’ll put that name -in our Runnable object. The full object looks like this: - -{{< tutorial runnable.yaml >}} - -Let’s quickly create the service account we referenced: - -{{< tutorial service-account.yaml >}} - -Great! Let’s deploy these objects. - -## Observe - -Let’s observe the pipeline-run objects in the cluster: - -```shell -$ kubectl get pipelineruns -``` - -We can see that a new pipelinerun has been created with the `linter-pipeline-run-` prefix: - -```console -NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME -linter-pipeline-run-123az True Succeeded 2m48s 2m35s -``` - -Examining the created object it’s a non-trivial 300 lines: - -```shell -$ kubectl get -o yaml pipelineruns linter-pipeline-run-123az -``` - -In the metadata we can see familiar labels indicating Carto objects used to create this templated object. We can also -see that the object is owned by the runnable. - -```yaml -apiVersion: tekton.dev/v1beta1 -kind: PipelineRun -metadata: - name: linter-pipeline-run-123az - generateName: linter-pipeline-run- - labels: - carto.run/run-template-name: md-linting-pipelinerun - carto.run/runnable-name: linter - tekton.dev/pipeline: linter-pipeline - ownerReferences: - - apiVersion: carto.run/v1alpha1 - blockOwnerDeletion: true - controller: true - kind: Runnable - name: linter - uid: ... - ... -``` - -The spec contains the spec that we templated out. Looks great. - -```yaml -spec: - params: - - name: repository - value: https://github.com/waciumawanjohi/demo-hello-world - - name: revision - value: main - pipelineRef: - name: linter-pipeline - serviceAccountName: default - timeout: 1h0m0s - workspaces: - - name: shared-workspace - volumeClaimTemplate: - metadata: - creationTimestamp: null - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - status: {} -``` - -The status contains fields expected of Tekton: - -```yaml -status: - completionTime: ... - conditions: - - lastTransitionTime: "2022-03-07T19:24:35Z" - message: "Tasks Completed: 2 (Failed: 0, Cancelled 0), Skipped: 0" - reason: Succeeded - status: "True" - type: Succeeded - pipelineSpec: ... - startTime: ... - taskRuns: ... -``` - -To learn more about Tekton’s behavior, readers will want to refer to [Tekton documentation](https://tekton.dev/docs/). - -Now we examine the Cartographer Runnable object. We expect it to expose values from our successful object. - -```shell -$ kubectl get -o yaml runnable linter -``` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Runnable -Metadata: ... -Spec: ... -status: - conditions: ... - observedGeneration: ... - outputs: - lastTransitionTime: "2022-03-07T19:24:35Z" -``` - -Wonderful! The value from the field we specified in the ClusterRunTemplate is now in the outputs of the Runnable. - -Finally, let's update our runnable with a new repository: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Runnable -metadata: - name: linter -spec: - runTemplateRef: - name: md-linting-pipelinerun - inputs: - repository: https://github.com/kelseyhightower/nocode # <=== new repo - revision: master # <=== new revision - serviceAccountName: pipeline-run-management-sa -``` - -When we apply this to the cluster, we can observe: - -- The spec of our runnable is updated -- The runnable causes the creation of a new pipelinerun -- The new pipeline run fails because the new repo does not pass linting -- Since the result of the new pipeline run is failure, our runnable output remains the output of our previous - (successful) pipeline run - -## Wrap Up - -In this tutorial you learned: - -- Some useful kubernetes objects cannot be updated -- Runnable allows you to add updateable behavior to those objects -- How to write Runnables with input values for ClusterRunTemplates -- How to write ClusterRunTemplates that specify outputs for the Runnable -- How to read output values from the Runnable - -We’ve got an updateable object, Runnable, that can manage tekton pipelines and tasks. Our next step is going to be using -Runnable in a supply chain. diff --git a/site/content/docs/development/tutorials/using-params.md b/site/content/docs/development/tutorials/using-params.md deleted file mode 100644 index 0f821e2e2..000000000 --- a/site/content/docs/development/tutorials/using-params.md +++ /dev/null @@ -1,231 +0,0 @@ -# Using Params - -## Overview - -In this tutorial we’ll explore how to use params to pass information that isn’t anticipated by the standard workload -fields. We’ll see how params can either be set or delegated to other objects in the supply chain. - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer installed. You may follow -[the installation instructions here](https://github.com/vmware-tanzu/cartographer#installation). - -Alternatively, you may choose to use the -[./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script to install a kind cluster -with Cartographer. _This script is meant for our end-to-end testing and while we rely on it working in that role, no -user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -As in the tutorial ["Build Your First Supply Chain"](first-supply-chain.md), we will act as both the app dev and app -operator in a company creating hello world web applications. Our applications will again have been built and stored in a -registry. But now each image will be in some private registry and each app dev will need to provide the appropriate -service account with imagePullCredentials for our deployment. We will assume that the app devs have already created the -necessary service account in their namespace. We will see how to write our templates to accept a parameter with the -service account name as well as how to write a workload to supply that value. - -## Steps - -### App Operator Steps - -A new field must be added to our template of a deployment: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: # <=== NEW FIELD - containers: - - name: $(workload.metadata.name)$ - image: $(workload.spec.image)$ -``` - -Let’s assume that the app operator has created an image registry in which they have expansive read credentials. The -operator can reasonably expect that many devs will use this registry. So the operator can be responsible for the -creation of a service account with the correct imagePullCredentials and can make sure this object is in the expected -namespaces with the expected name. Let’s set this expected name as "expected-service-account". - -While this will be the default value, we will allow the developer to override this choice. We’ll do this by setting the -name as a param for the ClusterTemplate: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - ... -spec: - template: - ... - spec: - ... - template: - ... - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - ... - params: - - name: image-pull-sa-name - default: expected-service-account -``` - -Here we see two changes to the ClusterTemplate’s spec: - -- The first is a field in the template. The field has been filled with a reference to a param: - `$(params.image-pull-sa-name)$` -- Second, we see that a new field has been introduced to the spec: `params`. This is a list of params, each of which - requires a name and a default value. Here, the app operator indicates that many devs will have a service account named - `expected-service-account` in their namespace. - -We can see here the full object we'll apply to the cluster: - -{{< tutorial app-deploy-template.yaml >}} - -We apply this template to the cluster along with the same supply chain from the -["Build Your First Supply Chain"](first-supply-chain.md) tutorial. - -### App Dev Steps - -As app devs, we’ve decided not to follow the app operator service account naming convention. We’ve created a service -account named "unconventionally-named-service-account" which has the imagePullSecrets to get our app image. In the -workload, we'll create a param. Params in workloads require two fields, a name and a value. We must give our param the -same name as the param in the template, `image-pull-sa-name`. And for the value, we'll provide our chosen service -account's name. - -```yaml -spec: - params: - - name: image-pull-sa-name - value: unconventionally-named-service-account -``` - -We can now apply this workload to the cluster: - -{{< tutorial workload.yaml >}} - -## Observe - -When we observe the created deployment, we can see that the value specified by the workload is present: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: hello-again-deployment - ... -spec: - template: - metadata: ... - spec: - Containers: ... - dnsPolicy: ... - restartPolicy: ... - schedulerName: ... - securityContext: {} - serviceAccount: unconventionally-named-service-account # <=== huzzah! - serviceAccountName: unconventionally-named-service-account - terminationGracePeriodSeconds: 30 - ... -status: ... -``` - -## Further information - -Params are created to allow delegation between different personas. The individual writing a template may be different -from the person writing the supply chain. Perhaps the template author is unsure of a parameter’s value, but the supply -chain author knows exactly the desired value and does not want the workload author to be able to override their choice. -The supply chain can be altered to specify a `value`. - -```yaml ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supply-chain -spec: - selector: - workload-type: pre-built - - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy - params: # <=== New field - - name: image-pull-sa-name - value: inevitable-service-account -``` - -If the supply chain is redeployed with this definition, we can observe that the deployment changes: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: hello-deployment - ... -spec: - template: - metadata: ... - spec: - Containers: ... - dnsPolicy: ... - restartPolicy: ... - schedulerName: ... - securityContext: {} - serviceAccount: inevitable-service-account - serviceAccountName: inevitable-service-account - terminationGracePeriodSeconds: 30 - ... -status: ... -``` - -Further information about params and the order of precedence can be found in the -["Parameter Heirarchy"](../architecture/#parameter-hierarchy) architecture documentation. - -In the Cartographer tests you can find an example of creating an object with numerous parameters which demonstrates the -precedence rules: - -- [A template with many param fields, providing default values for some](https://github.com/vmware-tanzu/cartographer/tree/main/tests/kuttl/supplychain/params-supply-chain/00-proper-templates.yaml) -- [A supply chain providing some defaults and some values for params](https://github.com/vmware-tanzu/cartographer/tree/main/tests/kuttl/supplychain/params-supply-chain/01-supply-chain.yaml) -- [A workload providing some values for params](https://github.com/vmware-tanzu/cartographer/tree/main/tests/kuttl/supplychain/params-supply-chain/02-workload.yaml) -- [The expected object which will be created when that trio is submitted to the cluster](https://github.com/vmware-tanzu/cartographer/tree/main/tests/kuttl/supplychain/params-supply-chain/02-assert.yaml) - -## Wrap Up - -Congratulations, you’ve used parameters in your supply chain! You’ve learned: - -- How a template requests information from a workload not available in the standard workload fields -- How to provide default values for params -- How the supply chain can provide mandatory values for params -- How to find more information on params diff --git a/site/content/docs/v0.0.6/_index.md b/site/content/docs/v0.0.6/_index.md deleted file mode 100644 index 76c8f698f..000000000 --- a/site/content/docs/v0.0.6/_index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -version: v0.0.6 -cascade: - layout: docs ---- - -## TL;DR - -Cartographer is a -[Supply Chain Choreographer](https://tanzu.vmware.com/developer/guides/ci-cd/supply-chain-choreography/) for Kubernetes. -It allows App Operators to create pre-approved paths to production by integrating Kubernetes resources with the elements -of their existing toolchains (e.g. Jenkins). - -**Each** pre-approved supply chain creates a paved road to production; orchestrating supply chain resources - test, -build, scan, and deploy - allowing developers to be able to focus on delivering value to their users while also -providing App Operators with the peace of mind that all code in production has passed through all of the steps of an -approved workflow. - -## Cartographer Design and Philosophy - -Cartographer allows users to define all of the steps that an application must go through to create an image and -Kubernetes configuration. Users achieve this with the Supply Chain abstraction, see -[Spec Reference](reference.md#clustersupplychain). - -The supply chain consists of resources that are specified via Templates. Each template acts as a wrapper for existing -Kubernetes resources and allows them to be used with Cartographer. There are currently four different types of templates -that can be use in a Cartographer supply chain: - -- [Source Template](reference.md#clustersourcetemplate) -- [Image Template](reference.md#clusterimagetemplate) -- [Config Template](reference.md#clusterconfigtemplate) -- [Generic Template](reference.md#clustertemplate) - -Contrary to many other Kubernetes native workflow tools that already exist in the market, Cartographer does not “run” -any of the objects themselves. Instead, it monitors the execution of each resource and templates the following resource -in the supply chain after a given resource has completed execution and updated its status. - -The supply chain may also be extended to include integrations to existing CI/CD pipelines by using the Runnable CRD -(which is part of Cartographer). The Runnable CRD acts as a wrapper for CRDs that are immutable (meaning that instead of -updating an object, a new object would be created). There are a number of CI/CD CRDs that follow this pattern, including -Tekton. The Runnable CRD provides a declarative way for pipelines to be run inside of Cartographer. - -While the supply chain is operator facing, Cartographer also provides an abstraction for developers called -[workloads](reference.md#workload). Workloads allow developers to create application specifications such as the location -of their repository, environment variables and service claims. - -By design, supply chains can be reused by many workloads. This allows an operator to specify the steps in the path to -production a single time, and for developers to specify their applications independently but for each to use the same -path to production. The intent is that developers are able to focus on providing value for their users and can reach -production quickly and easily, while providing peace of mind for app operators, who are ensured that each application -has passed through the steps of the path to production that they’ve defined. - -![Cartographer High Level Diagram](img/ownership-flow.png) diff --git a/site/content/docs/v0.0.6/examples.md b/site/content/docs/v0.0.6/examples.md deleted file mode 100644 index def4fdcff..000000000 --- a/site/content/docs/v0.0.6/examples.md +++ /dev/null @@ -1,5 +0,0 @@ -# Examples - -Check out the [examples directory] on our repository. - -[examples directory]: https://github.com/vmware-tanzu/cartographer/tree/main/examples diff --git a/site/content/docs/v0.0.6/img/ownership-flow.png b/site/content/docs/v0.0.6/img/ownership-flow.png deleted file mode 100644 index f74cb3cfa..000000000 Binary files a/site/content/docs/v0.0.6/img/ownership-flow.png and /dev/null differ diff --git a/site/content/docs/v0.0.6/install.md b/site/content/docs/v0.0.6/install.md deleted file mode 100644 index 9b0a953ca..000000000 --- a/site/content/docs/v0.0.6/install.md +++ /dev/null @@ -1,474 +0,0 @@ -# Installing Cartographer - -There are three recommended ways of installing Cartographer: - -1. with a single YAML file (quick!) -2. using an [imgpkg bundle], making easier for relocation -3. using a [carvel Packaging] objects, for an opinionated package-based workflow - -If all you want to do is get started quick and fetching images from DockerHub is not an issue, -[`1`](#1-single-file-quick-install) is the way to go. Otherwise, check out the other approaches (especially if you want -to have everything relocated to a registry of your own). - -tl;dr _(having [cert-manager] already installed)_: - -```bash -kubectl create namespace cartographer-system -kubectl apply -f https://github.com/vmware-tanzu/cartographer/releases/latest/download/cartographer.yaml -``` - -## Pre-requisites - -### Admin capabilities in a recent-enough Kubernetes cluster (v1.19+) - -Currently, Cartographer doesn't provide support for granular permissions (see [#51]), as such, to configure the supply -chain (which is cluster-wide), you must have admin capabilities in the cluster you're targetting. - -### [cert-manager] for managing the controller's certificates - -In order to have Cartographer's validation webhooks up and running in the cluster, [cert-manager] is utilized to -generate TLS certificates as well to keep them up to date. - -First, verify if you have the dependency installed: - -```bash -kubectl get crds certificates.cert-manager.io -``` - -```console -NAME CREATED AT -certificates.cert-manager.io 2021-08-27T18:41:40Z -``` - -In case you don't (i.e., you see _""certificates.cert-manager.io" not found"_), proceed with installing it. - -```bash -CERT_MANAGER_VERSION=1.5.3 - -kapp deploy --yes -a cert-manager \ - -f https://github.com/jetstack/cert-manager/releases/download/v$CERT_MANAGER_VERSION/cert-manager.yaml -``` - -```console -Target cluster 'https://127.0.0.1:39495' (nodes: kind-control-plane) - -Changes -Namespace Name Kind ... -(cluster) cert-manager Namespace ... -^ cert-manager-cainjector ClusterRole ... -^ cert-manager-cainjector ClusterRoleBinding ... -... -7:53:32AM: ok: reconcile customresourcedefinition/issuers.cert-manager.io (apiextensions.k8s.io/v1) cluster -7:53:32AM: ---- applying complete [6/6 done] ---- -7:53:32AM: ---- waiting complete [6/6 done] ---- - -Succeeded -``` - -ps.: although we recommend using [kapp] as provided in the instructions you'll see here, its use can be replaced by -`kubectl apply`. - -## 1. Single file, Quick install - -Cartographer releases include a file (`cartographer.yaml`) that contains all necessary files for installing it in a -cluster - -```console -Resources in file './bundle/cartographer.yaml' - -Namespace Name Kind -(cluster) cartographer-cluster-admin ClusterRoleBinding -^ clusterconfigtemplates.carto.run CustomResourceDefinition -^ clusterimagetemplates.carto.run CustomResourceDefinition -^ clustersourcetemplates.carto.run CustomResourceDefinition -^ clustersupplychains.carto.run CustomResourceDefinition -^ clustersupplychainvalidator ValidatingWebhookConfiguration -^ clustertemplates.carto.run CustomResourceDefinition -^ pipelines.carto.run CustomResourceDefinition -^ runtemplates.carto.run CustomResourceDefinition -^ workloads.carto.run CustomResourceDefinition - -cartographer-system cartographer-controller Deployment -^ cartographer-controller ServiceAccount -^ cartographer-webhook Certificate -^ cartographer-webhook Secret -^ cartographer-webhook Service -^ private-registry-credentials Secret -^ selfsigned-issuer Issuer -``` - -providing all the necessary objects that would entail a full installation of it. - -To install it, first create the namespace where the controller will be installed: - -```bash -kubectl create namespace cartographer-system -``` - -```console -namespace/cartographer-system created -``` - -and then, submit the objects included in the release: - -```bash -kubectl apply -f https://github.com/vmware-tanzu/cartographer/releases/latest/download/cartographer.yaml -``` - -```console -customresourcedefinition.apiextensions.k8s.io/clusterconfigtemplates.carto.run configured -customresourcedefinition.apiextensions.k8s.io/clusterimagetemplates.carto.run configured -... -secret/cartographer-webhook created -``` - -## 2. Bundle tarball - -This installation method is great for those that want to host Cartographer's image and installation objects by -themselves - either so they live in a public container image registry of their own, or for air-gapped scenarios where -bits need to be moved in an offline fashion. - -First, head to the [releases page] and download the `bundle.tar` file available for the release you want to install. - -```bash -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/latest/download/bundle.tar -``` - -This bundle contains everything we need to install Cartographer, from container images to Kubernetes manifests, it's all -in the bundle. - -First, relocate it from the tarball you just downloaded to a container image registry that the cluster you're willing to -install Cartographer has access to: - -```bash -# set the repository where images should be reloated to, for instance, to -# relocate to a project named "foo" in DockerHub: DOCKER_REPO=foo -# -DOCKER_REPO=10.188.0.3:5000 - - -# relocate -# -imgpkg copy \ - --tar bundle.tar \ - --to-repo ${DOCKER_REPO?:Required}/cartographer-bundle \ - --lock-output cartographer-bundle.lock.yaml -``` - -```console -copy | importing 2 images... -copy | done uploading images -Succeeded -``` - -With the the bundle and all Cartographer-related images moved to the destination registry, we can move on to pulling the -YAML files that we can use to submit to Kubernetes for installing Cartographer: - -```bash -# pull to the directory `cartographer-bundle` the contents of the imgpkg -# bundle as specified by the lock file. -# -imgpkg pull \ - --lock cartographer-bundle.lock.yaml \ - --output ./cartographer-bundle -``` - -```console -Pulling bundle '10.188.0.3:5000/cartographer-bundle@sha256:e296a316385a57048cb189a3a710cecf128a62e77600a495f32d46309c6e8113' - Extracting layer 'sha256:0b93d1878c9be97b872f08da8d583796985919df345c39c874766142464d80e7' (1/1) - -Locating image lock file images... -The bundle repo (10.188.0.3:5000/cartographer-bundle) is hosting every image specified in the bundle's Images Lock file (.imgpkg/images.yml) - -Succeeded -``` - -Create the namespace where Cartographer's objects will be placed: - -```bash -kubectl create namespace cartographer-system -``` - -```console -namespace/cartographer-system created -``` - -If the registry you pushed the bundle to is accessible to the cluster without any extra authentication needs, skip this -step. Otherwise, make sure you provide to the `Deployment` object that runs the controller the image pull secrets -necessary for fetching the image. - -By default, the controller's ServiceAccount points at a placeholder secret called 'private-registry-credentials' to be -used as the image pull secret, so, by creating such secret in the `cartographer-system` namespace Kubernetes will then -be able to use that secret as the credenital provider for fetching the controller's image: - -```bash -# create a secret that will have .dockerconfigjson populated with the -# credentials for the image registry. -# -kubectl create secret -n cartographer-system \ - docker-registry private-registry-credentials \ - --docker-server=$DOCKER_REPO \ - --docker-username=admin \ - --docker-password=admin -``` - -```console -secret/private-registry-credentials created -``` - -Now that we have the Kubernetes YAML under the `./cartographer-bundle` directory, we can make use of a combination of -`kbld` and `kapp` to submit the Kubernetes the final objects that will define the installation of Cartographer already -pointing all the image references to your registry: - -```bash -# submit to kubernetes the kubernetes objects that describe the installation of -# Cartographer already pointing all images to the registry we configured -# ($DOCKER_REPO). -# -kapp deploy -a cartographer -f <(kbld -f ./cartographer-bundle) -``` - -```console -resolve | final: 10.188.0.3:5000/cartographer-27a7f49719016b1cfc534e74c3d36805@sha256:26c3dd5c8a38658218f22c03136c3b8adf45398a72ea7dde9524ec24bfa04783 -> 10.188.0.3:5000/cartographer-bundle@sha256:26c3dd5c8a38658218f22c03136c3b8adf45398a72ea7dde9524ec24bfa04783 -Target cluster 'https://127.0.0.1:32907' (nodes: cartographer-control-plane) - -Changes - -Namespace Name Kind Conds. Age Op Op st. Wait to Rs Ri -(cluster) clusterconfigtemplates.carto.run CustomResourceDefinition 0/0 t 49s update - reconcile ok - -^ clusterimagetemplates.carto.run CustomResourceDefinition 0/0 t 49s update - reconcile ok - -^ clustersourcetemplates.carto.run CustomResourceDefinition 0/0 t 49s update - reconcile ok - -^ clustersupplychains.carto.run CustomResourceDefinition 0/0 t 48s update - reconcile ok - -... - - -6:34:57PM: ok: reconcile customresourcedefinition/clustersupplychains.carto.run (apiextensions.k8s.io/v1) cluster -6:34:57PM: ---- applying complete [11/11 done] ---- -6:34:57PM: ---- waiting complete [11/11 done] ---- - -Succeeded -``` - -_(see the -[Kubernetes official documentation](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line) -on how to create a Secret to pull images from a private Docker registry or repository)._ - -## 3. Installation using Carvel Packaging - -Another way that you can go about installing Cartographer is with the use of [carvel Packaging] provided by [kapp -controller]. These, when used alongside [secretgen controller], provide a great experience for, in a declarative way, -installing Cartographer. - -To make use of them, first, make sure those pre-requisites above are satified - -### Prerequisites - -1. admin access to a Kubernetes Cluster and [cert-manager] - -2. [kapp-controller] is already installed in the cluster - -```bash -kubectl get crd packageinstalls.packaging.carvel.dev -``` - -```console -NAME CREATED AT -packageinstalls.packaging.carvel.dev 2021-09-13T14:32:00Z -``` - -In case you don't (i.e., you see _"packageinstalls.packaging.carvel.dev" not found_), proceed with installing it. - -```bash -KAPP_CONTROLLER_VERSION=0.30.0 - -kapp deploy --yes -a kapp-controller \ - -f https://github.com/vmware-tanzu/carvel-kapp-controller/releases/download/v$KAPP_CONTROLLER_VERSION/release.yml -``` - -```console -Target cluster 'https://127.0.0.1:39993' (nodes: cartographer-control-plane) - -Changes - -Namespace Name Kind -(cluster) apps.kappctrl.k14s.io CustomResourceDefinition -^ internalpackagemetadatas.internal.packaging.carvel.dev CustomResourceDefinition -^ internalpackages.internal.packaging.carvel.dev CustomResourceDefinition -^ kapp-controller Namespace - - -2:56:08PM: ---- waiting on 1 changes [14/15 done] ---- -2:56:13PM: ok: reconcile apiservice/v1alpha1.data.packaging.carvel.dev (apiregistration.k8s.io/v1) cluster -2:56:13PM: ---- applying complete [15/15 done] ---- -2:56:13PM: ---- waiting complete [15/15 done] ---- - -Succeeded -``` - -3. [secretgen-controller] installed - -```bash -kubectl get crd secretexports.secretgen.carvel.dev -``` - -```console -NAME CREATED AT -secretexports.secretgen.carvel.dev 2021-09-20T18:10:10Z -``` - -In case you don't (i.e., you see _"secretexports.secretgen.carvel.dev" not found_), proceed with installing it. - -```bash -SECRETGEN_CONTROLLER_VERSION=0.6.0 - -kapp deploy --yes -a secretgen-controller \ - -f https://github.com/vmware-tanzu/carvel-secretgen-controller/releases/download/v$SECRETGEN_CONTROLLER_VERSION/release.yml -``` - -```console -Target cluster 'https://127.0.0.1:45829' (nodes: cartographer-control-plane) - -Changes - -Namespace Name Kind Conds. Age Op Op st. Wait to Rs Ri -(cluster) certificates.secretgen.k14s.io CustomResourceDefinition - - create - reconcile - - -^ passwords.secretgen.k14s.io CustomResourceDefinition - - create - reconcile - - -^ rsakeys.secretgen.k14s.io CustomResourceDefinition - - create - reconcile - - -... -6:13:25PM: ok: reconcile deployment/secretgen-controller (apps/v1) namespace: secretgen-controller -6:13:25PM: ---- applying complete [11/11 done] ---- -6:13:25PM: ---- waiting complete [11/11 done] ---- - -Succeeded -``` - -3. the `default` service account has the capabilities necessary for installing submitting all those objects above to the - cluster - -```bash -kubectl create clusterrolebinding default-cluster-admin \ - --clusterrole=cluster-admin \ - --serviceaccount=default:default -``` - -```console -clusterrolebinding.rbac.authorization.k8s.io/default-cluster-admin created -``` - -### Package installation - -With the prerequisites satisfied, go ahead and download the `package*` files, as well as the `imgpkg` bundle: - -```bash -CARTOGRAPHER_VERSION=v0.0.6 - -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/download/v$CARTOGRAPHER_VERSION/bundle.tar -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/download/v$CARTOGRAPHER_VERSION/package.yaml -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/download/v$CARTOGRAPHER_VERSION/package-metadata.yaml -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/download/v$CARTOGRAPHER_VERSION/package-install.yaml -``` - -First, relocate the bundle: - -```bash -# set the repository where images should be reloated to, for instance, to -# relocate to a project named "foo" in DockerHub: DOCKER_REPO=foo -# -DOCKER_REPO=10.188.0.3:5000 - - -# relocate -# -imgpkg copy \ - --tar bundle.tar \ - --to-repo ${DOCKER_REPO?:Required}/cartographer-bundle \ - --lock-output cartographer-bundle.lock.yaml -``` - -Now that the bundle is in our repository, update the Package object to point at it (use the image from -`cartographer-bundle.lock.yaml`): - -```diff - apiVersion: data.packaging.carvel.dev/v1alpha1 - kind: Package - .. - template: - spec: - fetch: - - imgpkgBundle: -- image: IMAGE -+ image: 10.188.0.3:5000/cartographer-bundle@sha256:e296a3163 - template: -``` - -That done, submit the packaging objects to Kubernetes so that `kapp-controller` will materialize them into an -installation of Cartographer: - -```bash -kapp deploy --yes -a cartographer \ - -f ./package-metadata.yaml \ - -f ./package.yaml \ - -f ./package-install.yaml -``` - -```console -Target cluster 'https://127.0.0.1:42483' (nodes: cartographer-control-plane) - -Changes - -Namespace Name Kind Conds. Age Op Op st. Wait to Rs Ri -default cartographer.carto.run PackageMetadata - - create - reconcile - - -^ cartographer.carto.run.0.0.0-dev Package - - create - reconcile - - -^ cartographer.carto.run.0.0.0-dev PackageInstall - - create - reconcile - - - -... - -1:14:44PM: ---- applying 2 changes [0/3 done] ---- -1:14:44PM: create packagemetadata/cartographer.carto.run (data.packaging.carvel.dev/v1alpha1) namespace: default -1:14:54PM: ok: reconcile packageinstall/cartographer.carto.run.0.0.0-dev (packaging.carvel.dev/v1alpha1) namespace: default -1:14:54PM: ---- applying complete [3/3 done] ---- -1:14:54PM: ---- waiting complete [3/3 done] ---- - -Succeeded -``` - -if you relocated the images here to a private registry that requires authentication, make sure you create a `Secret` -with the credentials to the registry as well as a `SecretExport` object to make those credentials available to other -namespaces. - -```yaml -apiVersion: v1 -kind: Secret -metadata: - name: shared-registry-credentials -type: kubernetes.io/dockerconfigjson # needs to be this type -stringData: - .dockerconfigjson: | - { - "auths": { - "": { - "username": "", - "password": "" - } - } - } - ---- -apiVersion: secretgen.carvel.dev/v1alpha1 -kind: SecretExport -metadata: - name: shared-registry-credentials -spec: - toNamespaces: - - "*" -``` - -[#1]: https://github.com/vmware-tanzu/cartographer/issues/51 -[admission webhook]: https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/ -[carvel packaging]: https://carvel.dev/kapp-controller/docs/latest/packaging/ -[cert-manager]: https://github.com/jetstack/cert-manager -[imgpkg bundle]: https://carvel.dev/imgpkg/docs/latest/ -[kapp-controller]: https://carvel.dev/kapp-controller/ -[kapp]: https://carvel.dev/kapp/ -[kind]: https://github.com/kubernetes-sigs/kind -[releases page]: https://github.com/vmware-tanzu/cartographer/releases diff --git a/site/content/docs/v0.0.6/reference.md b/site/content/docs/v0.0.6/reference.md deleted file mode 100644 index 0f3d85ce4..000000000 --- a/site/content/docs/v0.0.6/reference.md +++ /dev/null @@ -1,413 +0,0 @@ ---- -aliases: - - /docs/v0.0.6/reference/gvk/ - - /docs/v0.0.6/reference/deliverable/ - - /docs/v0.0.6/reference/workload/ - - /docs/v0.0.6/reference/template/ - - /docs/v0.0.6/reference/runnable/ ---- - -# Spec Reference - -## GVK - -### Version - -All of the custom resources that Cartographer is working on are being written under `v1alpha1` to indicate that our -first version of it is at the "alpha stability level", and that it's our first iteration on it. - -See [versions in CustomResourceDefinitions]. - -[versions in customresourcedefinitions]: - https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/ - -### Group - -All of our custom resources under the `carto.run` group[^1]. - -For instance: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -``` - -## Resources - -Cartographer is composed of several custom resources, some of them being cluster-wide: - -- `ClusterSupplyChain` -- `ClusterSourceTemplate` -- `ClusterImageTemplate` -- `ClusterConfigTemplate` -- `ClusterTemplate` - -and two that are namespace-scoped: - -- `Workload` - -### Workload - -`Workload` allows the developer to pass information about the app to be delivered through the supply chain. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: spring-petclinic - labels: - # label to be matched against a `ClusterSupplyChain`s label selector. - # - app.tanzu.vmware.com/workload-type: web # (1) - -spec: - source: - # source code location in a git repository. - # - git: - url: https://github.com/scothis/spring-petclinic.git - ref: - branch: "main" - tag: "v0.0.1" - commit: "b4df00d" - - # image containing the source code to be used throughout - # the supply chain - # - image: harbor-repo.vmware.com/tanzu_desktop/golang-sample-source@sha256:e508a587 - - # serviceClaims to be bound through service-bindings - # - serviceClaims: - - name: broker - ref: - apiVersion: services.tanzu.vmware.com/v1alpha1 - kind: RabbitMQ - name: rabbit-broker - - # image with the app already built - # - image: foo/docker-built@sha256:b4df00d # (2) - - # environment variables to be passed to the main container - # running the application. - # - env: - - name: SPRING_PROFILES_ACTIVE - value: mysql - - # resource constraints for the main application. - # - resources: - requests: - memory: 1Gi - cpu: 100m - limits: - memory: 1Gi - cpu: 4000m - - # any other parameters that don't fit the ones already typed. - # - params: - - name: my-company.com/defaults/java-version - value: 11 - - name: debug - value: true -``` - -notes: - -1. labels serve as a way of indirectly selecting `ClusterSupplyChain` - `Workload`s without labels that match a - `ClusterSupplyChain`'s `spec.selector` won't be reconciled and will stay in an `Errored` state. - -2. `spec.image` is useful for enabling workflows that are not based on building the container image from within the - supplychain, but outside. - -_ref: -[pkg/apis/v1alpha1/workload.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.6/pkg/apis/v1alpha1/workload.go)_ - -### ClusterSupplyChain - -With a `ClusterSupplyChain`, app operators describe which "shape of applications" they deal with (via `spec.selector`), -and what series of resources are responsible for creating an artifact that delivers it (via `spec.resources`). - -Those `Workload`s that match `spec.selector` then go through the resources specified in `spec.resources`. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supplychain -spec: - # specifies the label key-value pair to select workloads. (required, one one) - # - selector: - app.tanzu.vmware.com/workload-type: web - - # set of resources that will take care of bringing the application to a - # deliverable state. (required, at least 1) - # - resources: - # name of the resource to be referenced by further resources in the chain. - # (required, unique) - # - - name: source-provider - # object reference to a template object that instructs how to - # instantiate and keep the resource up to date. (required) - # - templateRef: - kind: ClusterSourceTemplate - name: git-repository-battery - - - name: built-image-provider - templateRef: - kind: ClusterImageTemplate - name: kpack-battery - - # a set of resources that provide source information, that is, url and - # revision. - # - # in a template, these can be consumed as: - # - # $(sources..url)$ - # $(sources..revision)$ - # - # if there is only one source, it can be consumed as: - # - # $(source.url)$ - # $(sources.revision)$ - # - # (optional) - sources: - # name of the resource to provide the source information. (required) - # - - resource: source-provider - # name to be referenced in the template via a query over the list of - # sources (for instance, `$(sources.provider.url)`. - # - # (required, unique in this list) - # - name: provider - - # (optional) set of resources that provide image information. - # - # in a template, these can be consumed as: - # - # $(images..image) - # - # if there is only one image, it can be consumed as: - # - # $(image) - # - images: [] - - # (optional) set of resources that provide kubernetes configuration, - # for instance, podTemplateSpecs. - # in a template, these can be consumed as: - # - # $(configs..config) - # - # if there is only one config, it can be consumed as: - # - # $(config) - # - configs: [] - - # parameters to override the defaults from the templates. - # (optional) - # in a template, these can be consumed as: - # - # $(params.) - # - params: - # name of the parameter. (required, unique in this list, and must match - # template's pre-defined set of parameters) - # - - name: java-version - # value to be passed down to the template's parameters, supporting - # interpolation. - # - value: $(workload.spec.params[?(@.name=="nebhale-io/java-version")].value)$ - - name: jvm - value: openjdk -``` - -_ref: -[pkg/apis/v1alpha1/cluster_supply_chain.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.6/pkg/apis/v1alpha1/cluster_supply_chain.go)_ - -### ClusterSourceTemplate - -`ClusterSourceTemplate` indicates how the supply chain could instantiate a provider of source code information (url and -revision). - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: - name: git-repository-battery -spec: - # default set of parameters. (optional) - # - params: - # name of the parameter (required, unique in this list) - # - - name: git-implementation - # default value if not specified in the resource that references - # this templateClusterSupplyChain (required) - # - default: libgit2 - - # jsonpath expression to instruct where in the object templated out source - # code url information can be found. (required) - # - urlPath: .status.artifact.url - - # jsonpath expression to instruct where in the object templated out - # source code revision information can be found. (required) - # - revisionPath: .status.artifact.revision - - # template for instantiating the source provider. - # - # data available for interpolation (`$()$`: - # - # - workload (access to the whole workload object) - # - params - # - sources (if specified in the supply chain) - # - images (if specified in the supply chain) - # - configs (if specified in the supply chain) - # - # (required) - # - template: - apiVersion: source.toolkit.fluxcd.io/v1beta1 - kind: GitRepository - metadata: - name: $(workload.metadata.name)$-source - spec: - interval: 3m - url: $(workload.spec.source.git.url)$ - ref: $(workload.spec.source.git.ref)$ - gitImplementation: $(params.git-implementation.value)$ - ignore: "" -``` - -_ref: -[pkg/apis/v1alpha1/cluster_source_template.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.6/pkg/apis/v1alpha1/cluster_source_template.go)_ - -### ClusterImageTemplate - -`ClusterImageTemplate` instructs how the supply chain should instantiate an object responsible for supplying container -images, for instance, one that takes source code, builds a container image out of it and presents under its `.status` -the reference to that produced image. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-battery -spec: - # default set of parameters. see ClusterSourceTemplate for more - # information. (optional) - # - params: [] - - # jsonpath expression to instruct where in the object templated out container - # image information can be found. (required) - # - imagePath: .status.latestImage - - # template for instantiating the image provider. - # same data available for interpolation as any other `*Template`. (required) - # - template: - apiVersion: kpack.io/v1alpha1 - kind: Image - metadata: - name: $(workload.metadata.name)$-image - spec: - tag: projectcartographer/demo/$(workload.metadata.name)$ - serviceAccount: service-account - builder: - kind: ClusterBuilder - name: java-builder - source: - blob: - url: $(sources.provider.url)$ -``` - -_ref: -[pkg/apis/v1alpha1/cluster_image_template.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.6/pkg/apis/v1alpha1/cluster_image_template.go)_ - -### ClusterConfigTemplate - -Instructs the supply chain how to instantiate a Kubernetes object that knows how to make Kubernetes configurations -available to further resources in the chain. - -_ref: -[pkg/apis/v1alpha1/cluster_config_template.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.6/pkg/apis/v1alpha1/cluster_config_template.go)_ - -### ClusterTemplate - -A ClusterTemplate instructs the supply chain to instantiate a Kubernetes object that has no outputs to be supplied to -other objects in the chain, for instance, a resource that deploys a container image that has been built by other -ancestor resources. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ConfigTemplate -metadata: - name: deployer -spec: - # default parameters. see ClusterSourceTemplate for more info. (optional) - # - params: [] - - # how to template out the kubernetes object. (required) - # - template: - apiVersion: kappctrl.k14s.io/v1alpha1 - kind: App - metadata: - name: $(workload.metadata.name) - spec: - serviceAccountName: service-account - fetch: - - inline: - paths: - manifest.yml: | - --- - apiVersion: kapp.k14s.io/v1alpha1 - kind: Config - rebaseRules: - - path: [metadata, annotations, serving.knative.dev/creator] - type: copy - sources: [new, existing] - resourceMatchers: &matchers - - apiVersionKindMatcher: {apiVersion: serving.knative.dev/v1, kind: Service} - - path: [metadata, annotations, serving.knative.dev/lastModifier] - type: copy - sources: [new, existing] - resourceMatchers: *matchers - --- - apiVersion: serving.knative.dev/v1 - kind: Service - metadata: - name: links - labels: - app.kubernetes.io/part-of: $(workload.metadata.labels['app\.kubernetes\.io/part-of'])$ - spec: - template: - spec: - containers: - - image: $(images..image)$ - securityContext: - runAsUser: 1000 - template: - - ytt: {} - deploy: - - kapp: {} -``` - -_ref: -[pkg/apis/v1alpha1/cluster_template.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.6/pkg/apis/v1alpha1/cluster_template.go)_ diff --git a/site/content/docs/v0.0.6/style-guide.md b/site/content/docs/v0.0.6/style-guide.md deleted file mode 100644 index eb96b0d15..000000000 --- a/site/content/docs/v0.0.6/style-guide.md +++ /dev/null @@ -1,392 +0,0 @@ -_This style guide is adapted from the -[Velero Style Guide](https://github.com/vmware-tanzu/velero/blob/main/site/content/docs/v1.6/style-guide.md)._ - -This page outlines writing style guidelines for the Cartographer documentation and you should use this page as a -reference you write or edit content. Note that these are guidelines, not rules. Use your best judgment as you write -documentation, and feel free to propose changes to these guidelines. Changes to the style guide are made by the -Cartographer maintainers as a group. To propose a change or addition create an issue/PR. - -## Content best practices - -### Use present tense - -{{< table caption="Do and Don't - Use present tense" >}} - -| Do | Don't | -| ------------------------------ | -------------------------------- | -| This `command` starts a proxy. | This command will start a proxy. | - -{{< /table >}} - -Exception: Use future or past tense if it is required to convey the correct meaning. - -### Use active voice - -{{< table caption="Do and Don't - Use active voice" >}} - -| Do | Don't | -| ------------------------------------------ | ------------------------------------------------ | -| You can explore the API using a browser. | The API can be explored using a browser. | -| The YAML file specifies the replica count. | The replica count is specified in the YAML file. | - -{{< /table >}} - -Exception: Use passive voice if active voice leads to an awkward sentence construction. - -### Use simple and direct language - -Use simple and direct language. Avoid using unnecessary phrases, such as saying "please." - -{{< table caption="Do and Don't - Use simple and direct language" >}} - -| Do | Don't | -| --------------------------- | -------------------------------------------- | -| To create a ReplicaSet, ... | In order to create a ReplicaSet, ... | -| See the configuration file. | Please see the configuration file. | -| View the Pods. | With this next command, we'll view the Pods. | - -{{< /table >}} - -### Address the reader as "you" - -{{< table caption="Do and Don't - Addressing the reader" >}} - -| Do | Don't | -| --------------------------------------- | --------------------------------------- | -| You can create a Deployment by ... | We'll create a Deployment by ... | -| In the preceding output, you can see... | In the preceding output, we can see ... | - -{{< /table >}} - -### Avoid Latin phrases - -Prefer English terms over Latin abbreviations. - -{{< table caption="Do and Don't - Avoid Latin phrases" >}} - -| Do | Don't | -| ---------------- | --------- | -| For example, ... | e.g., ... | -| That is, ... | i.e., ... | - -{{< /table >}} - -Exception: Use "etc." for et cetera. - -## Patterns to avoid - -### Avoid using "we" - -Using "we" in a sentence can be confusing, because the reader might not know whether they're part of the "we" you're -describing. - -{{< table caption="Do and Don't - Avoid using we" >}} - -| Do | Don't | -| ----------------------------------------- | ----------------------------------------------- | -| Version 1.4 includes ... | In version 1.4, we have added ... | -| Kubernetes provides a new feature for ... | We provide a new feature ... | -| This page teaches you how to use Pods. | In this page, we are going to learn about Pods. | - -{{< /table >}} - -### Avoid jargon and idioms - -Many readers speak English as a second language. Avoid jargon and idioms to help them understand better. - -{{< table caption="Do and Don't - Avoid jargon and idioms" >}} - -| Do | Don't | -| --------------------- | ---------------------- | -| Internally, ... | Under the hood, ... | -| Create a new cluster. | Turn up a new cluster. | - -{{< /table >}} - -### Avoid statements about the future or that will soon be out of date - -Avoid making promises or giving hints about the future. If you need to talk about a beta feature, put the text under a -heading that identifies it as beta information. - -Also avoid words like “recently”, "currently" and "new." A feature that is new today might not be considered new in a -few months. - -{{< table caption="Do and Don't - Avoid statements that will soon be out of date" >}} - -| Do | Don't | -| ----------------------------------- | --------------------------------------- | -| In version 1.4, ... | In the current version, ... | -| The Federation feature provides ... | The new Federation feature provides ... | - -{{< /table >}} - -### Language - -This documentation uses U.S. English spelling and grammar. - -## Documentation formatting standards - -### Use camel case for API objects - -When you refer to an API object, use the same uppercase and lowercase letters that are used in the actual object name. -Typically, the names of API objects use [camel case](https://en.wikipedia.org/wiki/Camel_case). - -Don't split the API object name into separate words. For example, use PodTemplateList, not Pod Template List. - -Refer to API objects without saying "object," unless omitting "object" leads to an awkward sentence construction. - -{{< table caption="Do and Don't - Do and Don't - API objects" >}} - -| Do | Don't | -| -------------------------------------------- | -------------------------------------------- | -| The Pod has two containers. | The pod has two containers. | -| The Deployment is responsible for ... | The Deployment object is responsible for ... | -| A PodList is a list of Pods. | A Pod List is a list of pods. | -| The two ContainerPorts ... | The two ContainerPort objects ... | -| The two ContainerStateTerminated objects ... | The two ContainerStateTerminateds ... | - -{{< /table >}} - -### Use angle brackets for placeholders - -Use angle brackets for placeholders. Tell the reader what a placeholder represents. - -1. Display information about a Pod: - - kubectl describe pod -n - - If the pod is in the default namespace, you can omit the '-n' parameter. - -### Use bold for user interface elements - -{{< table caption="Do and Don't - Bold interface elements" >}} - -| Do | Don't | -| ----------------- | --------------- | -| Click **Fork**. | Click "Fork". | -| Select **Other**. | Select "Other". | - -{{< /table >}} - -### Use italics to define or introduce new terms - -{{< table caption="Do and Don't - Use italics for new terms" >}} - -| Do | Don't | -| ------------------------------------------ | -------------------------------------------- | -| A _cluster_ is a set of nodes ... | A "cluster" is a set of nodes ... | -| These components form the _control plane_. | These components form the **control plane**. | - -{{< /table >}} - -### Use code style for filenames, directories, paths, object field names and namespaces - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| -------------------------------------- | ------------------------------------ | -| Open the `envars.yaml` file. | Open the envars.yaml file. | -| Go to the `/docs/tutorials` directory. | Go to the /docs/tutorials directory. | -| Open the `/_data/concepts.yaml` file. | Open the /\_data/concepts.yaml file. | - -{{< /table >}} - -### Use punctuation inside quotes - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| events are recorded with an associated "stage." | events are recorded with an associated "stage". | -| The copy is called a "fork." | The copy is called a "fork". | - -{{< /table >}} - -Exception: When the quoted word is a user input. - -Example: - -- My user ID is “IM47g”. -- Did you try the password “mycatisawesome”? - -## Inline code formatting - -### Use code style for inline code and commands - -For inline code in an HTML document, use the `` tag. In a Markdown document, use the backtick (`` ` ``). - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| The `kubectl run` command creates a Deployment. | The "kubectl run" command creates a Deployment. | -| For declarative management, use `kubectl apply`. | For declarative management, use "kubectl apply". | -| Use single backticks to enclose inline code. For example, `var example = true`. | Use two asterisks (`**`) or an underscore (`_`) to enclose inline code. For example, **var example = true**. | -| Use triple backticks (\`\`\`) before and after a multi-line block of code for fenced code blocks. | Use multi-line blocks of code to create diagrams, flowcharts, or other illustrations. | -| Use meaningful variable names that have a context. | Use variable names such as 'foo','bar', and 'baz' that are not meaningful and lack context. | -| Remove trailing spaces in the code. | Add trailing spaces in the code, where these are important, because a screen reader will read out the spaces as well. | - -{{< /table >}} - -### Starting a sentence with a component tool or component name - -{{< table caption="Do and Don't - Starting a sentence with a component tool or component name" >}} - -| Do | Don't | -| ------------------------------------------------------------------- | --------------------------------------------------------------- | -| The `kubeadm` tool bootstraps and provisions machines in a cluster. | `kubeadm` tool bootstraps and provisions machines in a cluster. | -| The kube-scheduler is the default scheduler for Kubernetes. | kube-scheduler is the default scheduler for Kubernetes. | - -{{< /table >}} - -### Use normal style for string and integer field values - -For field values of type string or integer, use normal style without quotation marks. - -{{< table caption="Do and Don't - Use normal style for string and integer field values" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| Set the value of `imagePullPolicy` to `Always`. | Set the value of `imagePullPolicy` to "Always". | -| Set the value of `image` to `nginx:1.16`. | Set the value of `image` to nginx:1.16. | -| Set the value of the `replicas` field to `2`. | Set the value of the `replicas` field to 2. | - -{{< /table >}} - -## Code snippet formatting - -### Don't include the command prompt - -{{< table caption="Do and Don't - Don't include the command prompt" >}} - -| Do | Don't | -| ---------------- | ------------------ | -| kubectl get pods | $ kubectl get pods | - -{{< /table >}} - -### Separate commands from output - -Verify that the Pod is running on your chosen node: - -``` -kubectl get pods --output=wide -``` - -The output is similar to this: - -``` -NAME READY STATUS RESTARTS AGE IP NODE -nginx 1/1 Running 0 13s 10.200.0.4 worker0 -``` - -## Cartographer word list - -A list of Cartographer-specific terms and words to be used consistently across the site. - -{{< table caption="Cartographer word list" >}} - -| Trem | Usage | -| ------------ | ------------------------------------------------------------------ | -| Kubernetes | Kubernetes should always be capitalized. | -| Docker | Docker should always be capitalized. | -| Cartographer | Cartographer should always be capitalized. | -| VMware | VMware should always be correctly capitalized. | -| On-premises | On-premises or on-prem rather than on-premise or other variations. | -| Backup | Backup rather than back up, back-up or other variations. | -| Plugin | Plugin rather than plug-in or other variations. | -| Allowlist | Use allowlist instead of whitelist. | -| Denylist | Use denylist instead of blacklist. | - -{{< /table >}} - -## Markdown elements - -### Headings - -People accessing this documentation may use a screen reader or other assistive technology (AT). -[Screen readers](https://en.wikipedia.org/wiki/Screen_reader) are linear output devices, they output items on a page one -at a time. If there is a lot of content on a page, you can use headings to give the page an internal structure. A good -page structure helps all readers to easily navigate the page or filter topics of interest. - -{{< table caption="Do and Don't - Headings" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| Include a title on each page or blog post. | Include more than one title headings (#) in a page. | -| Use ordered headings to provide a meaningful high-level outline of your content. | Use headings level 4 through 6, unless it is absolutely necessary. If your content is that detailed, it may need to be broken into separate articles. | -| Use sentence case for headings. For example, **Extend kubectl with plugins** | Use title case for headings. For example, **Extend Kubectl With Plugins** | - -{{< /table >}} - -### Paragraphs - -{{< table caption="Do and Don't - Paragraphs" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------------- | ------------------------------------ | -| Try to keep paragraphs under 6 sentences. | Write long-winded paragraphs. | -| Use three hyphens (`---`) to create a horizontal rule for breaks in paragraph content. | Use horizontal rules for decoration. | - -{{< /table >}} - -### Links - -{{< table caption="Do and Don't - Links" >}} - -| Do | Don't | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| Write hyperlinks that give you context for the content they link to. For example: Certain ports are open on your machines. See [check required ports](#check-required-ports) for more details. | Use ambiguous terms such as “click here”. For example: Certain ports are open on your machines. See [here](#check-required-ports) for more details. | -| Write Markdown-style links: `[link text](URL)`. For example: `[community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA)` and the output is [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA). | Write HTML-style links: `Visit our tutorial!` | - -{{< /table >}} - -### Lists - -Group items in a list that are related to each other and need to appear in a specific order or to indicate a correlation -between multiple items. When a screen reader comes across a list—whether it is an ordered or unordered list—it will be -announced to the user that there is a group of list items. The user can then use the arrow keys to move up and down -between the various items in the list. Website navigation links can also be marked up as list items; after all they are -nothing but a group of related links. - -- End each item in a list with a period if one or more items in the list are complete sentences. For the sake of - consistency, normally either all items or none should be complete sentences. - -- Ordered lists that are part of an incomplete introductory sentence can be in lowercase and punctuated as if each item - was a part of the introductory sentence. - -- Use the number one (`1.`) for ordered lists. - -- Use (`+`), (`*`), or (`-`) for unordered lists - be consistent within the same document. - -- Leave a blank line after each list. - -- Indent nested lists with four spaces (for example, ⋅⋅⋅⋅). - -- List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either - four spaces or one tab. - -### Tables - -The semantic purpose of a data table is to present tabular data. Sighted users can quickly scan the table but a screen -reader goes through line by line. A table [caption](https://www.w3schools.com/tags/tag_caption.asp) is used to create a -descriptive title for a data table. Assistive technologies (AT) use the HTML table caption element to identify the table -contents to the user within the page structure. - -If you need to create a table, create the table in markdown and use the table -[Hugo shortcode](https://gohugo.io/content-management/shortcodes/) to include a caption. - -``` -{{}} - -| Parameter | Description | Default | -|:---------|:------------|:------- | -| `timeout` | The timeout for requests | `30s` | -| `logLevel` | The log level for log output | `INFO` | - -{{< /table */>}} - -``` - -**Note:** This shortcode does not support markdown reference-style links. Use inline-style links in tables. See more -information about [markdown link styles](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links). diff --git a/site/content/docs/v0.0.6/uninstall.md b/site/content/docs/v0.0.6/uninstall.md deleted file mode 100644 index 6c4e38774..000000000 --- a/site/content/docs/v0.0.6/uninstall.md +++ /dev/null @@ -1,39 +0,0 @@ -# Uninstalling Cartographer - -Having installed all the objects using [kapp], which keeps track of all of them as a single unit (an app), we can -uninstall everything by just referencing that name: - -```bash -kapp delete -a cartographer -kubectl delete namespace cartographer-system -``` - -```console -Target cluster 'https://127.0.0.1:34135' (nodes: kind-control-plane) - -Changes - -Namespace Name Kind Conds. Age Op Op st. Wait to Rs Ri -(cluster) cartographer-cluster-admin ClusterRoleBinding - 11s delete - delete ok - -^ clusterconfigtemplates.carto.run CustomResourceDefinition 2/2 t 12s delete - delete ok - -... -^ selfsigned-issuer Issuer 1/1 t 10s delete - delete ok - - -Op: 0 create, 15 delete, 0 update, 5 noop -Wait to: 0 reconcile, 20 delete, 0 noop - -Continue? [yN]: y -... -8:28:22AM: ok: delete pod/cartographer-controller-dbcf767b8-bw2nf (v1) namespace: cartographer-system -8:28:22AM: ---- applying complete [20/20 done] ---- -8:28:22AM: ---- waiting complete [20/20 done] ---- - -Succeeded -``` - -[admission webhook]: https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/ -[carvel packaging]: https://carvel.dev/kapp-controller/docs/latest/packaging/ -[cert-manager]: https://github.com/jetstack/cert-manager -[kapp-controller]: https://carvel.dev/kapp-controller/ -[kapp]: https://carvel.dev/kapp/ -[kind]: https://github.com/kubernetes-sigs/kind diff --git a/site/content/docs/v0.0.7/_index.md b/site/content/docs/v0.0.7/_index.md deleted file mode 100644 index e485692e5..000000000 --- a/site/content/docs/v0.0.7/_index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -version: v0.0.7 -cascade: - layout: docs ---- - -## TL;DR - -Cartographer is a -[Supply Chain Choreographer](https://tanzu.vmware.com/developer/guides/ci-cd/supply-chain-choreography/) for Kubernetes. -It allows App Operators to create pre-approved paths to production by integrating Kubernetes resources with the elements -of their existing toolchains (e.g. Jenkins). - -**Each** pre-approved supply chain creates a paved road to production; orchestrating supply chain resources - test, -build, scan, and deploy - allowing developers to be able to focus on delivering value to their users while also -providing App Operators with the peace of mind that all code in production has passed through all of the steps of an -approved workflow. - -## Cartographer Design and Philosophy - -Cartographer allows users to define all of the steps that an application must go through to create an image and -Kubernetes configuration. Users achieve this with the Supply Chain abstraction, see -[Spec Reference](reference.md#clustersupplychain). - -The supply chain consists of resources that are specified via Templates. Each template acts as a wrapper for existing -Kubernetes resources and allows them to be used with Cartographer. There are currently four different types of templates -that can be use in a Cartographer supply chain: - -- [Source Template](reference.md#clustersourcetemplate) -- [Image Template](reference.md#clusterimagetemplate) -- [Config Template](reference.md#clusterconfigtemplate) -- [Generic Template](reference.md#clustertemplate) - -Contrary to many other Kubernetes native workflow tools that already exist in the market, Cartographer does not “run” -any of the objects themselves. Instead, it monitors the execution of each resource and templates the following resource -in the supply chain after a given resource has completed execution and updated its status. - -The supply chain may also be extended to include integrations to existing CI/CD pipelines by using the Runnable CRD -(which is part of Cartographer). The Runnable CRD acts as a wrapper for CRDs that are immutable (meaning that instead of -updating an object, a new object would be created). There are a number of CI/CD CRDs that follow this pattern, including -Tekton. The Runnable CRD provides a declarative way for pipelines to be run inside of Cartographer. - -While the supply chain is operator facing, Cartographer also provides an abstraction for developers called -[workloads](reference.md#workload). Workloads allow developers to create application specifications such as the location -of their repository, environment variables and service claims. - -By design, supply chains can be reused by many workloads. This allows an operator to specify the steps in the path to -production a single time, and for developers to specify their applications independently but for each to use the same -path to production. The intent is that developers are able to focus on providing value for their users and can reach -production quickly and easily, while providing peace of mind for app operators, who are ensured that each application -has passed through the steps of the path to production that they’ve defined. - -![Cartographer High Level Diagram](img/ownership-flow.png) diff --git a/site/content/docs/v0.0.7/examples.md b/site/content/docs/v0.0.7/examples.md deleted file mode 100644 index def4fdcff..000000000 --- a/site/content/docs/v0.0.7/examples.md +++ /dev/null @@ -1,5 +0,0 @@ -# Examples - -Check out the [examples directory] on our repository. - -[examples directory]: https://github.com/vmware-tanzu/cartographer/tree/main/examples diff --git a/site/content/docs/v0.0.7/img/ownership-flow.png b/site/content/docs/v0.0.7/img/ownership-flow.png deleted file mode 100644 index f74cb3cfa..000000000 Binary files a/site/content/docs/v0.0.7/img/ownership-flow.png and /dev/null differ diff --git a/site/content/docs/v0.0.7/install.md b/site/content/docs/v0.0.7/install.md deleted file mode 100644 index 2b57a8073..000000000 --- a/site/content/docs/v0.0.7/install.md +++ /dev/null @@ -1,474 +0,0 @@ -# Installing Cartographer - -There are three recommended ways of installing Cartographer: - -1. with a single YAML file (quick!) -2. using an [imgpkg bundle], making easier for relocation -3. using a [carvel Packaging] objects, for an opinionated package-based workflow - -If all you want to do is get started quick and fetching images from DockerHub is not an issue, -[`1`](#1-single-file-quick-install) is the way to go. Otherwise, check out the other approaches (especially if you want -to have everything relocated to a registry of your own). - -tl;dr _(having [cert-manager] already installed)_: - -```bash -kubectl create namespace cartographer-system -kubectl apply -f https://github.com/vmware-tanzu/cartographer/releases/v0.0.7/download/cartographer.yaml -``` - -## Pre-requisites - -### Admin capabilities in a recent-enough Kubernetes cluster (v1.19+) - -Currently, Cartographer doesn't provide support for granular permissions (see [#51]), as such, to configure the supply -chain (which is cluster-wide), you must have admin capabilities in the cluster you're targetting. - -### [cert-manager] for managing the controller's certificates - -In order to have Cartographer's validation webhooks up and running in the cluster, [cert-manager] is utilized to -generate TLS certificates as well to keep them up to date. - -First, verify if you have the dependency installed: - -```bash -kubectl get crds certificates.cert-manager.io -``` - -```console -NAME CREATED AT -certificates.cert-manager.io 2021-08-27T18:41:40Z -``` - -In case you don't (i.e., you see _""certificates.cert-manager.io" not found"_), proceed with installing it. - -```bash -CERT_MANAGER_VERSION=1.5.3 - -kapp deploy --yes -a cert-manager \ - -f https://github.com/jetstack/cert-manager/releases/download/v$CERT_MANAGER_VERSION/cert-manager.yaml -``` - -```console -Target cluster 'https://127.0.0.1:39495' (nodes: kind-control-plane) - -Changes -Namespace Name Kind ... -(cluster) cert-manager Namespace ... -^ cert-manager-cainjector ClusterRole ... -^ cert-manager-cainjector ClusterRoleBinding ... -... -7:53:32AM: ok: reconcile customresourcedefinition/issuers.cert-manager.io (apiextensions.k8s.io/v1) cluster -7:53:32AM: ---- applying complete [6/6 done] ---- -7:53:32AM: ---- waiting complete [6/6 done] ---- - -Succeeded -``` - -ps.: although we recommend using [kapp] as provided in the instructions you'll see here, its use can be replaced by -`kubectl apply`. - -## 1. Single file, Quick install - -Cartographer releases include a file (`cartographer.yaml`) that contains all necessary files for installing it in a -cluster - -```console -Resources in file './bundle/cartographer.yaml' - -Namespace Name Kind -(cluster) cartographer-cluster-admin ClusterRoleBinding -^ clusterconfigtemplates.carto.run CustomResourceDefinition -^ clusterimagetemplates.carto.run CustomResourceDefinition -^ clustersourcetemplates.carto.run CustomResourceDefinition -^ clustersupplychains.carto.run CustomResourceDefinition -^ clustersupplychainvalidator ValidatingWebhookConfiguration -^ clustertemplates.carto.run CustomResourceDefinition -^ pipelines.carto.run CustomResourceDefinition -^ runtemplates.carto.run CustomResourceDefinition -^ workloads.carto.run CustomResourceDefinition - -cartographer-system cartographer-controller Deployment -^ cartographer-controller ServiceAccount -^ cartographer-webhook Certificate -^ cartographer-webhook Secret -^ cartographer-webhook Service -^ private-registry-credentials Secret -^ selfsigned-issuer Issuer -``` - -providing all the necessary objects that would entail a full installation of it. - -To install it, first create the namespace where the controller will be installed: - -```bash -kubectl create namespace cartographer-system -``` - -```console -namespace/cartographer-system created -``` - -and then, submit the objects included in the release: - -```bash -kubectl apply -f https://github.com/vmware-tanzu/cartographer/releases/v0.0.7/download/cartographer.yaml -``` - -```console -customresourcedefinition.apiextensions.k8s.io/clusterconfigtemplates.carto.run configured -customresourcedefinition.apiextensions.k8s.io/clusterimagetemplates.carto.run configured -... -secret/cartographer-webhook created -``` - -## 2. Bundle tarball - -This installation method is great for those that want to host Cartographer's image and installation objects by -themselves - either so they live in a public container image registry of their own, or for air-gapped scenarios where -bits need to be moved in an offline fashion. - -First, head to the [releases page] and download the `bundle.tar` file available for the release you want to install. - -```bash -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/v0.0.7/download/bundle.tar -``` - -This bundle contains everything we need to install Cartographer, from container images to Kubernetes manifests, it's all -in the bundle. - -First, relocate it from the tarball you just downloaded to a container image registry that the cluster you're willing to -install Cartographer has access to: - -```bash -# set the repository where images should be reloated to, for instance, to -# relocate to a project named "foo" in DockerHub: DOCKER_REPO=foo -# -DOCKER_REPO=10.188.0.3:5000 - - -# relocate -# -imgpkg copy \ - --tar bundle.tar \ - --to-repo ${DOCKER_REPO?:Required}/cartographer-bundle \ - --lock-output cartographer-bundle.lock.yaml -``` - -```console -copy | importing 2 images... -copy | done uploading images -Succeeded -``` - -With the the bundle and all Cartographer-related images moved to the destination registry, we can move on to pulling the -YAML files that we can use to submit to Kubernetes for installing Cartographer: - -```bash -# pull to the directory `cartographer-bundle` the contents of the imgpkg -# bundle as specified by the lock file. -# -imgpkg pull \ - --lock cartographer-bundle.lock.yaml \ - --output ./cartographer-bundle -``` - -```console -Pulling bundle '10.188.0.3:5000/cartographer-bundle@sha256:e296a316385a57048cb189a3a710cecf128a62e77600a495f32d46309c6e8113' - Extracting layer 'sha256:0b93d1878c9be97b872f08da8d583796985919df345c39c874766142464d80e7' (1/1) - -Locating image lock file images... -The bundle repo (10.188.0.3:5000/cartographer-bundle) is hosting every image specified in the bundle's Images Lock file (.imgpkg/images.yml) - -Succeeded -``` - -Create the namespace where Cartographer's objects will be placed: - -```bash -kubectl create namespace cartographer-system -``` - -```console -namespace/cartographer-system created -``` - -If the registry you pushed the bundle to is accessible to the cluster without any extra authentication needs, skip this -step. Otherwise, make sure you provide to the `Deployment` object that runs the controller the image pull secrets -necessary for fetching the image. - -By default, the controller's ServiceAccount points at a placeholder secret called 'private-registry-credentials' to be -used as the image pull secret, so, by creating such secret in the `cartographer-system` namespace Kubernetes will then -be able to use that secret as the credenital provider for fetching the controller's image: - -```bash -# create a secret that will have .dockerconfigjson populated with the -# credentials for the image registry. -# -kubectl create secret -n cartographer-system \ - docker-registry private-registry-credentials \ - --docker-server=$DOCKER_REPO \ - --docker-username=admin \ - --docker-password=admin -``` - -```console -secret/private-registry-credentials created -``` - -Now that we have the Kubernetes YAML under the `./cartographer-bundle` directory, we can make use of a combination of -`kbld` and `kapp` to submit the Kubernetes the final objects that will define the installation of Cartographer already -pointing all the image references to your registry: - -```bash -# submit to kubernetes the kubernetes objects that describe the installation of -# Cartographer already pointing all images to the registry we configured -# ($DOCKER_REPO). -# -kapp deploy -a cartographer -f <(kbld -f ./cartographer-bundle) -``` - -```console -resolve | final: 10.188.0.3:5000/cartographer-27a7f49719016b1cfc534e74c3d36805@sha256:26c3dd5c8a38658218f22c03136c3b8adf45398a72ea7dde9524ec24bfa04783 -> 10.188.0.3:5000/cartographer-bundle@sha256:26c3dd5c8a38658218f22c03136c3b8adf45398a72ea7dde9524ec24bfa04783 -Target cluster 'https://127.0.0.1:32907' (nodes: cartographer-control-plane) - -Changes - -Namespace Name Kind Conds. Age Op Op st. Wait to Rs Ri -(cluster) clusterconfigtemplates.carto.run CustomResourceDefinition 0/0 t 49s update - reconcile ok - -^ clusterimagetemplates.carto.run CustomResourceDefinition 0/0 t 49s update - reconcile ok - -^ clustersourcetemplates.carto.run CustomResourceDefinition 0/0 t 49s update - reconcile ok - -^ clustersupplychains.carto.run CustomResourceDefinition 0/0 t 48s update - reconcile ok - -... - - -6:34:57PM: ok: reconcile customresourcedefinition/clustersupplychains.carto.run (apiextensions.k8s.io/v1) cluster -6:34:57PM: ---- applying complete [11/11 done] ---- -6:34:57PM: ---- waiting complete [11/11 done] ---- - -Succeeded -``` - -_(see the -[Kubernetes official documentation](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-secret-by-providing-credentials-on-the-command-line) -on how to create a Secret to pull images from a private Docker registry or repository)._ - -## 3. Installation using Carvel Packaging - -Another way that you can go about installing Cartographer is with the use of [carvel Packaging] provided by [kapp -controller]. These, when used alongside [secretgen controller], provide a great experience for, in a declarative way, -installing Cartographer. - -To make use of them, first, make sure those pre-requisites above are satified - -### Prerequisites - -1. admin access to a Kubernetes Cluster and [cert-manager] - -2. [kapp-controller] is already installed in the cluster - -```bash -kubectl get crd packageinstalls.packaging.carvel.dev -``` - -```console -NAME CREATED AT -packageinstalls.packaging.carvel.dev 2021-09-13T14:32:00Z -``` - -In case you don't (i.e., you see _"packageinstalls.packaging.carvel.dev" not found_), proceed with installing it. - -```bash -KAPP_CONTROLLER_VERSION=0.29.0 - -kapp deploy --yes -a kapp-controller \ - -f https://github.com/vmware-tanzu/carvel-kapp-controller/releases/download/v$KAPP_CONTROLLER_VERSION/release.yml -``` - -```console -Target cluster 'https://127.0.0.1:39993' (nodes: cartographer-control-plane) - -Changes - -Namespace Name Kind -(cluster) apps.kappctrl.k14s.io CustomResourceDefinition -^ internalpackagemetadatas.internal.packaging.carvel.dev CustomResourceDefinition -^ internalpackages.internal.packaging.carvel.dev CustomResourceDefinition -^ kapp-controller Namespace - - -2:56:08PM: ---- waiting on 1 changes [14/15 done] ---- -2:56:13PM: ok: reconcile apiservice/v1alpha1.data.packaging.carvel.dev (apiregistration.k8s.io/v1) cluster -2:56:13PM: ---- applying complete [15/15 done] ---- -2:56:13PM: ---- waiting complete [15/15 done] ---- - -Succeeded -``` - -3. [secretgen-controller] installed - -```bash -kubectl get crd secretexports.secretgen.carvel.dev -``` - -```console -NAME CREATED AT -secretexports.secretgen.carvel.dev 2021-09-20T18:10:10Z -``` - -In case you don't (i.e., you see _"secretexports.secretgen.carvel.dev" not found_), proceed with installing it. - -```bash -SECRETGEN_CONTROLLER_VERSION=0.6.0 - -kapp deploy --yes -a secretgen-controller \ - -f https://github.com/vmware-tanzu/carvel-secretgen-controller/releases/download/v$SECRETGEN_CONTROLLER_VERSION/release.yml -``` - -```console -Target cluster 'https://127.0.0.1:45829' (nodes: cartographer-control-plane) - -Changes - -Namespace Name Kind Conds. Age Op Op st. Wait to Rs Ri -(cluster) certificates.secretgen.k14s.io CustomResourceDefinition - - create - reconcile - - -^ passwords.secretgen.k14s.io CustomResourceDefinition - - create - reconcile - - -^ rsakeys.secretgen.k14s.io CustomResourceDefinition - - create - reconcile - - -... -6:13:25PM: ok: reconcile deployment/secretgen-controller (apps/v1) namespace: secretgen-controller -6:13:25PM: ---- applying complete [11/11 done] ---- -6:13:25PM: ---- waiting complete [11/11 done] ---- - -Succeeded -``` - -3. the `default` service account has the capabilities necessary for installing submitting all those objects above to the - cluster - -```bash -kubectl create clusterrolebinding default-cluster-admin \ - --clusterrole=cluster-admin \ - --serviceaccount=default:default -``` - -```console -clusterrolebinding.rbac.authorization.k8s.io/default-cluster-admin created -``` - -### Package installation - -With the prerequisites satisfied, go ahead and download the `package*` files, as well as the `imgpkg` bundle: - -```bash -CARTOGRAPHER_VERSION=v0.0.6 - -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/download/v$CARTOGRAPHER_VERSION/bundle.tar -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/download/v$CARTOGRAPHER_VERSION/package.yaml -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/download/v$CARTOGRAPHER_VERSION/package-metadata.yaml -curl -SOL https://github.com/vmware-tanzu/cartographer/releases/download/v$CARTOGRAPHER_VERSION/package-install.yaml -``` - -First, relocate the bundle: - -```bash -# set the repository where images should be reloated to, for instance, to -# relocate to a project named "foo" in DockerHub: DOCKER_REPO=foo -# -DOCKER_REPO=10.188.0.3:5000 - - -# relocate -# -imgpkg copy \ - --tar bundle.tar \ - --to-repo ${DOCKER_REPO?:Required}/cartographer-bundle \ - --lock-output cartographer-bundle.lock.yaml -``` - -Now that the bundle is in our repository, update the Package object to point at it (use the image from -`cartographer-bundle.lock.yaml`): - -```diff - apiVersion: data.packaging.carvel.dev/v1alpha1 - kind: Package - .. - template: - spec: - fetch: - - imgpkgBundle: -- image: IMAGE -+ image: 10.188.0.3:5000/cartographer-bundle@sha256:e296a3163 - template: -``` - -That done, submit the packaging objects to Kubernetes so that `kapp-controller` will materialize them into an -installation of Cartographer: - -```bash -kapp deploy --yes -a cartographer \ - -f ./package-metadata.yaml \ - -f ./package.yaml \ - -f ./package-install.yaml -``` - -```console -Target cluster 'https://127.0.0.1:42483' (nodes: cartographer-control-plane) - -Changes - -Namespace Name Kind Conds. Age Op Op st. Wait to Rs Ri -default cartographer.carto.run PackageMetadata - - create - reconcile - - -^ cartographer.carto.run.0.0.0-dev Package - - create - reconcile - - -^ cartographer.carto.run.0.0.0-dev PackageInstall - - create - reconcile - - - -... - -1:14:44PM: ---- applying 2 changes [0/3 done] ---- -1:14:44PM: create packagemetadata/cartographer.carto.run (data.packaging.carvel.dev/v1alpha1) namespace: default -1:14:54PM: ok: reconcile packageinstall/cartographer.carto.run.0.0.0-dev (packaging.carvel.dev/v1alpha1) namespace: default -1:14:54PM: ---- applying complete [3/3 done] ---- -1:14:54PM: ---- waiting complete [3/3 done] ---- - -Succeeded -``` - -if you relocated the images here to a private registry that requires authentication, make sure you create a `Secret` -with the credentials to the registry as well as a `SecretExport` object to make those credentials available to other -namespaces. - -```yaml -apiVersion: v1 -kind: Secret -metadata: - name: shared-registry-credentials -type: kubernetes.io/dockerconfigjson # needs to be this type -stringData: - .dockerconfigjson: | - { - "auths": { - "": { - "username": "", - "password": "" - } - } - } - ---- -apiVersion: secretgen.carvel.dev/v1alpha1 -kind: SecretExport -metadata: - name: shared-registry-credentials -spec: - toNamespaces: - - "*" -``` - -[#1]: https://github.com/vmware-tanzu/cartographer/issues/51 -[admission webhook]: https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/ -[carvel packaging]: https://carvel.dev/kapp-controller/docs/latest/packaging/ -[cert-manager]: https://github.com/jetstack/cert-manager -[imgpkg bundle]: https://carvel.dev/imgpkg/docs/latest/ -[kapp-controller]: https://carvel.dev/kapp-controller/ -[kapp]: https://carvel.dev/kapp/ -[kind]: https://github.com/kubernetes-sigs/kind -[releases page]: https://github.com/vmware-tanzu/cartographer/releases diff --git a/site/content/docs/v0.0.7/reference.md b/site/content/docs/v0.0.7/reference.md deleted file mode 100644 index 672277bad..000000000 --- a/site/content/docs/v0.0.7/reference.md +++ /dev/null @@ -1,418 +0,0 @@ ---- -aliases: - - /docs/v0.0.7/reference/gvk/ - - /docs/v0.0.7/reference/deliverable/ - - /docs/v0.0.7/reference/workload/ - - /docs/v0.0.7/reference/template/ - - /docs/v0.0.7/reference/runnable/ ---- - -# Spec Reference - -## GVK - -### Version - -All of the custom resources that Cartographer is working on are being written under `v1alpha1` to indicate that our -first version of it is at the "alpha stability level", and that it's our first iteration on it. - -See [versions in CustomResourceDefinitions]. - -[versions in customresourcedefinitions]: - https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/ - -### Group - -All of our custom resources under the `carto.run` group[^1]. - -For instance: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -``` - -## Resources - -Cartographer is composed of several custom resources, some of them being cluster-wide: - -- `ClusterSupplyChain` -- `ClusterSourceTemplate` -- `ClusterImageTemplate` -- `ClusterConfigTemplate` -- `ClusterTemplate` - -and two that are namespace-scoped: - -- [`Workload`](#workload) -- [`Delivery`](#delivery) - -### Workload - -`Workload` allows the developer to pass information about the app to be delivered through the supply chain. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: spring-petclinic - labels: - # label to be matched against a `ClusterSupplyChain`s label selector. - # - app.tanzu.vmware.com/workload-type: web # (1) - -spec: - source: - # source code location in a git repository. - # - git: - url: https://github.com/scothis/spring-petclinic.git - ref: - branch: "main" - tag: "v0.0.1" - commit: "b4df00d" - - # image containing the source code to be used throughout - # the supply chain - # - image: harbor-repo.vmware.com/tanzu_desktop/golang-sample-source@sha256:e508a587 - - # serviceClaims to be bound through service-bindings - # - serviceClaims: - - name: broker - ref: - apiVersion: services.tanzu.vmware.com/v1alpha1 - kind: RabbitMQ - name: rabbit-broker - - # image with the app already built - # - image: foo/docker-built@sha256:b4df00d # (2) - - # environment variables to be passed to the main container - # running the application. - # - env: - - name: SPRING_PROFILES_ACTIVE - value: mysql - - # resource constraints for the main application. - # - resources: - requests: - memory: 1Gi - cpu: 100m - limits: - memory: 1Gi - cpu: 4000m - - # any other parameters that don't fit the ones already typed. - # - params: - - name: my-company.com/defaults/java-version - value: 11 - - name: debug - value: true -``` - -notes: - -1. labels serve as a way of indirectly selecting `ClusterSupplyChain` - `Workload`s without labels that match a - `ClusterSupplyChain`'s `spec.selector` won't be reconciled and will stay in an `Errored` state. - -2. `spec.image` is useful for enabling workflows that are not based on building the container image from within the - supplychain, but outside. - -_ref: -[pkg/apis/v1alpha1/workload.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.7/pkg/apis/v1alpha1/workload.go)_ - -### ClusterSupplyChain - -With a `ClusterSupplyChain`, app operators describe which "shape of applications" they deal with (via `spec.selector`), -and what series of resources are responsible for creating an artifact that delivers it (via `spec.resources`). - -Those `Workload`s that match `spec.selector` then go through the resources specified in `spec.resources`. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supplychain -spec: - # specifies the label key-value pair to select workloads. (required, one one) - # - selector: - app.tanzu.vmware.com/workload-type: web - - # set of resources that will take care of bringing the application to a - # deliverable state. (required, at least 1) - # - resources: - # name of the resource to be referenced by further resources in the chain. - # (required, unique) - # - - name: source-provider - # object reference to a template object that instructs how to - # instantiate and keep the resource up to date. (required) - # - templateRef: - kind: ClusterSourceTemplate - name: git-repository-battery - - - name: built-image-provider - templateRef: - kind: ClusterImageTemplate - name: kpack-battery - - # a set of resources that provide source information, that is, url and - # revision. - # - # in a template, these can be consumed as: - # - # $(sources..url)$ - # $(sources..revision)$ - # - # if there is only one source, it can be consumed as: - # - # $(source.url)$ - # $(sources.revision)$ - # - # (optional) - sources: - # name of the resource to provide the source information. (required) - # - - resource: source-provider - # name to be referenced in the template via a query over the list of - # sources (for instance, `$(sources.provider.url)`. - # - # (required, unique in this list) - # - name: provider - - # (optional) set of resources that provide image information. - # - # in a template, these can be consumed as: - # - # $(images..image) - # - # if there is only one image, it can be consumed as: - # - # $(image) - # - images: [] - - # (optional) set of resources that provide kubernetes configuration, - # for instance, podTemplateSpecs. - # in a template, these can be consumed as: - # - # $(configs..config) - # - # if there is only one config, it can be consumed as: - # - # $(config) - # - configs: [] - - # parameters to override the defaults from the templates. - # (optional) - # in a template, these can be consumed as: - # - # $(params.) - # - params: - # name of the parameter. (required, unique in this list, and must match - # template's pre-defined set of parameters) - # - - name: java-version - # value to be passed down to the template's parameters, supporting - # interpolation. - # - value: $(workload.spec.params[?(@.name=="nebhale-io/java-version")].value)$ - - name: jvm - value: openjdk -``` - -_ref: -[pkg/apis/v1alpha1/cluster_supply_chain.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.7/pkg/apis/v1alpha1/cluster_supply_chain.go)_ - -### ClusterSourceTemplate - -`ClusterSourceTemplate` indicates how the supply chain could instantiate a provider of source code information (url and -revision). - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: - name: git-repository-battery -spec: - # default set of parameters. (optional) - # - params: - # name of the parameter (required, unique in this list) - # - - name: git-implementation - # default value if not specified in the resource that references - # this templateClusterSupplyChain (required) - # - default: libgit2 - - # jsonpath expression to instruct where in the object templated out source - # code url information can be found. (required) - # - urlPath: .status.artifact.url - - # jsonpath expression to instruct where in the object templated out - # source code revision information can be found. (required) - # - revisionPath: .status.artifact.revision - - # template for instantiating the source provider. - # - # data available for interpolation (`$()$`: - # - # - workload (access to the whole workload object) - # - params - # - sources (if specified in the supply chain) - # - images (if specified in the supply chain) - # - configs (if specified in the supply chain) - # - # (required) - # - template: - apiVersion: source.toolkit.fluxcd.io/v1beta1 - kind: GitRepository - metadata: - name: $(workload.metadata.name)$-source - spec: - interval: 3m - url: $(workload.spec.source.git.url)$ - ref: $(workload.spec.source.git.ref)$ - gitImplementation: $(params.git-implementation.value)$ - ignore: "" -``` - -_ref: -[pkg/apis/v1alpha1/cluster_source_template.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.7/pkg/apis/v1alpha1/cluster_source_template.go)_ - -### ClusterImageTemplate - -`ClusterImageTemplate` instructs how the supply chain should instantiate an object responsible for supplying container -images, for instance, one that takes source code, builds a container image out of it and presents under its `.status` -the reference to that produced image. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-battery -spec: - # default set of parameters. see ClusterSourceTemplate for more - # information. (optional) - # - params: [] - - # jsonpath expression to instruct where in the object templated out container - # image information can be found. (required) - # - imagePath: .status.latestImage - - # template for instantiating the image provider. - # same data available for interpolation as any other `*Template`. (required) - # - template: - apiVersion: kpack.io/v1alpha1 - kind: Image - metadata: - name: $(workload.metadata.name)$-image - spec: - tag: projectcartographer/demo/$(workload.metadata.name)$ - serviceAccount: service-account - builder: - kind: ClusterBuilder - name: java-builder - source: - blob: - url: $(sources.provider.url)$ -``` - -_ref: -[pkg/apis/v1alpha1/cluster_image_template.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.7/pkg/apis/v1alpha1/cluster_image_template.go)_ - -### ClusterConfigTemplate - -Instructs the supply chain how to instantiate a Kubernetes object that knows how to make Kubernetes configurations -available to further resources in the chain. - -_ref: -[pkg/apis/v1alpha1/cluster_config_template.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.7/pkg/apis/v1alpha1/cluster_config_template.go)_ - -### ClusterTemplate - -A ClusterTemplate instructs the supply chain to instantiate a Kubernetes object that has no outputs to be supplied to -other objects in the chain, for instance, a resource that deploys a container image that has been built by other -ancestor resources. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ConfigTemplate -metadata: - name: deployer -spec: - # default parameters. see ClusterSourceTemplate for more info. (optional) - # - params: [] - - # how to template out the kubernetes object. (required) - # - template: - apiVersion: kappctrl.k14s.io/v1alpha1 - kind: App - metadata: - name: $(workload.metadata.name) - spec: - serviceAccountName: service-account - fetch: - - inline: - paths: - manifest.yml: | - --- - apiVersion: kapp.k14s.io/v1alpha1 - kind: Config - rebaseRules: - - path: [metadata, annotations, serving.knative.dev/creator] - type: copy - sources: [new, existing] - resourceMatchers: &matchers - - apiVersionKindMatcher: {apiVersion: serving.knative.dev/v1, kind: Service} - - path: [metadata, annotations, serving.knative.dev/lastModifier] - type: copy - sources: [new, existing] - resourceMatchers: *matchers - --- - apiVersion: serving.knative.dev/v1 - kind: Service - metadata: - name: links - labels: - app.kubernetes.io/part-of: $(workload.metadata.labels['app\.kubernetes\.io/part-of'])$ - spec: - template: - spec: - containers: - - image: $(images..image)$ - securityContext: - runAsUser: 1000 - template: - - ytt: {} - deploy: - - kapp: {} -``` - -_ref: -[pkg/apis/v1alpha1/cluster_template.go](https://github.com/vmware-tanzu/cartographer/blob/v0.0.7/pkg/apis/v1alpha1/cluster_template.go)_ - -### Delivery - -This section is [pending work from issue #286](https://github.com/vmware-tanzu/cartographer/issues/286) diff --git a/site/content/docs/v0.0.7/style-guide.md b/site/content/docs/v0.0.7/style-guide.md deleted file mode 100644 index eb96b0d15..000000000 --- a/site/content/docs/v0.0.7/style-guide.md +++ /dev/null @@ -1,392 +0,0 @@ -_This style guide is adapted from the -[Velero Style Guide](https://github.com/vmware-tanzu/velero/blob/main/site/content/docs/v1.6/style-guide.md)._ - -This page outlines writing style guidelines for the Cartographer documentation and you should use this page as a -reference you write or edit content. Note that these are guidelines, not rules. Use your best judgment as you write -documentation, and feel free to propose changes to these guidelines. Changes to the style guide are made by the -Cartographer maintainers as a group. To propose a change or addition create an issue/PR. - -## Content best practices - -### Use present tense - -{{< table caption="Do and Don't - Use present tense" >}} - -| Do | Don't | -| ------------------------------ | -------------------------------- | -| This `command` starts a proxy. | This command will start a proxy. | - -{{< /table >}} - -Exception: Use future or past tense if it is required to convey the correct meaning. - -### Use active voice - -{{< table caption="Do and Don't - Use active voice" >}} - -| Do | Don't | -| ------------------------------------------ | ------------------------------------------------ | -| You can explore the API using a browser. | The API can be explored using a browser. | -| The YAML file specifies the replica count. | The replica count is specified in the YAML file. | - -{{< /table >}} - -Exception: Use passive voice if active voice leads to an awkward sentence construction. - -### Use simple and direct language - -Use simple and direct language. Avoid using unnecessary phrases, such as saying "please." - -{{< table caption="Do and Don't - Use simple and direct language" >}} - -| Do | Don't | -| --------------------------- | -------------------------------------------- | -| To create a ReplicaSet, ... | In order to create a ReplicaSet, ... | -| See the configuration file. | Please see the configuration file. | -| View the Pods. | With this next command, we'll view the Pods. | - -{{< /table >}} - -### Address the reader as "you" - -{{< table caption="Do and Don't - Addressing the reader" >}} - -| Do | Don't | -| --------------------------------------- | --------------------------------------- | -| You can create a Deployment by ... | We'll create a Deployment by ... | -| In the preceding output, you can see... | In the preceding output, we can see ... | - -{{< /table >}} - -### Avoid Latin phrases - -Prefer English terms over Latin abbreviations. - -{{< table caption="Do and Don't - Avoid Latin phrases" >}} - -| Do | Don't | -| ---------------- | --------- | -| For example, ... | e.g., ... | -| That is, ... | i.e., ... | - -{{< /table >}} - -Exception: Use "etc." for et cetera. - -## Patterns to avoid - -### Avoid using "we" - -Using "we" in a sentence can be confusing, because the reader might not know whether they're part of the "we" you're -describing. - -{{< table caption="Do and Don't - Avoid using we" >}} - -| Do | Don't | -| ----------------------------------------- | ----------------------------------------------- | -| Version 1.4 includes ... | In version 1.4, we have added ... | -| Kubernetes provides a new feature for ... | We provide a new feature ... | -| This page teaches you how to use Pods. | In this page, we are going to learn about Pods. | - -{{< /table >}} - -### Avoid jargon and idioms - -Many readers speak English as a second language. Avoid jargon and idioms to help them understand better. - -{{< table caption="Do and Don't - Avoid jargon and idioms" >}} - -| Do | Don't | -| --------------------- | ---------------------- | -| Internally, ... | Under the hood, ... | -| Create a new cluster. | Turn up a new cluster. | - -{{< /table >}} - -### Avoid statements about the future or that will soon be out of date - -Avoid making promises or giving hints about the future. If you need to talk about a beta feature, put the text under a -heading that identifies it as beta information. - -Also avoid words like “recently”, "currently" and "new." A feature that is new today might not be considered new in a -few months. - -{{< table caption="Do and Don't - Avoid statements that will soon be out of date" >}} - -| Do | Don't | -| ----------------------------------- | --------------------------------------- | -| In version 1.4, ... | In the current version, ... | -| The Federation feature provides ... | The new Federation feature provides ... | - -{{< /table >}} - -### Language - -This documentation uses U.S. English spelling and grammar. - -## Documentation formatting standards - -### Use camel case for API objects - -When you refer to an API object, use the same uppercase and lowercase letters that are used in the actual object name. -Typically, the names of API objects use [camel case](https://en.wikipedia.org/wiki/Camel_case). - -Don't split the API object name into separate words. For example, use PodTemplateList, not Pod Template List. - -Refer to API objects without saying "object," unless omitting "object" leads to an awkward sentence construction. - -{{< table caption="Do and Don't - Do and Don't - API objects" >}} - -| Do | Don't | -| -------------------------------------------- | -------------------------------------------- | -| The Pod has two containers. | The pod has two containers. | -| The Deployment is responsible for ... | The Deployment object is responsible for ... | -| A PodList is a list of Pods. | A Pod List is a list of pods. | -| The two ContainerPorts ... | The two ContainerPort objects ... | -| The two ContainerStateTerminated objects ... | The two ContainerStateTerminateds ... | - -{{< /table >}} - -### Use angle brackets for placeholders - -Use angle brackets for placeholders. Tell the reader what a placeholder represents. - -1. Display information about a Pod: - - kubectl describe pod -n - - If the pod is in the default namespace, you can omit the '-n' parameter. - -### Use bold for user interface elements - -{{< table caption="Do and Don't - Bold interface elements" >}} - -| Do | Don't | -| ----------------- | --------------- | -| Click **Fork**. | Click "Fork". | -| Select **Other**. | Select "Other". | - -{{< /table >}} - -### Use italics to define or introduce new terms - -{{< table caption="Do and Don't - Use italics for new terms" >}} - -| Do | Don't | -| ------------------------------------------ | -------------------------------------------- | -| A _cluster_ is a set of nodes ... | A "cluster" is a set of nodes ... | -| These components form the _control plane_. | These components form the **control plane**. | - -{{< /table >}} - -### Use code style for filenames, directories, paths, object field names and namespaces - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| -------------------------------------- | ------------------------------------ | -| Open the `envars.yaml` file. | Open the envars.yaml file. | -| Go to the `/docs/tutorials` directory. | Go to the /docs/tutorials directory. | -| Open the `/_data/concepts.yaml` file. | Open the /\_data/concepts.yaml file. | - -{{< /table >}} - -### Use punctuation inside quotes - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| events are recorded with an associated "stage." | events are recorded with an associated "stage". | -| The copy is called a "fork." | The copy is called a "fork". | - -{{< /table >}} - -Exception: When the quoted word is a user input. - -Example: - -- My user ID is “IM47g”. -- Did you try the password “mycatisawesome”? - -## Inline code formatting - -### Use code style for inline code and commands - -For inline code in an HTML document, use the `` tag. In a Markdown document, use the backtick (`` ` ``). - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| The `kubectl run` command creates a Deployment. | The "kubectl run" command creates a Deployment. | -| For declarative management, use `kubectl apply`. | For declarative management, use "kubectl apply". | -| Use single backticks to enclose inline code. For example, `var example = true`. | Use two asterisks (`**`) or an underscore (`_`) to enclose inline code. For example, **var example = true**. | -| Use triple backticks (\`\`\`) before and after a multi-line block of code for fenced code blocks. | Use multi-line blocks of code to create diagrams, flowcharts, or other illustrations. | -| Use meaningful variable names that have a context. | Use variable names such as 'foo','bar', and 'baz' that are not meaningful and lack context. | -| Remove trailing spaces in the code. | Add trailing spaces in the code, where these are important, because a screen reader will read out the spaces as well. | - -{{< /table >}} - -### Starting a sentence with a component tool or component name - -{{< table caption="Do and Don't - Starting a sentence with a component tool or component name" >}} - -| Do | Don't | -| ------------------------------------------------------------------- | --------------------------------------------------------------- | -| The `kubeadm` tool bootstraps and provisions machines in a cluster. | `kubeadm` tool bootstraps and provisions machines in a cluster. | -| The kube-scheduler is the default scheduler for Kubernetes. | kube-scheduler is the default scheduler for Kubernetes. | - -{{< /table >}} - -### Use normal style for string and integer field values - -For field values of type string or integer, use normal style without quotation marks. - -{{< table caption="Do and Don't - Use normal style for string and integer field values" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| Set the value of `imagePullPolicy` to `Always`. | Set the value of `imagePullPolicy` to "Always". | -| Set the value of `image` to `nginx:1.16`. | Set the value of `image` to nginx:1.16. | -| Set the value of the `replicas` field to `2`. | Set the value of the `replicas` field to 2. | - -{{< /table >}} - -## Code snippet formatting - -### Don't include the command prompt - -{{< table caption="Do and Don't - Don't include the command prompt" >}} - -| Do | Don't | -| ---------------- | ------------------ | -| kubectl get pods | $ kubectl get pods | - -{{< /table >}} - -### Separate commands from output - -Verify that the Pod is running on your chosen node: - -``` -kubectl get pods --output=wide -``` - -The output is similar to this: - -``` -NAME READY STATUS RESTARTS AGE IP NODE -nginx 1/1 Running 0 13s 10.200.0.4 worker0 -``` - -## Cartographer word list - -A list of Cartographer-specific terms and words to be used consistently across the site. - -{{< table caption="Cartographer word list" >}} - -| Trem | Usage | -| ------------ | ------------------------------------------------------------------ | -| Kubernetes | Kubernetes should always be capitalized. | -| Docker | Docker should always be capitalized. | -| Cartographer | Cartographer should always be capitalized. | -| VMware | VMware should always be correctly capitalized. | -| On-premises | On-premises or on-prem rather than on-premise or other variations. | -| Backup | Backup rather than back up, back-up or other variations. | -| Plugin | Plugin rather than plug-in or other variations. | -| Allowlist | Use allowlist instead of whitelist. | -| Denylist | Use denylist instead of blacklist. | - -{{< /table >}} - -## Markdown elements - -### Headings - -People accessing this documentation may use a screen reader or other assistive technology (AT). -[Screen readers](https://en.wikipedia.org/wiki/Screen_reader) are linear output devices, they output items on a page one -at a time. If there is a lot of content on a page, you can use headings to give the page an internal structure. A good -page structure helps all readers to easily navigate the page or filter topics of interest. - -{{< table caption="Do and Don't - Headings" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| Include a title on each page or blog post. | Include more than one title headings (#) in a page. | -| Use ordered headings to provide a meaningful high-level outline of your content. | Use headings level 4 through 6, unless it is absolutely necessary. If your content is that detailed, it may need to be broken into separate articles. | -| Use sentence case for headings. For example, **Extend kubectl with plugins** | Use title case for headings. For example, **Extend Kubectl With Plugins** | - -{{< /table >}} - -### Paragraphs - -{{< table caption="Do and Don't - Paragraphs" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------------- | ------------------------------------ | -| Try to keep paragraphs under 6 sentences. | Write long-winded paragraphs. | -| Use three hyphens (`---`) to create a horizontal rule for breaks in paragraph content. | Use horizontal rules for decoration. | - -{{< /table >}} - -### Links - -{{< table caption="Do and Don't - Links" >}} - -| Do | Don't | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| Write hyperlinks that give you context for the content they link to. For example: Certain ports are open on your machines. See [check required ports](#check-required-ports) for more details. | Use ambiguous terms such as “click here”. For example: Certain ports are open on your machines. See [here](#check-required-ports) for more details. | -| Write Markdown-style links: `[link text](URL)`. For example: `[community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA)` and the output is [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA). | Write HTML-style links: `Visit our tutorial!` | - -{{< /table >}} - -### Lists - -Group items in a list that are related to each other and need to appear in a specific order or to indicate a correlation -between multiple items. When a screen reader comes across a list—whether it is an ordered or unordered list—it will be -announced to the user that there is a group of list items. The user can then use the arrow keys to move up and down -between the various items in the list. Website navigation links can also be marked up as list items; after all they are -nothing but a group of related links. - -- End each item in a list with a period if one or more items in the list are complete sentences. For the sake of - consistency, normally either all items or none should be complete sentences. - -- Ordered lists that are part of an incomplete introductory sentence can be in lowercase and punctuated as if each item - was a part of the introductory sentence. - -- Use the number one (`1.`) for ordered lists. - -- Use (`+`), (`*`), or (`-`) for unordered lists - be consistent within the same document. - -- Leave a blank line after each list. - -- Indent nested lists with four spaces (for example, ⋅⋅⋅⋅). - -- List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either - four spaces or one tab. - -### Tables - -The semantic purpose of a data table is to present tabular data. Sighted users can quickly scan the table but a screen -reader goes through line by line. A table [caption](https://www.w3schools.com/tags/tag_caption.asp) is used to create a -descriptive title for a data table. Assistive technologies (AT) use the HTML table caption element to identify the table -contents to the user within the page structure. - -If you need to create a table, create the table in markdown and use the table -[Hugo shortcode](https://gohugo.io/content-management/shortcodes/) to include a caption. - -``` -{{}} - -| Parameter | Description | Default | -|:---------|:------------|:------- | -| `timeout` | The timeout for requests | `30s` | -| `logLevel` | The log level for log output | `INFO` | - -{{< /table */>}} - -``` - -**Note:** This shortcode does not support markdown reference-style links. Use inline-style links in tables. See more -information about [markdown link styles](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links). diff --git a/site/content/docs/v0.0.7/uninstall.md b/site/content/docs/v0.0.7/uninstall.md deleted file mode 100644 index 6c4e38774..000000000 --- a/site/content/docs/v0.0.7/uninstall.md +++ /dev/null @@ -1,39 +0,0 @@ -# Uninstalling Cartographer - -Having installed all the objects using [kapp], which keeps track of all of them as a single unit (an app), we can -uninstall everything by just referencing that name: - -```bash -kapp delete -a cartographer -kubectl delete namespace cartographer-system -``` - -```console -Target cluster 'https://127.0.0.1:34135' (nodes: kind-control-plane) - -Changes - -Namespace Name Kind Conds. Age Op Op st. Wait to Rs Ri -(cluster) cartographer-cluster-admin ClusterRoleBinding - 11s delete - delete ok - -^ clusterconfigtemplates.carto.run CustomResourceDefinition 2/2 t 12s delete - delete ok - -... -^ selfsigned-issuer Issuer 1/1 t 10s delete - delete ok - - -Op: 0 create, 15 delete, 0 update, 5 noop -Wait to: 0 reconcile, 20 delete, 0 noop - -Continue? [yN]: y -... -8:28:22AM: ok: delete pod/cartographer-controller-dbcf767b8-bw2nf (v1) namespace: cartographer-system -8:28:22AM: ---- applying complete [20/20 done] ---- -8:28:22AM: ---- waiting complete [20/20 done] ---- - -Succeeded -``` - -[admission webhook]: https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/ -[carvel packaging]: https://carvel.dev/kapp-controller/docs/latest/packaging/ -[cert-manager]: https://github.com/jetstack/cert-manager -[kapp-controller]: https://carvel.dev/kapp-controller/ -[kapp]: https://carvel.dev/kapp/ -[kind]: https://github.com/kubernetes-sigs/kind diff --git a/site/content/docs/v0.1.0/_index.md b/site/content/docs/v0.1.0/_index.md deleted file mode 100644 index 4f3f5bcb3..000000000 --- a/site/content/docs/v0.1.0/_index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -version: v0.1.0 -cascade: - layout: docs ---- - -## TL;DR - -Cartographer is a -[Supply Chain Choreographer](https://tanzu.vmware.com/developer/guides/ci-cd/supply-chain-choreography/) for Kubernetes. -It allows App Operators to create pre-approved paths to production by integrating Kubernetes resources with the elements -of their existing toolchains (e.g. Jenkins). - -**Each** pre-approved supply chain creates a paved road to production; orchestrating supply chain resources - test, -build, scan, and deploy - allowing developers to be able to focus on delivering value to their users while also -providing App Operators with the peace of mind that all code in production has passed through all of the steps of an -approved workflow. - -## Cartographer Design and Philosophy - -Cartographer allows users to define all of the steps that an application must go through to create an image and -Kubernetes configuration. Users achieve this with the Supply Chain abstraction, see -[Spec Reference](reference/workload#clustersupplychain). - -The supply chain consists of resources that are specified via Templates. Each template acts as a wrapper for existing -Kubernetes resources and allows them to be used with Cartographer. There are currently four different types of templates -that can be use in a Cartographer supply chain: - -- [Source Template](reference/template#clustersourcetemplate) -- [Image Template](reference/template#clusterimagetemplate) -- [Config Template](reference/template#clusterconfigtemplate) -- [Generic Template](reference/template#clustertemplate) - -Contrary to many other Kubernetes native workflow tools that already exist in the market, Cartographer does not “run” -any of the objects themselves. Instead, it monitors the execution of each resource and templates the following resource -in the supply chain after a given resource has completed execution and updated its status. - -The supply chain may also be extended to include integrations to existing CI/CD pipelines by using the Runnable CRD -(which is part of Cartographer). The Runnable CRD acts as a wrapper for CRDs that are immutable (meaning that instead of -updating an object, a new object would be created). There are a number of CI/CD CRDs that follow this pattern, including -Tekton. The Runnable CRD provides a declarative way for pipelines to be run inside of Cartographer. - -While the supply chain is operator facing, Cartographer also provides an abstraction for developers called -[workloads](reference/workload#workload). Workloads allow developers to create application specifications such as the -location of their repository, environment variables and service claims. - -By design, supply chains can be reused by many workloads. This allows an operator to specify the steps in the path to -production a single time, and for developers to specify their applications independently but for each to use the same -path to production. The intent is that developers are able to focus on providing value for their users and can reach -production quickly and easily, while providing peace of mind for app operators, who are ensured that each application -has passed through the steps of the path to production that they’ve defined. - -![Cartographer High Level Diagram](img/ownership-flow.png) diff --git a/site/content/docs/v0.1.0/architecture.md b/site/content/docs/v0.1.0/architecture.md deleted file mode 100644 index 83357114c..000000000 --- a/site/content/docs/v0.1.0/architecture.md +++ /dev/null @@ -1,162 +0,0 @@ -# Architecture and Concepts - -## Overview - -Cartographer is an open-source Supply Chain Choreographer for Kubernetes. Cartographer provides a set of Kubernetes -controllers and CRDs that allow a platform operator to create an application platform by specifying repeatable, reusable -**code-to-production** blueprints. - -Two kinds of blueprint work together to provide **code-to-production**, [Supply Chains](#clustersupplychain) and -[Delivery](#clusterdelivery). - -## Concepts - -### Blueprints - -| Blueprint | Owner | Valid Templates | -| ----------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [ClusterSupplyChain](reference/workload#clustersupplychain) | [Workload](reference/workload#workload) | [ClusterSourceTemplate](reference/template#clustersourcetemplate), [ClusterImageTemplate](reference/template#clusterimagetemplate), [ClusterConfigTemplate](reference/template#clusterconfigtemplate), [ClusterTemplate](reference/template#clustertemplate) | -| [ClusterDelivery](reference/deliverable#clusterdelivery) | [Deliverable](reference/deliverable#deliverable) | [ClusterSourceTemplate](reference/template#clustersourcetemplate), [ClusterDeploymentTemplate](reference/template#clusterdeploymenttemplate), [ClusterTemplate](reference/template#clustertemplate) | - -Blueprints are a list of templates (called resources) that defines how the templates depend upon each other. It forms -the dependency graph of your supply chain or delivery. - -The dependencies are formed by specifying which resource(s) are used as inputs. - -Blueprints consist of: - -- A **selector** to match owners -- **Parameters** to pass to all resources -- **Resources**: - - A **templateRef** pointing to the template for the resource - - **Parameters** to pass to the template - - **Inputs**, which specify dependencies for the template - -{{< figure src="../img/blueprint.svg" alt="Blueprint" width="400px" >}} - - - -### Templates - -Templates create or update resources (i.e. kubectl apply). - -Templates consist of: - -- Parameters to pass to `spec.template` or `spec.ytt` -- The Kubernetes resource yaml as `spec.template` or `spec.ytt` see [Templating](templating#templating) -- **Output paths** which tell Cartographer where to find the output of the Kubernetes resource - - The path field depends upon the specific template kind. - - These paths are interpolated and subsequent templates can use them via the input accessors. see - [Inputs](templating#inputs) - -Templates are typed by the output their underlying resource produces. - -| Output | Template | Output Path | Input Accessor | -| ---------- | ------------------------------------------------------------------------- | ----------------------------------- | ----------------------------------------------------------- | -| Config | [ClusterConfigTemplate](reference/template#clusterconfigtemplate) | `spec.configPath` | `configs.` | -| Image | [ClusterImageTemplate](reference/template#clusterimagetemplate) | `spec.imagePath` | `images.` | -| Source | [ClusterSourceTemplate](reference/template#clustersourcetemplate) | `spec.urlPath`, `spec.revisionPath` | `sources..url`, `sources..revision` | -| Deployment | [ClusterDeploymentTemplate](reference/template#clusterdeploymenttemplate) | `spec.urlPath`, `spec.revisionPath` | `sources..url`, `sources..revision` | -| | [ClusterTemplate](reference/template#clustertemplate) | - -{{< figure src="../img/template.svg" alt="Template" width="400px" >}} - -### Owners - -| Owner | Blueprint | -| ----------- | ------------------ | -| Workload | ClusterSupplyChain | -| Deliverable | ClusterDelivery | - -Owners represent the **workload** or **deliverable**, which in many cases refer to a single application's source or -image location. - -Owners are the developer provided configuration which cause a blueprint to be reconciled into resources. Owners -reference the primary **source** or **image** for the **blueprint** - -They consist of: - -- **Labels**: blueprints will select based on the labels of an owner, see [selectors](#selectors) -- **Params**: parameters supplied to the blueprint, see [Parameter Hierarchy](#parameter-hierarchy) -- **Source**: The source reference for the input to the Supply Chain or Delivery Blueprints, see - [Workload](reference/workload#workload) and [Deliverable](reference/deliverable#deliverable) - -{{< figure src="../img/owner.svg" alt="Owner" width="400px" >}} - -## Theory of Operation - -Given an owner that matches a blueprint, Cartographer reconciles the resources referenced by the blueprint. The -resources are only created when the inputs are satisfied, and a resource is only updated when its inputs change. This -results in a system where a new result from one resource can cause other resources to change. - -![Generic Blueprint](../img/generic.jpg) - - - -Although Cartographer is not a 'runner of things', a resource can be something as simple as a Job. - -However, one advantage of Cartographer's design is that resources that self-mutate can cause downstream change. - -For example, a Build resource that discovers new base OCI images. If it rebuilds your image, then Cartographer will see -this new image and update downstream resources. - -When Cartographer reconciles an owner, each resource in the matching blueprint is applied: - -1. **Generate Inputs**: Using the **blueprint resource's** `inputs` as a reference, select outputs from previously - applied **Kubernetes resources** -2. **Generate Params**: Using the [Parameter Hierarchy](architecture.md#parameter-hierarchy), generate parameter values -3. **Generate and apply resource spec**: Apply the result of interpolating `spec.template` (or `spec.ytt`), **inputs**, - **params** and the **owner spec**. -4. **Retrieve Output**: Store the output from the applied resource. The output to use is specified in the **template - output path**. - -![Realize](../img/realize.jpg) - -### Complete Supply Chain and Delivery with GitOps - -![Gitops](../img/gitops.jpg) - -## Blueprint Details - -### ClusterSupplyChain - -A ClusterSupplyChain blueprint continuously integrates and builds your app. - -![ClusterSupplyChain](../img/supplychain.png) - -### ClusterDelivery - -A ClusterDelivery blueprint continuously deploys and validates Kubernetes configuration to a cluster. - -[comment]: <> (Not implemented yet) [comment]: <> (A ClusterDelivery has the ability to lock (and unlock) -templates which pauses the continuous deploy. ) [comment]: <> (TODO - more on locking) - -![ClusterDelivery](../img/delivery.jpg) - -### Selectors - -An owner's labels will determine which blueprint will select for it. The controller will do a "best match" on a -blueprint's `spec.selector` with an owner's labels. - -A "best match" follows the rules: - -1. If all labels are fully contained in the selector, reconcile the owner with that blueprint. -2. If not all labels match, we choose the blueprint with the most matched labels. -3. If two blueprints match all labels, the blueprint with the more concise match (less non-matching labels) is selected. - -Note: Despite the rules, the controller can still return more than one match. If more than one match is returned, no -blueprint will reconcile for the owner. - -## Parameter Hierarchy - - - -Templates can specify default values for **parameters** in `spec.params`. - -These parameters may be overridden by the **blueprint**, which allows operators to specify: - -- a default value which can be overridden by the **owner's** `spec.params` -- a value which cannot be overridden by the **owner** - -Blueprint parameters can be specified globally in `spec.params` or per resource `spec.resource[].params` If the **per -resource param** is specified, the global blueprint param is ignored. diff --git a/site/content/docs/v0.1.0/authentication.md b/site/content/docs/v0.1.0/authentication.md deleted file mode 100644 index d6d2eec89..000000000 --- a/site/content/docs/v0.1.0/authentication.md +++ /dev/null @@ -1,172 +0,0 @@ -# Authentication - -## Owner Permissions - -Cartographer requires a **service account** that permits all actions on the GVKs specified in **templates**. - -### Per namespace service account - -The operator provides a name for the service account that is used (but not the namespace). Typically, the operator will -ensure that a service account with sufficient privileges exists in each developer namespace. - -The developer can still -[override the service account name](#developer-selects-the-name-of-a-service-account-in-their-namespace). - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: "operator-chosen-name" - namespace: # not provided - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # not provided -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: operator-chosen-name - namespace: my-developer-ns -``` - -### Single service account - -The operator provides a reference to a single service account that is used. The operator will ensure that one service -account with sufficient privileges exists. - -The developer can still -[override the service account name](#developer-selects-the-name-of-a-service-account-in-their-namespace). - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: operator-chosen-name - namespace: operator-chosen-namespace - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # not provided -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: operator-chosen-name - namespace: operator-chosen-namespace -``` - -### Developer selected service account - -The developer provides a name for a service account that is in the same namespace as the owner (Workload/Deliverable) -they are creating. This takes precedence over operator provided service accounts. Of course the service account still -requires full permissions for the objects created by the blueprint. - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: # n/a - namespace: # n/a - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: workload-specific-sa -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: workload-specific-sa - namespace: my-developer-ns -``` - -### Default service account - -If a service account is not specified in the blueprint or the owner, the `default` service account in the owner -namespace is used. - -Note: The `default` service account is unlikely to have the necessary permissions. - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: {} # Not provided! - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # Not provided! -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: default - namespace: my-developer-ns -``` - -## Cartographer Controller Permissions - -Cartographer has its own service account, `cartographer-controller` in the `cartographer-system` namespace. The -clusterrole that's bound to the service account is: - -```bash -kubectl get clusterrole cartographer-controller-admin -oyaml - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: cartographer-controller-admin -rules: -- apiGroups: - - carto.run - resources: - - workloads/status - - clustersupplychains/status - - runnables/status - - clusterdeliveries/status - - deliverables/status - verbs: - - create - - update - - delete - - patch -- apiGroups: - - '*' - resources: - - '*' - verbs: - - watch - - get - - list -``` diff --git a/site/content/docs/v0.1.0/examples.md b/site/content/docs/v0.1.0/examples.md deleted file mode 100644 index def4fdcff..000000000 --- a/site/content/docs/v0.1.0/examples.md +++ /dev/null @@ -1,5 +0,0 @@ -# Examples - -Check out the [examples directory] on our repository. - -[examples directory]: https://github.com/vmware-tanzu/cartographer/tree/main/examples diff --git a/site/content/docs/v0.1.0/img/blueprint.svg b/site/content/docs/v0.1.0/img/blueprint.svg deleted file mode 100644 index aa2b742f0..000000000 --- a/site/content/docs/v0.1.0/img/blueprint.svg +++ /dev/null @@ -1,503 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.1.0/img/delivery.jpg b/site/content/docs/v0.1.0/img/delivery.jpg deleted file mode 100644 index 220bd0dad..000000000 Binary files a/site/content/docs/v0.1.0/img/delivery.jpg and /dev/null differ diff --git a/site/content/docs/v0.1.0/img/generic.jpg b/site/content/docs/v0.1.0/img/generic.jpg deleted file mode 100644 index 80349bfe8..000000000 Binary files a/site/content/docs/v0.1.0/img/generic.jpg and /dev/null differ diff --git a/site/content/docs/v0.1.0/img/gitops.jpg b/site/content/docs/v0.1.0/img/gitops.jpg deleted file mode 100644 index 47b9171ee..000000000 Binary files a/site/content/docs/v0.1.0/img/gitops.jpg and /dev/null differ diff --git a/site/content/docs/v0.1.0/img/owner.svg b/site/content/docs/v0.1.0/img/owner.svg deleted file mode 100644 index cc7480488..000000000 --- a/site/content/docs/v0.1.0/img/owner.svg +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.1.0/img/ownership-flow.png b/site/content/docs/v0.1.0/img/ownership-flow.png deleted file mode 100644 index f74cb3cfa..000000000 Binary files a/site/content/docs/v0.1.0/img/ownership-flow.png and /dev/null differ diff --git a/site/content/docs/v0.1.0/img/realize.jpg b/site/content/docs/v0.1.0/img/realize.jpg deleted file mode 100644 index f1904475c..000000000 Binary files a/site/content/docs/v0.1.0/img/realize.jpg and /dev/null differ diff --git a/site/content/docs/v0.1.0/img/runnable/clusterruntemplate.svg b/site/content/docs/v0.1.0/img/runnable/clusterruntemplate.svg deleted file mode 100644 index 074bee4a8..000000000 --- a/site/content/docs/v0.1.0/img/runnable/clusterruntemplate.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.1.0/img/runnable/runnable-new.jpg b/site/content/docs/v0.1.0/img/runnable/runnable-new.jpg deleted file mode 100644 index 283eaea86..000000000 Binary files a/site/content/docs/v0.1.0/img/runnable/runnable-new.jpg and /dev/null differ diff --git a/site/content/docs/v0.1.0/img/runnable/runnable-outline.svg b/site/content/docs/v0.1.0/img/runnable/runnable-outline.svg deleted file mode 100644 index 6cd268939..000000000 --- a/site/content/docs/v0.1.0/img/runnable/runnable-outline.svg +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.1.0/img/runnable/runnable-realize-new.jpg b/site/content/docs/v0.1.0/img/runnable/runnable-realize-new.jpg deleted file mode 100644 index 04c7f1640..000000000 Binary files a/site/content/docs/v0.1.0/img/runnable/runnable-realize-new.jpg and /dev/null differ diff --git a/site/content/docs/v0.1.0/img/runnable/runnable-supplychain-new.jpg b/site/content/docs/v0.1.0/img/runnable/runnable-supplychain-new.jpg deleted file mode 100644 index 3d7fd60aa..000000000 Binary files a/site/content/docs/v0.1.0/img/runnable/runnable-supplychain-new.jpg and /dev/null differ diff --git a/site/content/docs/v0.1.0/img/supplychain.png b/site/content/docs/v0.1.0/img/supplychain.png deleted file mode 100644 index eb94a98ef..000000000 Binary files a/site/content/docs/v0.1.0/img/supplychain.png and /dev/null differ diff --git a/site/content/docs/v0.1.0/img/template.svg b/site/content/docs/v0.1.0/img/template.svg deleted file mode 100644 index ea904a5ae..000000000 --- a/site/content/docs/v0.1.0/img/template.svg +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.1.0/install.md b/site/content/docs/v0.1.0/install.md deleted file mode 100644 index 1966212b3..000000000 --- a/site/content/docs/v0.1.0/install.md +++ /dev/null @@ -1,54 +0,0 @@ -# Installing Cartographer - -## Prerequisites - -- Kubernetes cluster v1.19+ -- cert-manager, see [cert-manager Installation](https://cert-manager.io/docs/installation/) - -## Install - -1. Create namespace - ```bash - kubectl create namespace cartographer-system - ``` -2. Apply `cartographer.yaml` - - ```bash - kubectl apply -f https://github.com/vmware-tanzu/cartographer/releases/download/v0.1.0/cartographer.yaml - ``` - - Resources in file `cartographer.yaml`: - - ```console - Namespace Name Kind - (cluster) cartographer-cluster-admin ClusterRoleBinding - ^ cartographer-controller-admin ClusterRole - ^ clusterconfigtemplates.carto.run CustomResourceDefinition - ^ clusterdeliveries.carto.run CustomResourceDefinition - ^ clusterdeploymenttemplates.carto.run CustomResourceDefinition - ^ clusterimagetemplates.carto.run CustomResourceDefinition - ^ clusterruntemplates.carto.run CustomResourceDefinition - ^ clustersourcetemplates.carto.run CustomResourceDefinition - ^ clustersupplychains.carto.run CustomResourceDefinition - ^ clustersupplychainvalidator ValidatingWebhookConfiguration - ^ clustertemplates.carto.run CustomResourceDefinition - ^ deliverables.carto.run CustomResourceDefinition - ^ deliveryvalidator ValidatingWebhookConfiguration - ^ runnables.carto.run CustomResourceDefinition - ^ workloads.carto.run CustomResourceDefinition - - cartographer-system cartographer-controller Deployment - ^ cartographer-controller ServiceAccount - ^ cartographer-webhook Certificate - ^ cartographer-webhook Secret - ^ cartographer-webhook Service - ^ private-registry-credentials Secret - ^ selfsigned-issuer Issuer - ``` - -## Uninstall - -1. Delete `cartographer.yaml` - ```bash - kubectl delete -f https://github.com/vmware-tanzu/cartographer/releases/download/v0.1.0/cartographer.yaml - ``` diff --git a/site/content/docs/v0.1.0/reference/deliverable.md b/site/content/docs/v0.1.0/reference/deliverable.md deleted file mode 100644 index 68a98f106..000000000 --- a/site/content/docs/v0.1.0/reference/deliverable.md +++ /dev/null @@ -1,146 +0,0 @@ -# Deliverable and Delivery Custom Resources - -## Deliverable - -`Deliverable` allows the operator to pass information about the configuration to be applied to the environment to the -delivery. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Deliverable -metadata: - name: spring-petclinic - labels: - # label to be matched against a `ClusterDelivery`s label selector. - # - app.tanzu.vmware.com/deliverable-type: web---deliverable # (1) - -spec: - source: - # source code location in a git repository. - # - git: - url: https://github.com/waciumawanjohi/spring-petclinic.git - ref: - branch: "main" - tag: "v0.0.1" - commit: "b4df00d" - - # source code location in an image repository - # - image: harbor-repo.vmware.com/tanzu_desktop/golang-sample-source@sha256:e508a587 - - # subpath in the source code directory that contains the expected code - # useful when multiple apps are in a single repository - subPath: app-1 - - # any other parameters that don't fit the ones already typed. - params: [] - - # service account with requisite permissions to create objects specified in the delivery - serviceAccountName: super-secure-service-account -``` - -Notes: - -1. labels serve as a way of indirectly selecting `ClusterDelivery` - -_ref: -[pkg/apis/v1alpha1/deliverable.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/deliverable.go)_ - -## ClusterDelivery - -A `ClusterDelivery` is a cluster-scoped resources that enables application operators to define a continuous delivery -workflow. Delivery is analogous to SupplyChain, in that it specifies a list of resources that are created when requested -by the developer. Early resources in the delivery are expected to configure the k8s environment (for example by -deploying an application). Later resources validate the environment is healthy. - -The SupplyChain resources `ClusterSourceTemplates` and `ClusterTemplates` are valid for delivery. Delivery additionally -has the resource `ClusterDeploymentTemplates`. Delivery can cast the values from a `ClusterSourceTemplate` so that they -may be consumed by a `ClusterDeploymentTemplate`. - -`ClusterDeliveries` specify the type of configuration they accept through the `spec.selector` field. `Deliverable`s with -matching `spec.selector` then create a logical delivery. This makes the values in the `Deliverable` available to all of -the resources in the `ClusterDelivery`s `spec.resources`. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterDelivery -metadata: - name: supplychain -spec: - # specifies the label key-value pair to select deliverables. (required) - # - selector: - app.tanzu.vmware.com/deliverable-type: web---deliverable - - # see specification of params in supply-chain - params: [] - - # set of resources that will take care of bringing the application to a - # deliverable state. (required, at least 1) - # - resources: - # name of the resource to be referenced by further resources in the chain. - # (required, unique) - # - - name: config-provider - # reference to a template object. (required) - # - templateRef: - kind: ClusterSourceTemplate - name: config-source - - - name: additional-config-provider - templateRef: - kind: ClusterSourceTemplate - name: another-config-source - - - name: deployer - templateRef: - kind: ClusterDeploymentTemplate - name: app-deploy - # a single resource that provides the location (url and revision) of - # configuration required for deployment, - # in a template, these can be consumed as: - # - # $(deployment.url)$ - # $(deployment.revision)$ - # - # (required) - deployment: - # name of the resource to provide the source information. (required) - # - resource: config-provider - - # a set of resources that provide additional information for deployment located - # at the specified url and revision. - # - # in a template, these can be consumed as: - # - # $(sources..url)$ - # $(sources..revision)$ - # - # if there is only one source, it can be consumed as: - # - # $(source.url)$ - # $(sources.revision)$ - # - # (optional) - sources: - # name of the resource to provide the source information. (required) - # - - resource: additional-config-provider - # name to be referenced in the template via a query over the list of - # sources (for instance, `$(sources.provider.url)`. - # - # (required, unique in this list) - # - name: addtnl - - # see specification for params in supply chain resources - params: [] -``` - -_ref: -[pkg/apis/v1alpha1/cluster_delivery.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_delivery.go)_ diff --git a/site/content/docs/v0.1.0/reference/gvk.md b/site/content/docs/v0.1.0/reference/gvk.md deleted file mode 100644 index d72e6905f..000000000 --- a/site/content/docs/v0.1.0/reference/gvk.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -aliases: - - /docs/development/reference/ ---- - -# GVK - -## Version - -All of the custom resources that Cartographer is working on are being written under `v1alpha1` to indicate that our -first version of it is at the "alpha stability level", and that it's our first iteration on it. - -See -[Versions in CustomResourceDefinitions](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/) - -## Group - -All of our custom resources under the `carto.run` group. - -For instance: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -``` diff --git a/site/content/docs/v0.1.0/reference/runnable.md b/site/content/docs/v0.1.0/reference/runnable.md deleted file mode 100644 index fd3e3b7d9..000000000 --- a/site/content/docs/v0.1.0/reference/runnable.md +++ /dev/null @@ -1,131 +0,0 @@ -# Runnable Custom Resources - -## Runnable - -A `Runnable` object declares the intention of having immutable objects submitted to Kubernetes according to a template ( -via ClusterRunTemplate) whenever any of the inputs passed to it changes. i.e., it allows us to provide a mutable spec -that drives the creation of immutable objects whenever that spec changes. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Runnable -metadata: - name: test-runner -spec: - # service account with permissions to create resources submitted by the runnable - # if not set, will use the default service account in the runnable's namespace - # - serviceAccountName: runnable-service-account - - # data to be made available to the template of ClusterRunTemplate - # that we point at. - # - # this field takes as value an object that maps strings to values of any - # kind, which can then be reference in a template using jsonpath such as - # `$(runnable.spec.inputs.)$`. - # - # (required) - # - inputs: - serviceAccount: bla - params: - - name: foo - value: bar - - # reference to a ClusterRunTemplate that defines how objects should be - # created referencing the data passed to the Runnable. - # - # (required) - # - runTemplateRef: - name: job-runner - - # an optional selection rule for finding an object that should be used - # together with the one being stamped out by the runnable. - # - # an object found using the rules described here are made available during - # interpolation time via `$(selected.<...object>)$`. - # - # (optional) - # - selector: - resource: - kind: Pipeline - apiVersion: tekton.dev/v1beta1 - matchingLabels: - pipelines.foo.bar: testing -``` - -## ClusterRunTemplate - -A `ClusterRunTemplate` defines how an immutable object should be stamped out based on data provided by a `Runnable`. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: - name: image-builder -spec: - # data to be gathered from the objects that it interpolates once they # - # succeeded (based on the object presenting a condition with type 'Succeeded' - # and status `True`). - # - # (optional) - # - outputs: - # e.g., make available under the Runnable `outputs` section in `status` a - # field called "latestImage" that exposes the result named 'IMAGE-DIGEST' - # of a tekton task that builds a container image. - # - latestImage: .status.results[?(@.name=="IMAGE-DIGEST")].value - - # definition of the object to interpolate and submit to kubernetes. - # - # data available for interpolation: - # - `runnable`: the Runnable object that referenced this template. - # - # e.g.: params: - # - name: revison - # value: $(runnable.spec.inputs.git-revision)$ - # - # - # - `selected`: a related object that got selected using the Runnable - # selector query. - # - # e.g.: taskRef: - # name: $(selected.metadata.name)$ - # namespace: $(selected.metadata.namespace)$ - # - # (required) - # - template: - apiVersion: tekton.dev/v1beta1 - kind: TaskRun - metadata: - generateName: $(runnable.metadata.name)$- - spec: - serviceAccountName: $(runnable.spec.inputs.serviceAccount)$ - taskRef: $(runnable.spec.inputs.taskRef)$ - params: $(runnable.spec.inputs.params)$ -``` - -ClusterRunTemplate differs from supply chain templates in many aspects: - -- ClusterRunTemplate cannot be referenced directly by a ClusterSupplyChain object (it can only be reference by a - Runnable) - -- `outputs` provide a free-form way of exposing any form of results from what has been run (i.e., submitted by the - Runnable) to the status of the Runnable object (as opposed to typed "source", "image", and "config" from supply - chains) - -- Templating context (values provided to the interpolation) is specific to the Runnable: the runnable object itself and - the object resulting from the selection query. - -- Templated object metadata.name should not be set. differently from ClusterSupplyChain, a Runnable has the semantics of - creating new objects on change, rather than patching. This means that on every input set change, a new name must be - derived. To be sure that a name can always be generated, `metadata.generateName` should be set rather than - `metadata.name`. - -Similarly to other templates, ClusterRunTemplate has a `template` field where data is taken (in this case, from Runnable -and selected objects via `runnable.spec.selector`) and via `$()$` allows one to interpolate such data to form a final -object. diff --git a/site/content/docs/v0.1.0/reference/template.md b/site/content/docs/v0.1.0/reference/template.md deleted file mode 100644 index de11438b1..000000000 --- a/site/content/docs/v0.1.0/reference/template.md +++ /dev/null @@ -1,312 +0,0 @@ -# Template Custom Resources - -## ClusterSourceTemplate - -`ClusterSourceTemplate` indicates how the supply chain could instantiate an object responsible for providing source -code. - -The `ClusterSourceTemplate` requires definition of a `urlPath` and `revisionPath`. `ClusterSourceTemplate` will update -its status to emit `url` and `revision` values, which are reflections of the values at the path on the created objects. -The supply chain may make these values available to other resources. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: - name: git-repository-battery -spec: - # default set of parameters. (optional) - # - params: - # name of the parameter (required, unique in this list) - # - - name: git-implementation - # default value if not specified in the resource that references - # this templateClusterSupplyChain (required) - # - default: libgit2 - - # jsonpath expression to instruct where in the object templated out source - # code url information can be found. (required) - # - urlPath: .status.artifact.url - - # jsonpath expression to instruct where in the object templated out - # source code revision information can be found. (required) - # - revisionPath: .status.artifact.revision - - # template for instantiating the source provider. - # - # data available for interpolation (`$()$`: - # - # - workload (access to the whole workload object) - # - params - # - sources (if specified in the supply chain) - # - images (if specified in the supply chain) - # - configs (if specified in the supply chain) - # - # (required) - # - template: - apiVersion: source.toolkit.fluxcd.io/v1beta1 - kind: GitRepository - metadata: - name: $(workload.metadata.name)$-source - spec: - interval: 3m - url: $(workload.spec.source.git.url)$ - ref: $(workload.spec.source.git.ref)$ - gitImplementation: $(params.git-implementation.value)$ - ignore: "" -``` - -_ref: -[pkg/apis/v1alpha1/cluster_source_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_source_template.go)_ - -## ClusterImageTemplate - -`ClusterImageTemplate` instructs how the supply chain should instantiate an object responsible for supplying container -images, for instance, one that takes source code, builds a container image out of it. - -The `ClusterImageTemplate` requires definition of an `imagePath`. `ClusterImageTemplate` will update its status to emit -an `image` value, which is a reflection of the value at the path on the created object. The supply chain may make this -value available to other resources. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-battery -spec: - # default set of parameters. see ClusterSourceTemplate for more - # information. (optional) - # - params: [] - - # jsonpath expression to instruct where in the object templated out container - # image information can be found. (required) - # - imagePath: .status.latestImage - - # template for instantiating the image provider. - # same data available for interpolation as any other `*Template`. (required) - # - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$-image - spec: - tag: projectcartographer/demo/$(workload.metadata.name)$ - serviceAccount: service-account - builder: - kind: ClusterBuilder - name: java-builder - source: - blob: - url: $(sources.provider.url)$ -``` - -_ref: -[pkg/apis/v1alpha1/cluster_image_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_image_template.go)_ - -## ClusterConfigTemplate - -Instructs the supply chain how to instantiate a Kubernetes object that knows how to make Kubernetes configurations -available to further resources in the chain. - -The `ClusterConfigTemplate` requires definition of a `configPath`. `ClusterConfigTemplate` will update its status to -emit a `config` value, which is a reflection of the value at the path on the created object. The supply chain may make -this value available to other resources. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterConfigTemplate -metadata: - name: deployer -spec: - # default parameters. see ClusterSourceTemplate for more info. (optional) - # - params: [] - - # jsonpath expression to instruct where in the object templated out config - # information can be found. (required) - # - configPath: .data - - # how to template out the kubernetes object. (required) - # - template: - apiVersion: v1 - kind: ConfigMap - metadata: - name: $(workload.metadata.name)$ - data: - service.yml: | - --- - apiVersion: serving.knative.dev/v1 - kind: Service - metadata: - name: links - labels: - app.kubernetes.io/part-of: $(workload.metadata.labels['app\.kubernetes\.io/part-of'])$ - spec: - template: - spec: - containers: - - image: $(images..image)$ - securityContext: - runAsUser: 1000 -``` - -_ref: -[pkg/apis/v1alpha1/cluster_config_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_config_template.go)_ - -## ClusterDeploymentTemplate - -A `ClusterDeploymentTemplate` indicates how the delivery should configure the environment (namespace/cluster). - -The `ClusterDeploymentTemplate` consumes configuration from the `deployment` values provided by the `ClusterDelivery`. -The `ClusterDeploymentTemplate` outputs these same values. The `ClusterDeploymentTemplate` is able to consume additional -configuration from the `sources` provided by the `ClusterDelivery`. - -`ClusterDeploymentTemplate` must specify criteria to determine whether the templated object has successfully completed -its role in configuring the environment. Once the criteria are met, the `ClusterDeploymentTemplate` will output the -`deployment` values. The criteria may be specified in `spec.observedMatches` or in `spec.observedCompletion`. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterDeploymentTemplate -metadata: - name: app-deploy---deliverable -spec: - # criteria for determining templated object has completed configuration of environment. - # (mutually exclusive with observedCompletion; one or the other required) - observedMatches: - # set of input:output pairs - # when the value of input == output for each set, the criteria has been satisfied - # - # (one or more required) - - input: "spec.value.some-key" - output: "status.some-key" - # input is expected to be some field specified before the templated object is reconciled - - input: "spec.value.another-key" - # output is expected to be some field set after reconciliation (e.g. in the status) - output: "status.another-key" - - # criteria for determining templated object has completed configuration of environment. - # this criteria requires that the templated object reports `status.observedGeneration` - # - # if templated object's: - # 1. `status.observedGeneration` == `metadata.generation` - # 2. the field at the specified succeeded key == the specified value - # then the criteria has been satisfied - # - # if the templated object's: - # 1. `status.observedGeneration` == `metadata.generation` - # 2. the field at the specified failed key == the specified value - # then the criteria cannot be met - # - # (mutually exclusive with observedMatches; one or the other required) - observedCompletion: - # (required) - succeeded: - # field to inspect on the templated object - # (required) - key: 'status.conditions[?(@.type=="Succeeded")].status' - # value to expect at the inspected field - # (required) - value: "True" - # (optional) - failed: - # (required) - key: 'status.conditions[?(@.type=="Failed")].status' - # (required) - value: "True" - # template for configuring the environment/deploying an application - template: - apiVersion: kappctrl.k14s.io/v1alpha1 - kind: App - metadata: - name: $(deliverable.metadata.name)$ - spec: - serviceAccountName: default - fetch: - - http: - url: $(source.url)$ - template: - - ytt: {} - deploy: - - kapp: {} -``` - -_ref: -[pkg/apis/v1alpha1/cluster_deployment_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_deployment_template.go)_ - -## ClusterTemplate - -A `ClusterTemplate` instructs the supply chain to instantiate a Kubernetes object that has no outputs to be supplied to -other objects in the chain, for instance, a resource that deploys a container image that has been built by other -ancestor resources. - -The `ClusterTemplate` does not emit values to the supply chain. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: deployer -spec: - # default parameters. see ClusterSourceTemplate for more info. (optional) - # - params: [] - - # how to template out the kubernetes object. (required) - # - template: - apiVersion: kappctrl.k14s.io/v1alpha1 - kind: App - metadata: - name: $(workload.metadata.name)$ - spec: - serviceAccountName: service-account - fetch: - - inline: - paths: - manifest.yml: | - --- - apiVersion: kapp.k14s.io/v1alpha1 - kind: Config - rebaseRules: - - path: [metadata, annotations, serving.knative.dev/creator] - type: copy - sources: [new, existing] - resourceMatchers: &matchers - - apiVersionKindMatcher: {apiVersion: serving.knative.dev/v1, kind: Service} - - path: [metadata, annotations, serving.knative.dev/lastModifier] - type: copy - sources: [new, existing] - resourceMatchers: *matchers - --- - apiVersion: serving.knative.dev/v1 - kind: Service - metadata: - name: links - labels: - app.kubernetes.io/part-of: $(workload.metadata.labels['app\.kubernetes\.io/part-of'])$ - spec: - template: - spec: - containers: - - image: $(images..image)$ - securityContext: - runAsUser: 1000 - template: - - ytt: {} - deploy: - - kapp: {} -``` - -_ref: -[pkg/apis/v1alpha1/cluster_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_template.go)_ diff --git a/site/content/docs/v0.1.0/reference/workload.md b/site/content/docs/v0.1.0/reference/workload.md deleted file mode 100644 index fa6710fee..000000000 --- a/site/content/docs/v0.1.0/reference/workload.md +++ /dev/null @@ -1,248 +0,0 @@ -# Workload and Supply Chain Custom Resources - -## Workload - -`Workload` allows the developer to pass information about the app to be delivered through the supply chain. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: spring-petclinic - labels: - # label to be matched against a `ClusterSupplyChain`s label selector. - # - app.tanzu.vmware.com/workload-type: web # (1) - -spec: - # service account with permissions to create resources submitted by the supply chain - # if not set, will use serviceAccountName from supply chain - # if that is also not set, will use the default service account in the workload's namespace - # - serviceAccountName: workload-service-account - - source: - # source code location in a git repository. - # - git: - url: https://github.com/scothis/spring-petclinic.git - ref: - branch: "main" - tag: "v0.0.1" - commit: "b4df00d" - - # image containing the source code to be used throughout - # the supply chain - # - image: harbor-repo.vmware.com/tanzu_desktop/golang-sample-source@sha256:e508a587 - - build: - # environment variables to propagate to a resource responsible - # for performing a build in the supplychain. - # - env: - - name: CGO_ENABLED - value: "0" - - # serviceClaims to be bound through service-bindings - # - serviceClaims: - - name: broker - ref: - apiVersion: services.tanzu.vmware.com/v1alpha1 - kind: RabbitMQ - name: rabbit-broker - - # image with the app already built - # - image: foo/docker-built@sha256:b4df00d # (2) - - # environment variables to be passed to the main container - # running the application. - # - env: - - name: SPRING_PROFILES_ACTIVE - value: mysql - - # resource constraints for the main application. - # - resources: - requests: - memory: 1Gi - cpu: 100m - limits: - memory: 1Gi - cpu: 4000m - - # any other parameters that don't fit the ones already typed. - params: - - name: java-version - # name of the parameter. should match a supply chain parameter name - value: 11 -``` - -Notes: - -1. labels serve as a way of indirectly selecting `ClusterSupplyChain` - `Workload`s without labels that match a - `ClusterSupplyChain`'s `spec.selector` won't be reconciled and will stay in an `Errored` state. -2. `spec.image` is useful for enabling workflows that are not based on building the container image from within the - supplychain, but outside. - -_ref: -[pkg/apis/v1alpha1/workload.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/workload.go)_ - -## ClusterSupplyChain - -With a `ClusterSupplyChain`, app operators describe which "shape of applications" they deal with (via `spec.selector`), -and what series of resources are responsible for creating an artifact that delivers it (via `spec.resources`). - -Those `Workload`s that match `spec.selector` then go through the resources specified in `spec.resources`. - -A resource can emit values, which the supply chain can make available to other resources. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supplychain -spec: - # specifies the label key-value pair to select workloads. (required, one one) - # - selector: - app.tanzu.vmware.com/workload-type: web - - # specifies the service account to be used to create resources if one - # is not specified in the workload - # - # (optional) - serviceAccountRef: - name: service-account - namespace: default - - # parameters to override the defaults from the templates. - # if a resource in the supply-chain specifies a parameter - # of the same name that resource parameter clobber what is - # specified here at the top level (this includes specification - # as `value` vs `default`) - # - # in a template, these can be consumed as: - # - # $(params.) - # - # (optional) - params: - # name of the parameter. (required, unique in this list, and should match - # a pre-defined parameter name in a template) - # - - name: java-version - # value to be passed down to the template's parameters, supporting - # interpolation. - # - value: 6 - # when specified as `value`, a parameter of the same name on the workload will - # be disregarded. - # - - name: jvm - value: openjdk - # when specified as `default`, a parameter of the same name on the workload will - # overwrite this default value. - # - - # set of resources that will take care of bringing the application to a - # deliverable state. (required, at least 1) - # - resources: - # name of the resource to be referenced by further resources in the chain. - # (required, unique) - # - - name: source-provider - # object reference to a template object that instructs how to - # instantiate and keep the resource up to date. (required) - # - templateRef: - kind: ClusterSourceTemplate - name: git-repository-battery - - - name: built-image-provider - templateRef: - kind: ClusterImageTemplate - name: kpack-battery - - # a set of resources that provide source information, that is, url and - # revision. - # - # in a template, these can be consumed as: - # - # $(sources..url)$ - # $(sources..revision)$ - # - # if there is only one source, it can be consumed as: - # - # $(source.url)$ - # $(sources.revision)$ - # - # (optional) - sources: - # name of the resource to provide the source information. (required) - # - - resource: source-provider - # name to be referenced in the template via a query over the list of - # sources (for instance, `$(sources.provider.url)`. - # - # (required, unique in this list) - # - name: provider - - # (optional) set of resources that provide image information. - # - # in a template, these can be consumed as: - # - # $(images..image) - # - # if there is only one image, it can be consumed as: - # - # $(image) - # - images: [] - - # (optional) set of resources that provide kubernetes configuration, - # for instance, podTemplateSpecs. - # in a template, these can be consumed as: - # - # $(configs..config) - # - # if there is only one config, it can be consumed as: - # - # $(config) - # - configs: [] - - # parameters to override the defaults from the templates. - # resource parameters override any parameter of the same name set - # for the overall supply-chain in spec.params - # in a template, these can be consumed as: - # - # $(params.) - # - # (optional) - params: - # name of the parameter. (required, unique in this list, and should match - # template's pre-defined set of parameters) - # - - name: java-version - # value to be passed down to the template's parameters, supporting - # interpolation. - # - default: 9 - # when specified as `default`, a parameter of the same name on the workload will - # overwrite this default value. - # - - name: jvm - value: openjdk - # when specified as `value`, a parameter of the same name on the workload will - # be disregarded - # -``` - -_ref: -[pkg/apis/v1alpha1/cluster_supply_chain.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_supply_chain.go)_ diff --git a/site/content/docs/v0.1.0/runnable/architecture.md b/site/content/docs/v0.1.0/runnable/architecture.md deleted file mode 100644 index 7d111459a..000000000 --- a/site/content/docs/v0.1.0/runnable/architecture.md +++ /dev/null @@ -1,98 +0,0 @@ -# Architecture and Concepts - -## Overview - -Runnable is a component of Cartographer. The `Runnable` CRD provides an intermediate layer to update immutable -resources. For example, Tekton does not allow updating TaskRuns and PipelineRuns, so we'll update Runnable to test new -commits. - -## Concepts - -[comment]: <> (### Edge vs level-driven triggers) [comment]: <> (TODO) - -### ClusterRunTemplate - -With the addition of Runnable, there is a new template, `ClusterRunTemplate`. A `ClusterRunTemplate` will _always_ -create resources (i.e. `kubectl create`). - -ClusterRunTemplate consists of: - -- The Kubernetes resource yaml as `spec.template` -- **Output paths** which tell Cartographer where to find the output of the Kubernetes resource - - The outputs will be added to `runnable.status.outputs` - -{{< figure src="../../img/runnable/clusterruntemplate.svg" alt="Template" width="400px" >}} - -### Runnable - -Runnables consist of: - -- **RunTemplateRef**: a reference to a `ClusterRunTemplate` which contains the yaml of the immutable resource to be - created -- **Selector**: used to dynamically discover a resource that is needed in the `ClusterRunTemplate`. The matching - resource is available in the template data as `selected`. -- **Inputs**: arbitrary key, value pairs that are passed along to the `ClusterRunTemplate`. - -{{< figure src="../../img/runnable/runnable-outline.svg" alt="Runnable" width="400px" >}} - -### Template Data - -See [Template Data](../../templating#template-data) for templating in Cartographer. - -The ClusterRunTemplate is provided a data structure that contains: - -- runnable -- selected - -#### Runnable - -The entire Runnable resource is available for retrieving values. To use a Runnable value, use the format: - -- **Simple template**: `$(runnable..(...))$` -- **ytt**: not currently supported, see [issue](https://github.com/vmware-tanzu/cartographer/issues/214) - -**Runnable Examples** - -| Simple template | ytt | -| ---------------------------- | --- | -| `$(runnable.metadata.name)$` | N/A | -| `$(runnable.spec.inputs)$` | N/A | - -#### Selected - -The entire selected resource is available for retrieving values. To use selected value, use the format: - -- **Simple template**: `$(selected..(...))$` -- **ytt**: not currently supported, see [issue](https://github.com/vmware-tanzu/cartographer/issues/214) - -**Selected Examples** - -| Simple template | ytt | -| ---------------------------- | --- | -| `$(selected.metadata.name)$` | N/A | - -## Theory of Operation - -When Cartographer reconciles a Runnable, the resource in the specified `ClusterRunTemplate` is applied: - -1. **Resolve Selector**: attempt to find a resource that matches the selector -2. **Generate and apply resource spec**: Apply the result of interpolating `spec.template` in the `ClusterRunTemplate`, - **selected**, and the **runnable spec**. -3. **Retrieve Output**: The output to use is specified in the **template output path** - 1. Get the output from the most recently created resource, where - `status.conditions[?(@.type=="Succeeded")].status == True`. - 2. Store the output in `runnable.status.outputs`. - -![Realize](../../img/runnable/runnable-realize-new.jpg) - - - -## Runnable In Action - -![Runnable](../../img/runnable/runnable-new.jpg) - -### Using Runnable with a Supply Chain - -![Runnable-SupplyChain](../../img/runnable/runnable-supplychain-new.jpg) - -To see an example of the rest of the supply chain, see [ClusterSupplyChain](../architecture#clustersupplychain). diff --git a/site/content/docs/v0.1.0/style-guide.md b/site/content/docs/v0.1.0/style-guide.md deleted file mode 100644 index eb96b0d15..000000000 --- a/site/content/docs/v0.1.0/style-guide.md +++ /dev/null @@ -1,392 +0,0 @@ -_This style guide is adapted from the -[Velero Style Guide](https://github.com/vmware-tanzu/velero/blob/main/site/content/docs/v1.6/style-guide.md)._ - -This page outlines writing style guidelines for the Cartographer documentation and you should use this page as a -reference you write or edit content. Note that these are guidelines, not rules. Use your best judgment as you write -documentation, and feel free to propose changes to these guidelines. Changes to the style guide are made by the -Cartographer maintainers as a group. To propose a change or addition create an issue/PR. - -## Content best practices - -### Use present tense - -{{< table caption="Do and Don't - Use present tense" >}} - -| Do | Don't | -| ------------------------------ | -------------------------------- | -| This `command` starts a proxy. | This command will start a proxy. | - -{{< /table >}} - -Exception: Use future or past tense if it is required to convey the correct meaning. - -### Use active voice - -{{< table caption="Do and Don't - Use active voice" >}} - -| Do | Don't | -| ------------------------------------------ | ------------------------------------------------ | -| You can explore the API using a browser. | The API can be explored using a browser. | -| The YAML file specifies the replica count. | The replica count is specified in the YAML file. | - -{{< /table >}} - -Exception: Use passive voice if active voice leads to an awkward sentence construction. - -### Use simple and direct language - -Use simple and direct language. Avoid using unnecessary phrases, such as saying "please." - -{{< table caption="Do and Don't - Use simple and direct language" >}} - -| Do | Don't | -| --------------------------- | -------------------------------------------- | -| To create a ReplicaSet, ... | In order to create a ReplicaSet, ... | -| See the configuration file. | Please see the configuration file. | -| View the Pods. | With this next command, we'll view the Pods. | - -{{< /table >}} - -### Address the reader as "you" - -{{< table caption="Do and Don't - Addressing the reader" >}} - -| Do | Don't | -| --------------------------------------- | --------------------------------------- | -| You can create a Deployment by ... | We'll create a Deployment by ... | -| In the preceding output, you can see... | In the preceding output, we can see ... | - -{{< /table >}} - -### Avoid Latin phrases - -Prefer English terms over Latin abbreviations. - -{{< table caption="Do and Don't - Avoid Latin phrases" >}} - -| Do | Don't | -| ---------------- | --------- | -| For example, ... | e.g., ... | -| That is, ... | i.e., ... | - -{{< /table >}} - -Exception: Use "etc." for et cetera. - -## Patterns to avoid - -### Avoid using "we" - -Using "we" in a sentence can be confusing, because the reader might not know whether they're part of the "we" you're -describing. - -{{< table caption="Do and Don't - Avoid using we" >}} - -| Do | Don't | -| ----------------------------------------- | ----------------------------------------------- | -| Version 1.4 includes ... | In version 1.4, we have added ... | -| Kubernetes provides a new feature for ... | We provide a new feature ... | -| This page teaches you how to use Pods. | In this page, we are going to learn about Pods. | - -{{< /table >}} - -### Avoid jargon and idioms - -Many readers speak English as a second language. Avoid jargon and idioms to help them understand better. - -{{< table caption="Do and Don't - Avoid jargon and idioms" >}} - -| Do | Don't | -| --------------------- | ---------------------- | -| Internally, ... | Under the hood, ... | -| Create a new cluster. | Turn up a new cluster. | - -{{< /table >}} - -### Avoid statements about the future or that will soon be out of date - -Avoid making promises or giving hints about the future. If you need to talk about a beta feature, put the text under a -heading that identifies it as beta information. - -Also avoid words like “recently”, "currently" and "new." A feature that is new today might not be considered new in a -few months. - -{{< table caption="Do and Don't - Avoid statements that will soon be out of date" >}} - -| Do | Don't | -| ----------------------------------- | --------------------------------------- | -| In version 1.4, ... | In the current version, ... | -| The Federation feature provides ... | The new Federation feature provides ... | - -{{< /table >}} - -### Language - -This documentation uses U.S. English spelling and grammar. - -## Documentation formatting standards - -### Use camel case for API objects - -When you refer to an API object, use the same uppercase and lowercase letters that are used in the actual object name. -Typically, the names of API objects use [camel case](https://en.wikipedia.org/wiki/Camel_case). - -Don't split the API object name into separate words. For example, use PodTemplateList, not Pod Template List. - -Refer to API objects without saying "object," unless omitting "object" leads to an awkward sentence construction. - -{{< table caption="Do and Don't - Do and Don't - API objects" >}} - -| Do | Don't | -| -------------------------------------------- | -------------------------------------------- | -| The Pod has two containers. | The pod has two containers. | -| The Deployment is responsible for ... | The Deployment object is responsible for ... | -| A PodList is a list of Pods. | A Pod List is a list of pods. | -| The two ContainerPorts ... | The two ContainerPort objects ... | -| The two ContainerStateTerminated objects ... | The two ContainerStateTerminateds ... | - -{{< /table >}} - -### Use angle brackets for placeholders - -Use angle brackets for placeholders. Tell the reader what a placeholder represents. - -1. Display information about a Pod: - - kubectl describe pod -n - - If the pod is in the default namespace, you can omit the '-n' parameter. - -### Use bold for user interface elements - -{{< table caption="Do and Don't - Bold interface elements" >}} - -| Do | Don't | -| ----------------- | --------------- | -| Click **Fork**. | Click "Fork". | -| Select **Other**. | Select "Other". | - -{{< /table >}} - -### Use italics to define or introduce new terms - -{{< table caption="Do and Don't - Use italics for new terms" >}} - -| Do | Don't | -| ------------------------------------------ | -------------------------------------------- | -| A _cluster_ is a set of nodes ... | A "cluster" is a set of nodes ... | -| These components form the _control plane_. | These components form the **control plane**. | - -{{< /table >}} - -### Use code style for filenames, directories, paths, object field names and namespaces - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| -------------------------------------- | ------------------------------------ | -| Open the `envars.yaml` file. | Open the envars.yaml file. | -| Go to the `/docs/tutorials` directory. | Go to the /docs/tutorials directory. | -| Open the `/_data/concepts.yaml` file. | Open the /\_data/concepts.yaml file. | - -{{< /table >}} - -### Use punctuation inside quotes - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| events are recorded with an associated "stage." | events are recorded with an associated "stage". | -| The copy is called a "fork." | The copy is called a "fork". | - -{{< /table >}} - -Exception: When the quoted word is a user input. - -Example: - -- My user ID is “IM47g”. -- Did you try the password “mycatisawesome”? - -## Inline code formatting - -### Use code style for inline code and commands - -For inline code in an HTML document, use the `` tag. In a Markdown document, use the backtick (`` ` ``). - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| The `kubectl run` command creates a Deployment. | The "kubectl run" command creates a Deployment. | -| For declarative management, use `kubectl apply`. | For declarative management, use "kubectl apply". | -| Use single backticks to enclose inline code. For example, `var example = true`. | Use two asterisks (`**`) or an underscore (`_`) to enclose inline code. For example, **var example = true**. | -| Use triple backticks (\`\`\`) before and after a multi-line block of code for fenced code blocks. | Use multi-line blocks of code to create diagrams, flowcharts, or other illustrations. | -| Use meaningful variable names that have a context. | Use variable names such as 'foo','bar', and 'baz' that are not meaningful and lack context. | -| Remove trailing spaces in the code. | Add trailing spaces in the code, where these are important, because a screen reader will read out the spaces as well. | - -{{< /table >}} - -### Starting a sentence with a component tool or component name - -{{< table caption="Do and Don't - Starting a sentence with a component tool or component name" >}} - -| Do | Don't | -| ------------------------------------------------------------------- | --------------------------------------------------------------- | -| The `kubeadm` tool bootstraps and provisions machines in a cluster. | `kubeadm` tool bootstraps and provisions machines in a cluster. | -| The kube-scheduler is the default scheduler for Kubernetes. | kube-scheduler is the default scheduler for Kubernetes. | - -{{< /table >}} - -### Use normal style for string and integer field values - -For field values of type string or integer, use normal style without quotation marks. - -{{< table caption="Do and Don't - Use normal style for string and integer field values" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| Set the value of `imagePullPolicy` to `Always`. | Set the value of `imagePullPolicy` to "Always". | -| Set the value of `image` to `nginx:1.16`. | Set the value of `image` to nginx:1.16. | -| Set the value of the `replicas` field to `2`. | Set the value of the `replicas` field to 2. | - -{{< /table >}} - -## Code snippet formatting - -### Don't include the command prompt - -{{< table caption="Do and Don't - Don't include the command prompt" >}} - -| Do | Don't | -| ---------------- | ------------------ | -| kubectl get pods | $ kubectl get pods | - -{{< /table >}} - -### Separate commands from output - -Verify that the Pod is running on your chosen node: - -``` -kubectl get pods --output=wide -``` - -The output is similar to this: - -``` -NAME READY STATUS RESTARTS AGE IP NODE -nginx 1/1 Running 0 13s 10.200.0.4 worker0 -``` - -## Cartographer word list - -A list of Cartographer-specific terms and words to be used consistently across the site. - -{{< table caption="Cartographer word list" >}} - -| Trem | Usage | -| ------------ | ------------------------------------------------------------------ | -| Kubernetes | Kubernetes should always be capitalized. | -| Docker | Docker should always be capitalized. | -| Cartographer | Cartographer should always be capitalized. | -| VMware | VMware should always be correctly capitalized. | -| On-premises | On-premises or on-prem rather than on-premise or other variations. | -| Backup | Backup rather than back up, back-up or other variations. | -| Plugin | Plugin rather than plug-in or other variations. | -| Allowlist | Use allowlist instead of whitelist. | -| Denylist | Use denylist instead of blacklist. | - -{{< /table >}} - -## Markdown elements - -### Headings - -People accessing this documentation may use a screen reader or other assistive technology (AT). -[Screen readers](https://en.wikipedia.org/wiki/Screen_reader) are linear output devices, they output items on a page one -at a time. If there is a lot of content on a page, you can use headings to give the page an internal structure. A good -page structure helps all readers to easily navigate the page or filter topics of interest. - -{{< table caption="Do and Don't - Headings" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| Include a title on each page or blog post. | Include more than one title headings (#) in a page. | -| Use ordered headings to provide a meaningful high-level outline of your content. | Use headings level 4 through 6, unless it is absolutely necessary. If your content is that detailed, it may need to be broken into separate articles. | -| Use sentence case for headings. For example, **Extend kubectl with plugins** | Use title case for headings. For example, **Extend Kubectl With Plugins** | - -{{< /table >}} - -### Paragraphs - -{{< table caption="Do and Don't - Paragraphs" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------------- | ------------------------------------ | -| Try to keep paragraphs under 6 sentences. | Write long-winded paragraphs. | -| Use three hyphens (`---`) to create a horizontal rule for breaks in paragraph content. | Use horizontal rules for decoration. | - -{{< /table >}} - -### Links - -{{< table caption="Do and Don't - Links" >}} - -| Do | Don't | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| Write hyperlinks that give you context for the content they link to. For example: Certain ports are open on your machines. See [check required ports](#check-required-ports) for more details. | Use ambiguous terms such as “click here”. For example: Certain ports are open on your machines. See [here](#check-required-ports) for more details. | -| Write Markdown-style links: `[link text](URL)`. For example: `[community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA)` and the output is [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA). | Write HTML-style links: `Visit our tutorial!` | - -{{< /table >}} - -### Lists - -Group items in a list that are related to each other and need to appear in a specific order or to indicate a correlation -between multiple items. When a screen reader comes across a list—whether it is an ordered or unordered list—it will be -announced to the user that there is a group of list items. The user can then use the arrow keys to move up and down -between the various items in the list. Website navigation links can also be marked up as list items; after all they are -nothing but a group of related links. - -- End each item in a list with a period if one or more items in the list are complete sentences. For the sake of - consistency, normally either all items or none should be complete sentences. - -- Ordered lists that are part of an incomplete introductory sentence can be in lowercase and punctuated as if each item - was a part of the introductory sentence. - -- Use the number one (`1.`) for ordered lists. - -- Use (`+`), (`*`), or (`-`) for unordered lists - be consistent within the same document. - -- Leave a blank line after each list. - -- Indent nested lists with four spaces (for example, ⋅⋅⋅⋅). - -- List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either - four spaces or one tab. - -### Tables - -The semantic purpose of a data table is to present tabular data. Sighted users can quickly scan the table but a screen -reader goes through line by line. A table [caption](https://www.w3schools.com/tags/tag_caption.asp) is used to create a -descriptive title for a data table. Assistive technologies (AT) use the HTML table caption element to identify the table -contents to the user within the page structure. - -If you need to create a table, create the table in markdown and use the table -[Hugo shortcode](https://gohugo.io/content-management/shortcodes/) to include a caption. - -``` -{{}} - -| Parameter | Description | Default | -|:---------|:------------|:------- | -| `timeout` | The timeout for requests | `30s` | -| `logLevel` | The log level for log output | `INFO` | - -{{< /table */>}} - -``` - -**Note:** This shortcode does not support markdown reference-style links. Use inline-style links in tables. See more -information about [markdown link styles](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links). diff --git a/site/content/docs/v0.1.0/templating.md b/site/content/docs/v0.1.0/templating.md deleted file mode 100644 index 4ea0d8535..000000000 --- a/site/content/docs/v0.1.0/templating.md +++ /dev/null @@ -1,234 +0,0 @@ -# Templating - -There are two options for templating in Cartographer, simple templates and ytt: - -## Simple Templates - -Define simple templates in `spec.template` in [Templates](./reference/template) - -Simple templates provide string interpolation in a `$(...)$` tag with -[jsonpath](https://pkg.go.dev/k8s.io/client-go/util/jsonpath) syntax. - -## ytt - -Define [ytt](https://carvel.dev/ytt/) templates in `spec.ytt` in [Templates](./reference/template) - -[ytt](https://carvel.dev/ytt/) is complete YAML aware templating language. - -Use `ytt` when your templates contain complex logic, such as **conditionals** or **looping over collections**. - -## Template Data - -Both options for templating are provided a data structure that contains: - -- owner resource (workload, deliverable) -- inputs, that are specified in the blueprint for the template (sources, images, configs, deployments) -- parameters - -Note: all `ytt` examples assume you have loaded the data module with `#@ load("@ytt:data", "data")`. - -### Owner - -The entire owner resource is available for retrieving values. To use an owner value, use the format: - -- **Simple template**: `$(..(...))$` -- **ytt**: `#@ data.values...(...)` - -#### Owner Examples - -| Simple template | ytt | -| --------------------------------- | -------------------------------------------- | -| `$(workload.metadata.name)$` | `#@ data.values.workload.metadata.name` | -| `$(deliverable.spec.source.url)$` | `#@ data.values.deliverable.spec.source.url` | - -### Inputs - -The template specifies the inputs required in the blueprint. - -You may specify a combination of one or more of these input types: - -| Input type | Accessor | -| ----------- | ----------------------------------------------------------- | -| sources | `sources..url`, `sources..revision` | -| images | `images.` | -| configs | `configs.` | -| deployments | `sources..url`, `sources..revision` | - -Where the `` corresponds to the `spec.resources[].[].name` expected in -the blueprint. - -Specifying inputs in a template: - -- **Simple template**: `$(.(.))$` -- **ytt**: `#@ data.values..(.)` - -#### Inputs Examples - -Given a supply chain where a resource has multiple sources and a config: - -```yaml ---- -spec: - resources: - - name: my-template - sources: - - resource: source-tester - name: tested - - resource: source-original - name: original - configs: - - resource: configurator - name: app-configuration -``` - -They could be used in the template as follows: - -| Simple template | ytt | -| ------------------------------- | ------------------------------------------ | -| `$(sources.original.url)$` | `#@ data.values.sources.original.url` | -| `$(sources.tested.revision)$` | `#@ data.values.sources.tested.revision` | -| `$(configs.app-configuration)$` | `#@ data.values.configs.app-configuration` | - -#### Input Aliases - -If only one input of a given input-type is required, refer to it in the singular and omit the input-name. - -- **Simple template**: `$(.)$` -- **ytt**: `#@ data.values.(.)` - -#### Input Alias Examples - -Given a supply chain where a resource has a single source and a single config: - -```yaml ---- -spec: - resources: - - name: my-template - sources: - - resource: source-original - name: original - configs: - - resource: configurator - name: app-configuration -``` - -They could be used in the template as follows: - -| Simple template | ytt | -| --------------------- | -------------------------------- | -| `$(source.url)$` | `#@ data.values.source.url` | -| `$(source.revision)$` | `#@ data.values.source.revision` | -| `$(config)$` | `#@ data.values.config` | - -### Parameters - -See [Parameter Hierarchy](architecture#parameter-hierarchy) for more information on the precedence of parameters for -owner, blueprint and templates. - -To use a parameter in the template, use the format: - -- **Simple template**: `$(params.)$` -- **ytt**: `data.values.params.` - -#### Parameter Example - -| Simple template | ytt | -| ------------------------- | ------------------------------------ | -| `$(params.image_prefix)$` | `#@ data.values.params.image_prefix` | - -## Complete Examples - -### Simple Template - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - params: - - name: image_prefix - default: projectcartographer/demo- - - imagePath: .status.latestImage - - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: service-account - builder: - kind: ClusterBuilder - name: go-builder - source: - blob: - url: $(sources.source.url)$ - build: - env: $(workload.spec.build.env)$ -``` - -### ytt - -```yaml ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - imagePath: .status.latestImage - params: - - name: serviceAccount - default: default - - name: clusterBuilder - default: default - - name: registry - default: {} - ytt: | - #@ load("@ytt:data", "data") - - #@ def image(): - #@ return "/".join([ - #@ data.values.params.registry.server, - #@ data.values.params.registry.repository, - #@ "-".join([ - #@ data.values.workload.metadata.name, - #@ data.values.workload.metadata.namespace, - #@ ]) - #@ ]) - #@ end - - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: #@ data.values.workload.metadata.name - labels: - app.kubernetes.io/component: build - #@ if/end hasattr(data.values.workload.metadata, "labels") and hasattr(data.values.workload.metadata.labels, "app.kubernetes.io/part-of"): - app.kubernetes.io/part-of: #@ data.values.workload.metadata.labels["app.kubernetes.io/part-of"] - spec: - tag: #@ image() - serviceAccountName: #@ data.values.params.serviceAccount - builder: - kind: ClusterBuilder - name: #@ data.values.params.clusterBuilder - source: - blob: - url: #@ data.values.source.url - #@ if/end hasattr(data.values.workload.spec.source, "subPath"): - subPath: #@ data.values.workload.spec.source.subPath - build: - env: - - name: BP_OCI_SOURCE - value: #@ data.values.source.revision - #@ if hasattr(data.values.workload.spec.build, "env"): - #@ for var in data.values.workload.spec.build.env: - - name: #@ var.name - value: #@ var.value - #@ end - #@ end -``` diff --git a/site/content/docs/v0.1.0/troubleshooting.md b/site/content/docs/v0.1.0/troubleshooting.md deleted file mode 100644 index 4cbf3b9f6..000000000 --- a/site/content/docs/v0.1.0/troubleshooting.md +++ /dev/null @@ -1,140 +0,0 @@ -# Troubleshooting - -## Reading your workload or deliverable status - -Cartographer makes every effort to provide you with useful information in the `status` field of your `workload` or -`deliverable` object. - -To see the status of your workload: - -```bash -kubectl get workload -n -oyaml -``` - -**Note**: We do not recommend `kubectl describe` as it makes statuses harder to read. - -Take a look at the `status:` section for conditions. E.g.: - -```yaml -status: - conditions: - - type: SupplyChainReady - status: True - reason: Ready - - type: ResourcesSubmitted - status: True - reason: Ready - - type: Ready - status: True - reason: Ready -``` - -## Common status conditions - -Cartographer conditions follow the -[Kubernetes API conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties) - -There is a top level condition of `Type: Ready` which can have a `Status` of `Unknown`, `True` or `False`. - -If your workload or deliverable has a `False` or a `Unknown` condition, inspect the conditions for cause. The -`Type: Ready` condition's `Reason` will match that of the sub-condition causing the negative status. - -### Unknown vs. False - -A status of `False` typically means Cartographer can not proceed until user intervention occurs. These are errors in -configuration. - -A status of `Unknown` indicates that resources have not yet resolved. Causes can include network timeouts, long running -processes, and occasionally a misconfiguration that Cartographer cannot itself detect. - -### MissingValueAtPath - -| Type | Status | Occurs In | -| ------------------ | ------------------ | --------------------- | -| ResourcesSubmitted | MissingValueAtPath | Workload, Deliverable | - -This is the most common `Unknown` state. - -```yaml -status: - conditions: - - type: SupplyChainReady - status: True - reason: Ready - - type: ResourcesSubmitted - status: Unknown - reason: MissingValueAtPath - message: - Waiting to read value [.status.latestImage] from resource [images.kpack.io/cool-app] in namespace [default] - - type: Ready - status: Unknown - reason: MissingValueAtPath -``` - -You will see this as part of normal operation, because a [Blueprint Resource](architecture.md/#blueprints) is applied to -your cluster, however the [output path](architecture.md/#templates) is not populated. - -If your `workload` or `deliverable` are taking a long time to become ready, then there might be an issue with the -**resource** or the **output path** - -The `message:` for `ResourcesSubmitted` will help you locate the resource causing issues. - -The most likely cause for this status is that the resource is unable to populate the specified path. Look at the -resource's status to diagnose the cause. - -#### Resolving MissingValueAtPath when the resource is failing: - -First look at the resource itself: - -```bash -kubectl describe images.kpack.io/cool-app -n default -``` - -You will see that the value at path `.status.latestImage` is not populated. Check the status and events of the resource, -consulting the documentation for the specific resource. - -#### Resolving MissingValueAtPath when the path is incorrect: - -Refer to the template specified resource's documentation for the location of the required output. - -For example, given the message - -``` -Waiting to read value [.status.latestImg] from resource [images.kpack.io/cool-app] in namespace [default] -``` - -- Look at the resources status, that's the most likely place you'll find the output you want - -```bash -kubectl get images.kpack.io/cool-app -n default -oyaml` - -... -status: - buildCounter: 5 - conditions: - - lastTransitionTime: "2021-11-09T03:16:54Z" - status: "True" - type: Ready - - lastTransitionTime: "2021-11-09T03:16:54Z" - status: "True" - type: BuilderReady - latestBuildImageGeneration: 2 - latestBuildReason: STACK - latestBuildRef: tanzu-java-web-app-build-5 - latestImage: myrepo.io/tanzu-java-web-app@sha256:a92eafaf8a2e5ec306be44e29c9c5e0696bf2c6517b4627be1580c2d16f2ddb9 - latestStack: io.buildpacks.stacks.bionic - observedGeneration: 2 -``` - -- Change the **output path** of the template to match, E.g: from `.status.latestImg` to `.status.latestImage` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - imagePath: .status.latestImage -``` - -[comment]: <> (## Viewing your supply chain or delivery instances) diff --git a/site/content/docs/v0.2.0/_index.md b/site/content/docs/v0.2.0/_index.md deleted file mode 100644 index fbd546770..000000000 --- a/site/content/docs/v0.2.0/_index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -version: v0.2.0 -cascade: - layout: docs ---- - -## TL;DR - -Cartographer is a -[Supply Chain Choreographer](https://tanzu.vmware.com/developer/guides/ci-cd/supply-chain-choreography/) for Kubernetes. -It allows App Operators to create pre-approved paths to production by integrating Kubernetes resources with the elements -of their existing toolchains (e.g. Jenkins). - -**Each** pre-approved supply chain creates a paved road to production; orchestrating supply chain resources - test, -build, scan, and deploy - allowing developers to be able to focus on delivering value to their users while also -providing App Operators with the peace of mind that all code in production has passed through all of the steps of an -approved workflow. - -## Cartographer Design and Philosophy - -Cartographer allows users to define all of the steps that an application must go through to create an image and -Kubernetes configuration. Users achieve this with the Supply Chain abstraction, see -[Spec Reference](reference/workload#clustersupplychain). - -The supply chain consists of resources that are specified via Templates. Each template acts as a wrapper for existing -Kubernetes resources and allows them to be used with Cartographer. There are currently four different types of templates -that can be use in a Cartographer supply chain: - -- [Source Template](reference/template#clustersourcetemplate) -- [Image Template](reference/template#clusterimagetemplate) -- [Config Template](reference/template#clusterconfigtemplate) -- [Generic Template](reference/template#clustertemplate) - -Contrary to many other Kubernetes native workflow tools that already exist in the market, Cartographer does not “run” -any of the objects themselves. Instead, it monitors the execution of each resource and templates the following resource -in the supply chain after a given resource has completed execution and updated its status. - -The supply chain may also be extended to include integrations to existing CI/CD pipelines by using the Runnable CRD -(which is part of Cartographer). The Runnable CRD acts as a wrapper for CRDs that are immutable (meaning that instead of -updating an object, a new object would be created). There are a number of CI/CD CRDs that follow this pattern, including -Tekton. The Runnable CRD provides a declarative way for pipelines to be run inside of Cartographer. - -While the supply chain is operator facing, Cartographer also provides an abstraction for developers called -[workloads](reference/workload#workload). Workloads allow developers to create application specifications such as the -location of their repository, environment variables and service claims. - -By design, supply chains can be reused by many workloads. This allows an operator to specify the steps in the path to -production a single time, and for developers to specify their applications independently but for each to use the same -path to production. The intent is that developers are able to focus on providing value for their users and can reach -production quickly and easily, while providing peace of mind for app operators, who are ensured that each application -has passed through the steps of the path to production that they’ve defined. - -![Cartographer High Level Diagram](img/ownership-flow.png) diff --git a/site/content/docs/v0.2.0/architecture.md b/site/content/docs/v0.2.0/architecture.md deleted file mode 100644 index 83357114c..000000000 --- a/site/content/docs/v0.2.0/architecture.md +++ /dev/null @@ -1,162 +0,0 @@ -# Architecture and Concepts - -## Overview - -Cartographer is an open-source Supply Chain Choreographer for Kubernetes. Cartographer provides a set of Kubernetes -controllers and CRDs that allow a platform operator to create an application platform by specifying repeatable, reusable -**code-to-production** blueprints. - -Two kinds of blueprint work together to provide **code-to-production**, [Supply Chains](#clustersupplychain) and -[Delivery](#clusterdelivery). - -## Concepts - -### Blueprints - -| Blueprint | Owner | Valid Templates | -| ----------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [ClusterSupplyChain](reference/workload#clustersupplychain) | [Workload](reference/workload#workload) | [ClusterSourceTemplate](reference/template#clustersourcetemplate), [ClusterImageTemplate](reference/template#clusterimagetemplate), [ClusterConfigTemplate](reference/template#clusterconfigtemplate), [ClusterTemplate](reference/template#clustertemplate) | -| [ClusterDelivery](reference/deliverable#clusterdelivery) | [Deliverable](reference/deliverable#deliverable) | [ClusterSourceTemplate](reference/template#clustersourcetemplate), [ClusterDeploymentTemplate](reference/template#clusterdeploymenttemplate), [ClusterTemplate](reference/template#clustertemplate) | - -Blueprints are a list of templates (called resources) that defines how the templates depend upon each other. It forms -the dependency graph of your supply chain or delivery. - -The dependencies are formed by specifying which resource(s) are used as inputs. - -Blueprints consist of: - -- A **selector** to match owners -- **Parameters** to pass to all resources -- **Resources**: - - A **templateRef** pointing to the template for the resource - - **Parameters** to pass to the template - - **Inputs**, which specify dependencies for the template - -{{< figure src="../img/blueprint.svg" alt="Blueprint" width="400px" >}} - - - -### Templates - -Templates create or update resources (i.e. kubectl apply). - -Templates consist of: - -- Parameters to pass to `spec.template` or `spec.ytt` -- The Kubernetes resource yaml as `spec.template` or `spec.ytt` see [Templating](templating#templating) -- **Output paths** which tell Cartographer where to find the output of the Kubernetes resource - - The path field depends upon the specific template kind. - - These paths are interpolated and subsequent templates can use them via the input accessors. see - [Inputs](templating#inputs) - -Templates are typed by the output their underlying resource produces. - -| Output | Template | Output Path | Input Accessor | -| ---------- | ------------------------------------------------------------------------- | ----------------------------------- | ----------------------------------------------------------- | -| Config | [ClusterConfigTemplate](reference/template#clusterconfigtemplate) | `spec.configPath` | `configs.` | -| Image | [ClusterImageTemplate](reference/template#clusterimagetemplate) | `spec.imagePath` | `images.` | -| Source | [ClusterSourceTemplate](reference/template#clustersourcetemplate) | `spec.urlPath`, `spec.revisionPath` | `sources..url`, `sources..revision` | -| Deployment | [ClusterDeploymentTemplate](reference/template#clusterdeploymenttemplate) | `spec.urlPath`, `spec.revisionPath` | `sources..url`, `sources..revision` | -| | [ClusterTemplate](reference/template#clustertemplate) | - -{{< figure src="../img/template.svg" alt="Template" width="400px" >}} - -### Owners - -| Owner | Blueprint | -| ----------- | ------------------ | -| Workload | ClusterSupplyChain | -| Deliverable | ClusterDelivery | - -Owners represent the **workload** or **deliverable**, which in many cases refer to a single application's source or -image location. - -Owners are the developer provided configuration which cause a blueprint to be reconciled into resources. Owners -reference the primary **source** or **image** for the **blueprint** - -They consist of: - -- **Labels**: blueprints will select based on the labels of an owner, see [selectors](#selectors) -- **Params**: parameters supplied to the blueprint, see [Parameter Hierarchy](#parameter-hierarchy) -- **Source**: The source reference for the input to the Supply Chain or Delivery Blueprints, see - [Workload](reference/workload#workload) and [Deliverable](reference/deliverable#deliverable) - -{{< figure src="../img/owner.svg" alt="Owner" width="400px" >}} - -## Theory of Operation - -Given an owner that matches a blueprint, Cartographer reconciles the resources referenced by the blueprint. The -resources are only created when the inputs are satisfied, and a resource is only updated when its inputs change. This -results in a system where a new result from one resource can cause other resources to change. - -![Generic Blueprint](../img/generic.jpg) - - - -Although Cartographer is not a 'runner of things', a resource can be something as simple as a Job. - -However, one advantage of Cartographer's design is that resources that self-mutate can cause downstream change. - -For example, a Build resource that discovers new base OCI images. If it rebuilds your image, then Cartographer will see -this new image and update downstream resources. - -When Cartographer reconciles an owner, each resource in the matching blueprint is applied: - -1. **Generate Inputs**: Using the **blueprint resource's** `inputs` as a reference, select outputs from previously - applied **Kubernetes resources** -2. **Generate Params**: Using the [Parameter Hierarchy](architecture.md#parameter-hierarchy), generate parameter values -3. **Generate and apply resource spec**: Apply the result of interpolating `spec.template` (or `spec.ytt`), **inputs**, - **params** and the **owner spec**. -4. **Retrieve Output**: Store the output from the applied resource. The output to use is specified in the **template - output path**. - -![Realize](../img/realize.jpg) - -### Complete Supply Chain and Delivery with GitOps - -![Gitops](../img/gitops.jpg) - -## Blueprint Details - -### ClusterSupplyChain - -A ClusterSupplyChain blueprint continuously integrates and builds your app. - -![ClusterSupplyChain](../img/supplychain.png) - -### ClusterDelivery - -A ClusterDelivery blueprint continuously deploys and validates Kubernetes configuration to a cluster. - -[comment]: <> (Not implemented yet) [comment]: <> (A ClusterDelivery has the ability to lock (and unlock) -templates which pauses the continuous deploy. ) [comment]: <> (TODO - more on locking) - -![ClusterDelivery](../img/delivery.jpg) - -### Selectors - -An owner's labels will determine which blueprint will select for it. The controller will do a "best match" on a -blueprint's `spec.selector` with an owner's labels. - -A "best match" follows the rules: - -1. If all labels are fully contained in the selector, reconcile the owner with that blueprint. -2. If not all labels match, we choose the blueprint with the most matched labels. -3. If two blueprints match all labels, the blueprint with the more concise match (less non-matching labels) is selected. - -Note: Despite the rules, the controller can still return more than one match. If more than one match is returned, no -blueprint will reconcile for the owner. - -## Parameter Hierarchy - - - -Templates can specify default values for **parameters** in `spec.params`. - -These parameters may be overridden by the **blueprint**, which allows operators to specify: - -- a default value which can be overridden by the **owner's** `spec.params` -- a value which cannot be overridden by the **owner** - -Blueprint parameters can be specified globally in `spec.params` or per resource `spec.resource[].params` If the **per -resource param** is specified, the global blueprint param is ignored. diff --git a/site/content/docs/v0.2.0/authentication.md b/site/content/docs/v0.2.0/authentication.md deleted file mode 100644 index d6d2eec89..000000000 --- a/site/content/docs/v0.2.0/authentication.md +++ /dev/null @@ -1,172 +0,0 @@ -# Authentication - -## Owner Permissions - -Cartographer requires a **service account** that permits all actions on the GVKs specified in **templates**. - -### Per namespace service account - -The operator provides a name for the service account that is used (but not the namespace). Typically, the operator will -ensure that a service account with sufficient privileges exists in each developer namespace. - -The developer can still -[override the service account name](#developer-selects-the-name-of-a-service-account-in-their-namespace). - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: "operator-chosen-name" - namespace: # not provided - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # not provided -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: operator-chosen-name - namespace: my-developer-ns -``` - -### Single service account - -The operator provides a reference to a single service account that is used. The operator will ensure that one service -account with sufficient privileges exists. - -The developer can still -[override the service account name](#developer-selects-the-name-of-a-service-account-in-their-namespace). - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: operator-chosen-name - namespace: operator-chosen-namespace - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # not provided -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: operator-chosen-name - namespace: operator-chosen-namespace -``` - -### Developer selected service account - -The developer provides a name for a service account that is in the same namespace as the owner (Workload/Deliverable) -they are creating. This takes precedence over operator provided service accounts. Of course the service account still -requires full permissions for the objects created by the blueprint. - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: # n/a - namespace: # n/a - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: workload-specific-sa -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: workload-specific-sa - namespace: my-developer-ns -``` - -### Default service account - -If a service account is not specified in the blueprint or the owner, the `default` service account in the owner -namespace is used. - -Note: The `default` service account is unlikely to have the necessary permissions. - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: {} # Not provided! - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # Not provided! -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: default - namespace: my-developer-ns -``` - -## Cartographer Controller Permissions - -Cartographer has its own service account, `cartographer-controller` in the `cartographer-system` namespace. The -clusterrole that's bound to the service account is: - -```bash -kubectl get clusterrole cartographer-controller-admin -oyaml - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: cartographer-controller-admin -rules: -- apiGroups: - - carto.run - resources: - - workloads/status - - clustersupplychains/status - - runnables/status - - clusterdeliveries/status - - deliverables/status - verbs: - - create - - update - - delete - - patch -- apiGroups: - - '*' - resources: - - '*' - verbs: - - watch - - get - - list -``` diff --git a/site/content/docs/v0.2.0/crds/carto.run_clusterconfigtemplates.yaml b/site/content/docs/v0.2.0/crds/carto.run_clusterconfigtemplates.yaml deleted file mode 100644 index f4c61d6e6..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_clusterconfigtemplates.yaml +++ /dev/null @@ -1,44 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterConfigTemplate -metadata: {} -spec: - - # ConfigPath is a path into the templated object's data that - # contains valid yaml. This is typically the information that - # will configure the components of the deployable image. - # ConfigPath is specified in jsonpath format, eg: .data - configPath: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - ytt: diff --git a/site/content/docs/v0.2.0/crds/carto.run_clusterdeliveries.yaml b/site/content/docs/v0.2.0/crds/carto.run_clusterdeliveries.yaml deleted file mode 100644 index 556317e1c..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_clusterdeliveries.yaml +++ /dev/null @@ -1,119 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterDelivery -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner does not specify this parameter, - # this value is used. - # +optional - default: - - # Name of the parameter. Should match a template parameter - # name. - name: - - # Value of the parameter. If specified, owner properties are - # ignored. - # +optional - value: - - # Resources that are responsible for deploying and validating - # the deliverable - resources: - - # Configs is a list of references to other 'config' - # resources in this list. A config resource has the kind - # ClusterConfigTemplate - # In a template, configs can be consumed as: - # $(configs..config)$ - # If there is only one image, it can be consumed as: - # $(config)$ - # +optional - configs: - - name: - resource: - - # Deployment is a reference to a 'deployment' resource. A - # deployment resource has the kind ClusterDeploymentTemplate - # In a template, the deployment can be consumed as: - # $(deployment.url)$ and $(deployment.revision)$ - # +optional - deployment: - resource: - - # Name of the resource. Used as a reference for inputs, as - # well as being the name presented in deliverable statuses - # to identify this resource. - name: - - # Params are a list of parameters to provide to the template - # in TemplateRef Template params do not have to be specified - # here, unless you want to force a particular value, or add - # a default value. - # Parameters are consumed in a template with the syntax: - # $(params.)$ - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to - # be optional; If the Owner does not specify this - # parameter, this value is used. - # +optional - default: - - # Name of the parameter. Should match a template - # parameter name. - name: - - # Value of the parameter. If specified, owner properties - # are ignored. - # +optional - value: - - # Sources is a list of references to other 'source' - # resources in this list. A source resource has the kind - # ClusterSourceTemplate or ClusterDeploymentTemplate - # In a template, sources can be consumed as: - # $(sources..url)$ and $(sources..revision)$ - # If there is only one source, it can be consumed as: - # $(source.url)$ and $(source.revision)$ - # +optional - sources: - - name: - resource: - - # TemplateRef identifies the template used to produce this - # resource - templateRef: - - # Kind of the template to apply - kind: <[ClusterSourceTemplate|ClusterDeploymentTemplate|ClusterTemplate]> - - # Name of the template to apply - name: - - # Specifies the label key-value pairs used to select - # deliverables See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - selector: {} - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountRef: - - # Name of the service account being referred to - name: - - # Namespace of the service account being referred to if - # omitted, the Owner's namespace is used. - # +optional - namespace: diff --git a/site/content/docs/v0.2.0/crds/carto.run_clusterdeploymenttemplates.yaml b/site/content/docs/v0.2.0/crds/carto.run_clusterdeploymenttemplates.yaml deleted file mode 100644 index dd18de44d..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_clusterdeploymenttemplates.yaml +++ /dev/null @@ -1,91 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterDeploymentTemplate -metadata: {} -spec: - - # ObservedCompletion describe the criteria for determining that - # the templated object completed configuration of environment. - # These criteria assert completion when metadata.Generation and - # status.ObservedGeneration match, AND success or failure - # criteria match. Cannot specify both ObservedMatches and - # ObservedCompletion. - # +optional - observedCompletion: - - # FailedCondition, when matched, indicates that the input did - # not deploy successfully. - # +optional - failed: - - # Key is a jsonPath expression pointing to the field to - # inspect on the templated object, eg: - # 'status.conditions[?(@.type=="Succeeded")].status' - key: - - # Value is the expected value that, when matching the key's - # actual value, makes this condition true. - value: - - # SucceededCondition, when matched, indicates that the input - # was successfully deployed. - succeeded: - - # Key is a jsonPath expression pointing to the field to - # inspect on the templated object, eg: - # 'status.conditions[?(@.type=="Succeeded")].status' - key: - - # Value is the expected value that, when matching the key's - # actual value, makes this condition true. - value: - - # ObservedMatches describe the criteria for determining that the - # templated object completed configuration of environment. These - # criteria assert completion when an output (usually a field in - # .status) matches an input (usually a field in .spec) Cannot - # specify both ObservedMatches and ObservedCompletion. - # +optional - observedMatches: - - # Input is a jsonPath to a value that is fulfilled before - # the templated object is reconciled. Usually a value in the - # .spec of the object - input: - - # Output is a jsonPath to a value that is fulfilled after - # the templated object is reconciled. Usually a value in the - # .status of the object - output: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - ytt: diff --git a/site/content/docs/v0.2.0/crds/carto.run_clusterimagetemplates.yaml b/site/content/docs/v0.2.0/crds/carto.run_clusterimagetemplates.yaml deleted file mode 100644 index 5731571bc..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_clusterimagetemplates.yaml +++ /dev/null @@ -1,47 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: {} -spec: - - # ImagePath is a path into the templated object's data that - # contains a valid image digest. This might be a URL or in some - # cases just a repository path and digest. The final spec for - # this field may change as we implement RFC-0016 - # https://github.com/vmware-tanzu/cartographer/blob/main/rfc/rfc-0016-validate-template-outputs.md - # ImagePath is specified in jsonpath format, eg: - # .status.artifact.image_digest - imagePath: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - ytt: diff --git a/site/content/docs/v0.2.0/crds/carto.run_clusterruntemplates.yaml b/site/content/docs/v0.2.0/crds/carto.run_clusterruntemplates.yaml deleted file mode 100644 index 0b97c6065..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_clusterruntemplates.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: {} -spec: - - # Outputs are a named list of jsonPaths that are used to gather - # results from the last successful object stamped by the - # template. E.g: my-output: - # .status.results[?(@.name=="IMAGE-DIGEST")].value - # +optional - outputs: {} - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ - template: {} diff --git a/site/content/docs/v0.2.0/crds/carto.run_clustersourcetemplates.yaml b/site/content/docs/v0.2.0/crds/carto.run_clustersourcetemplates.yaml deleted file mode 100644 index bfed2c2ba..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_clustersourcetemplates.yaml +++ /dev/null @@ -1,50 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # RevisionPath is a path into the templated object's data that - # contains a revision. The revision, along with the URL, - # represents the output of the Template. RevisionPath is - # specified in jsonpath format, eg: .status.artifact.revision - revisionPath: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - template: {} - - # URLPath is a path into the templated object's data that - # contains a URL. The URL, along with the revision, represents - # the output of the Template. URLPath is specified in jsonpath - # format, eg: .status.artifact.url - urlPath: - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - ytt: diff --git a/site/content/docs/v0.2.0/crds/carto.run_clustersupplychains.yaml b/site/content/docs/v0.2.0/crds/carto.run_clustersupplychains.yaml deleted file mode 100644 index d70f68fbb..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_clustersupplychains.yaml +++ /dev/null @@ -1,123 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner does not specify this parameter, - # this value is used. - # +optional - default: - - # Name of the parameter. Should match a template parameter - # name. - name: - - # Value of the parameter. If specified, owner properties are - # ignored. - # +optional - value: - - # Resources that are responsible for bringing the application to - # a deliverable state. - resources: - - # Configs is a list of references to other 'config' - # resources in this list. A config resource has the kind - # ClusterConfigTemplate - # In a template, configs can be consumed as: - # $(configs..config)$ - # If there is only one image, it can be consumed as: - # $(config)$ - # +optional - configs: - - name: - resource: - - # Images is a list of references to other 'image' resources - # in this list. An image resource has the kind - # ClusterImageTemplate - # In a template, images can be consumed as: - # $(images..image)$ - # If there is only one image, it can be consumed as: - # $(image)$ - # +optional - images: - - name: - resource: - - # Name of the resource. Used as a reference for inputs, as - # well as being the name presented in workload statuses to - # identify this resource. - name: - - # Params are a list of parameters to provide to the template - # in TemplateRef Template params do not have to be specified - # here, unless you want to force a particular value, or add - # a default value. - # Parameters are consumed in a template with the syntax: - # $(params.)$ - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to - # be optional; If the Owner does not specify this - # parameter, this value is used. - # +optional - default: - - # Name of the parameter. Should match a template - # parameter name. - name: - - # Value of the parameter. If specified, owner properties - # are ignored. - # +optional - value: - - # Sources is a list of references to other 'source' - # resources in this list. A source resource has the kind - # ClusterSourceTemplate - # In a template, sources can be consumed as: - # $(sources..url)$ and $(sources..revision)$ - # If there is only one source, it can be consumed as: - # $(source.url)$ and $(source.revision)$ - # +optional - sources: - - name: - resource: - - # TemplateRef identifies the template used to produce this - # resource - templateRef: - - # Kind of the template to apply - kind: <[ClusterSourceTemplate|ClusterImageTemplate|ClusterTemplate|ClusterConfigTemplate]> - - # Name of the template to apply - name: - - # Specifies the label key-value pairs used to select workloads - # See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - selector: {} - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountRef: - - # Name of the service account being referred to - name: - - # Namespace of the service account being referred to if - # omitted, the Owner's namespace is used. - # +optional - namespace: diff --git a/site/content/docs/v0.2.0/crds/carto.run_clustertemplates.yaml b/site/content/docs/v0.2.0/crds/carto.run_clustertemplates.yaml deleted file mode 100644 index 4f4efb5f8..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_clustertemplates.yaml +++ /dev/null @@ -1,38 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. - # +optional - ytt: diff --git a/site/content/docs/v0.2.0/crds/carto.run_deliverables.yaml b/site/content/docs/v0.2.0/crds/carto.run_deliverables.yaml deleted file mode 100644 index ba52cf512..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_deliverables.yaml +++ /dev/null @@ -1,49 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Deliverable -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # Name of the parameter. Should match a blueprint or - # template parameter name. - name: - - # Value of the parameter. - value: - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountName: - - # The location of the source code for the workload. Specify one - # of `spec.source` or `spec.image` - # +optional - source: - - # Source code location in a git repository. - # +optional - git: - ref: - branch: - commit: - tag: - url: - - # OCI Image in a repository, containing the source code to be - # used throughout the supply chain. - # +optional - image: - - # Subpath inside the Git repository or Image to treat as the - # root of the application. Defaults to the root if left empty. - # +optional - subPath: diff --git a/site/content/docs/v0.2.0/crds/carto.run_runnables.yaml b/site/content/docs/v0.2.0/crds/carto.run_runnables.yaml deleted file mode 100644 index 2a7b60129..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_runnables.yaml +++ /dev/null @@ -1,52 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Runnable -metadata: {} -spec: - - # Inputs are key/values providing inputs to the templated object - # created for this runnable. Reference inputs in the template - # using the jsonPath: $(runnable.spec.inputs.)$ - # +optional - inputs: {} - - # RetentionPolicy specifies how many successful and failed runs - # should be retained. Runs older than this (ordered by creation - # time) will be deleted. - # +optional - retentionPolicy: - - # MaxFailedRuns is the number of failed runs to retain. - maxFailedRuns: - - # MaxSuccessfulRuns is the number of successful runs to - # retain. - maxSuccessfulRuns: - - # RunTemplateRef identifies the run template used to produce - # resources for this runnable. - runTemplateRef: - kind: - name: - - # Selector refers to an additional object that the template can - # refer to using: $(selected)$. - # +optional - selector: - - # MatchingLabels must match on a single target object, making - # the object available in the template as $(selected)$ - matchingLabels: {} - - # Resource is the GVK that must match the selected object. - resource: - apiVersion: - kind: - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the - # ClusterRunTemplate. - # If not set, Cartographer will use the default service account - # in the runnable's namespace. - # +optional - serviceAccountName: diff --git a/site/content/docs/v0.2.0/crds/carto.run_workloads.yaml b/site/content/docs/v0.2.0/crds/carto.run_workloads.yaml deleted file mode 100644 index 1aa5b9a55..000000000 --- a/site/content/docs/v0.2.0/crds/carto.run_workloads.yaml +++ /dev/null @@ -1,100 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: {} -spec: - - # Build configuration, for the build resources in the supply - # chain - # +optional - build: - - # Env is an array of environment variables to propagate to - # build resources in the supply chain. See - # https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ - # +optional - env: - - # EnvVar represents an environment variable present in a - # Container. - # +optional - name: - value: - valueFrom: {} - - # Environment variables to be passed to the main container - # running the application. See - # https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ - # +optional - env: - - # EnvVar represents an environment variable present in a - # Container. - # +optional - name: - value: - valueFrom: {} - - # Image refers to a pre-built image in a registry. It is an - # alternative to specifying the location of source code for the - # workload. Specify one of `spec.source` or `spec.image`. - # +optional - image: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # Name of the parameter. Should match a blueprint or - # template parameter name. - name: - - # Value of the parameter. - value: - - # Resource constraints for the application. See - # https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - # +optional - resources: - limits: {} - requests: {} - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountName: - - # ServiceClaims to be bound through ServiceBindings. - # +optional - serviceClaims: - - name: - ref: - apiVersion: - kind: - name: - - # The location of the source code for the workload. Specify one - # of `spec.source` or `spec.image` - # +optional - source: - - # Source code location in a git repository. - # +optional - git: - ref: - branch: - commit: - tag: - url: - - # OCI Image in a repository, containing the source code to be - # used throughout the supply chain. - # +optional - image: - - # Subpath inside the Git repository or Image to treat as the - # root of the application. Defaults to the root if left empty. - # +optional - subPath: diff --git a/site/content/docs/v0.2.0/examples.md b/site/content/docs/v0.2.0/examples.md deleted file mode 100644 index def4fdcff..000000000 --- a/site/content/docs/v0.2.0/examples.md +++ /dev/null @@ -1,5 +0,0 @@ -# Examples - -Check out the [examples directory] on our repository. - -[examples directory]: https://github.com/vmware-tanzu/cartographer/tree/main/examples diff --git a/site/content/docs/v0.2.0/img/blueprint.svg b/site/content/docs/v0.2.0/img/blueprint.svg deleted file mode 100644 index aa2b742f0..000000000 --- a/site/content/docs/v0.2.0/img/blueprint.svg +++ /dev/null @@ -1,503 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.2.0/img/delivery.jpg b/site/content/docs/v0.2.0/img/delivery.jpg deleted file mode 100644 index 220bd0dad..000000000 Binary files a/site/content/docs/v0.2.0/img/delivery.jpg and /dev/null differ diff --git a/site/content/docs/v0.2.0/img/generic.jpg b/site/content/docs/v0.2.0/img/generic.jpg deleted file mode 100644 index 80349bfe8..000000000 Binary files a/site/content/docs/v0.2.0/img/generic.jpg and /dev/null differ diff --git a/site/content/docs/v0.2.0/img/gitops.jpg b/site/content/docs/v0.2.0/img/gitops.jpg deleted file mode 100644 index 47b9171ee..000000000 Binary files a/site/content/docs/v0.2.0/img/gitops.jpg and /dev/null differ diff --git a/site/content/docs/v0.2.0/img/owner.svg b/site/content/docs/v0.2.0/img/owner.svg deleted file mode 100644 index cc7480488..000000000 --- a/site/content/docs/v0.2.0/img/owner.svg +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.2.0/img/ownership-flow.png b/site/content/docs/v0.2.0/img/ownership-flow.png deleted file mode 100644 index f74cb3cfa..000000000 Binary files a/site/content/docs/v0.2.0/img/ownership-flow.png and /dev/null differ diff --git a/site/content/docs/v0.2.0/img/realize.jpg b/site/content/docs/v0.2.0/img/realize.jpg deleted file mode 100644 index f1904475c..000000000 Binary files a/site/content/docs/v0.2.0/img/realize.jpg and /dev/null differ diff --git a/site/content/docs/v0.2.0/img/runnable/clusterruntemplate.svg b/site/content/docs/v0.2.0/img/runnable/clusterruntemplate.svg deleted file mode 100644 index 074bee4a8..000000000 --- a/site/content/docs/v0.2.0/img/runnable/clusterruntemplate.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.2.0/img/runnable/runnable-new.jpg b/site/content/docs/v0.2.0/img/runnable/runnable-new.jpg deleted file mode 100644 index 283eaea86..000000000 Binary files a/site/content/docs/v0.2.0/img/runnable/runnable-new.jpg and /dev/null differ diff --git a/site/content/docs/v0.2.0/img/runnable/runnable-outline.svg b/site/content/docs/v0.2.0/img/runnable/runnable-outline.svg deleted file mode 100644 index 6cd268939..000000000 --- a/site/content/docs/v0.2.0/img/runnable/runnable-outline.svg +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.2.0/img/runnable/runnable-realize-new.jpg b/site/content/docs/v0.2.0/img/runnable/runnable-realize-new.jpg deleted file mode 100644 index 04c7f1640..000000000 Binary files a/site/content/docs/v0.2.0/img/runnable/runnable-realize-new.jpg and /dev/null differ diff --git a/site/content/docs/v0.2.0/img/runnable/runnable-supplychain-new.jpg b/site/content/docs/v0.2.0/img/runnable/runnable-supplychain-new.jpg deleted file mode 100644 index 3d7fd60aa..000000000 Binary files a/site/content/docs/v0.2.0/img/runnable/runnable-supplychain-new.jpg and /dev/null differ diff --git a/site/content/docs/v0.2.0/img/supplychain.png b/site/content/docs/v0.2.0/img/supplychain.png deleted file mode 100644 index eb94a98ef..000000000 Binary files a/site/content/docs/v0.2.0/img/supplychain.png and /dev/null differ diff --git a/site/content/docs/v0.2.0/img/template.svg b/site/content/docs/v0.2.0/img/template.svg deleted file mode 100644 index ea904a5ae..000000000 --- a/site/content/docs/v0.2.0/img/template.svg +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.2.0/install.md b/site/content/docs/v0.2.0/install.md deleted file mode 100644 index a09ca5bed..000000000 --- a/site/content/docs/v0.2.0/install.md +++ /dev/null @@ -1,50 +0,0 @@ -# Installing Cartographer - -## Prerequisites - -- Kubernetes cluster v1.19+ -- cert-manager, see [cert-manager Installation](https://cert-manager.io/docs/installation/) - -## Install - -1. Apply `cartographer.yaml` - - ```bash - kubectl apply -f https://github.com/vmware-tanzu/cartographer/releases/download/v0.2.0/cartographer.yaml - ``` - - Resources in file `cartographer.yaml`: - - ```console - Namespace Name Kind - (cluster) cartographer-cluster-admin ClusterRoleBinding - ^ cartographer-controller-admin ClusterRole - ^ clusterconfigtemplates.carto.run CustomResourceDefinition - ^ clusterdeliveries.carto.run CustomResourceDefinition - ^ clusterdeploymenttemplates.carto.run CustomResourceDefinition - ^ clusterimagetemplates.carto.run CustomResourceDefinition - ^ clusterruntemplates.carto.run CustomResourceDefinition - ^ clustersourcetemplates.carto.run CustomResourceDefinition - ^ clustersupplychains.carto.run CustomResourceDefinition - ^ clustersupplychainvalidator ValidatingWebhookConfiguration - ^ clustertemplates.carto.run CustomResourceDefinition - ^ deliverables.carto.run CustomResourceDefinition - ^ deliveryvalidator ValidatingWebhookConfiguration - ^ runnables.carto.run CustomResourceDefinition - ^ workloads.carto.run CustomResourceDefinition - - cartographer-system cartographer-controller Deployment - ^ cartographer-controller ServiceAccount - ^ cartographer-webhook Certificate - ^ cartographer-webhook Secret - ^ cartographer-webhook Service - ^ private-registry-credentials Secret - ^ selfsigned-issuer Issuer - ``` - -## Uninstall - -1. Delete `cartographer.yaml` - ```bash - kubectl delete -f https://github.com/vmware-tanzu/cartographer/releases/download/v0.2.0/cartographer.yaml - ``` diff --git a/site/content/docs/v0.2.0/reference/deliverable.md b/site/content/docs/v0.2.0/reference/deliverable.md deleted file mode 100644 index 736797cb9..000000000 --- a/site/content/docs/v0.2.0/reference/deliverable.md +++ /dev/null @@ -1,35 +0,0 @@ -# Deliverable and Delivery Custom Resources - -## Deliverable - -`Deliverable` allows the operator to pass information about the configuration to be applied to the environment to the -delivery. - -{{< crd carto.run_deliverables.yaml >}} - -Notes: - -1. labels serve as a way of indirectly selecting `ClusterDelivery` - -_ref: -[pkg/apis/v1alpha1/deliverable.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/deliverable.go)_ - -## ClusterDelivery - -A `ClusterDelivery` is a cluster-scoped resources that enables application operators to define a continuous delivery -workflow. Delivery is analogous to SupplyChain, in that it specifies a list of resources that are created when requested -by the developer. Early resources in the delivery are expected to configure the k8s environment (for example by -deploying an application). Later resources validate the environment is healthy. - -The SupplyChain resources `ClusterSourceTemplates` and `ClusterTemplates` are valid for delivery. Delivery additionally -has the resource `ClusterDeploymentTemplates`. Delivery can cast the values from a `ClusterSourceTemplate` so that they -may be consumed by a `ClusterDeploymentTemplate`. - -`ClusterDeliveries` specify the type of configuration they accept through the `spec.selector` field. `Deliverable`s with -matching `spec.selector` then create a logical delivery. This makes the values in the `Deliverable` available to all of -the resources in the `ClusterDelivery`s `spec.resources`. - -{{< crd carto.run_clusterdeliveries.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_delivery.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_delivery.go)_ diff --git a/site/content/docs/v0.2.0/reference/gvk.md b/site/content/docs/v0.2.0/reference/gvk.md deleted file mode 100644 index d72e6905f..000000000 --- a/site/content/docs/v0.2.0/reference/gvk.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -aliases: - - /docs/development/reference/ ---- - -# GVK - -## Version - -All of the custom resources that Cartographer is working on are being written under `v1alpha1` to indicate that our -first version of it is at the "alpha stability level", and that it's our first iteration on it. - -See -[Versions in CustomResourceDefinitions](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/) - -## Group - -All of our custom resources under the `carto.run` group. - -For instance: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -``` diff --git a/site/content/docs/v0.2.0/reference/runnable.md b/site/content/docs/v0.2.0/reference/runnable.md deleted file mode 100644 index 1f090b051..000000000 --- a/site/content/docs/v0.2.0/reference/runnable.md +++ /dev/null @@ -1,36 +0,0 @@ -# Runnable Custom Resources - -## Runnable - -A `Runnable` object declares the intention of having immutable objects submitted to Kubernetes according to a template ( -via ClusterRunTemplate) whenever any of the inputs passed to it changes. i.e., it allows us to provide a mutable spec -that drives the creation of immutable objects whenever that spec changes. - -{{< crd carto.run_runnables.yaml >}} - -## ClusterRunTemplate - -A `ClusterRunTemplate` defines how an immutable object should be stamped out based on data provided by a `Runnable`. - -{{< crd carto.run_clusterruntemplates.yaml >}} - -ClusterRunTemplate differs from supply chain templates in many aspects: - -- ClusterRunTemplate cannot be referenced directly by a ClusterSupplyChain object (it can only be reference by a - Runnable) - -- `outputs` provide a free-form way of exposing any form of results from what has been run (i.e., submitted by the - Runnable) to the status of the Runnable object (as opposed to typed "source", "image", and "config" from supply - chains) - -- Templating context (values provided to the interpolation) is specific to the Runnable: the runnable object itself and - the object resulting from the selection query. - -- Templated object metadata.name should not be set. differently from ClusterSupplyChain, a Runnable has the semantics of - creating new objects on change, rather than patching. This means that on every input set change, a new name must be - derived. To be sure that a name can always be generated, `metadata.generateName` should be set rather than - `metadata.name`. - -Similarly to other templates, ClusterRunTemplate has a `template` field where data is taken (in this case, from Runnable -and selected objects via `runnable.spec.selector`) and via `$()$` allows one to interpolate such data to form a final -object. diff --git a/site/content/docs/v0.2.0/reference/template.md b/site/content/docs/v0.2.0/reference/template.md deleted file mode 100644 index 3b0ca5680..000000000 --- a/site/content/docs/v0.2.0/reference/template.md +++ /dev/null @@ -1,73 +0,0 @@ -# Template Custom Resources - -## ClusterSourceTemplate - -`ClusterSourceTemplate` indicates how the supply chain could instantiate an object responsible for providing source -code. - -The `ClusterSourceTemplate` requires definition of a `urlPath` and `revisionPath`. `ClusterSourceTemplate` will update -its status to emit `url` and `revision` values, which are reflections of the values at the path on the created objects. -The supply chain may make these values available to other resources. - -{{< crd carto.run_clustersourcetemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_source_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_source_template.go)_ - -## ClusterImageTemplate - -`ClusterImageTemplate` instructs how the supply chain should instantiate an object responsible for supplying container -images, for instance, one that takes source code, builds a container image out of it. - -The `ClusterImageTemplate` requires definition of an `imagePath`. `ClusterImageTemplate` will update its status to emit -an `image` value, which is a reflection of the value at the path on the created object. The supply chain may make this -value available to other resources. - -{{< crd carto.run_clusterimagetemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_image_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_image_template.go)_ - -## ClusterConfigTemplate - -Instructs the supply chain how to instantiate a Kubernetes object that knows how to make Kubernetes configurations -available to further resources in the chain. - -The `ClusterConfigTemplate` requires definition of a `configPath`. `ClusterConfigTemplate` will update its status to -emit a `config` value, which is a reflection of the value at the path on the created object. The supply chain may make -this value available to other resources. - -{{< crd carto.run_clusterconfigtemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_config_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_config_template.go)_ - -## ClusterDeploymentTemplate - -A `ClusterDeploymentTemplate` indicates how the delivery should configure the environment (namespace/cluster). - -The `ClusterDeploymentTemplate` consumes configuration from the `deployment` values provided by the `ClusterDelivery`. -The `ClusterDeploymentTemplate` outputs these same values. The `ClusterDeploymentTemplate` is able to consume additional -configuration from the `sources` provided by the `ClusterDelivery`. - -`ClusterDeploymentTemplate` must specify criteria to determine whether the templated object has successfully completed -its role in configuring the environment. Once the criteria are met, the `ClusterDeploymentTemplate` will output the -`deployment` values. The criteria may be specified in `spec.observedMatches` or in `spec.observedCompletion`. - -{{< crd carto.run_clusterdeploymenttemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_deployment_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_deployment_template.go)_ - -## ClusterTemplate - -A `ClusterTemplate` instructs the supply chain to instantiate a Kubernetes object that has no outputs to be supplied to -other objects in the chain, for instance, a resource that deploys a container image that has been built by other -ancestor resources. - -The `ClusterTemplate` does not emit values to the supply chain. - -{{< crd carto.run_clustertemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_template.go)_ diff --git a/site/content/docs/v0.2.0/reference/workload.md b/site/content/docs/v0.2.0/reference/workload.md deleted file mode 100644 index 874bfa31a..000000000 --- a/site/content/docs/v0.2.0/reference/workload.md +++ /dev/null @@ -1,31 +0,0 @@ -# Workload and Supply Chain Custom Resources - -## Workload - -`Workload` allows the developer to pass information about the app to be delivered through the supply chain. - -{{< crd carto.run_workloads.yaml >}} - -Notes: - -1. labels serve as a way of indirectly selecting `ClusterSupplyChain` - `Workload`s without labels that match a - `ClusterSupplyChain`'s `spec.selector` won't be reconciled and will stay in an `Errored` state. -2. `spec.image` is useful for enabling workflows that are not based on building the container image from within the - supplychain, but outside. - -_ref: -[pkg/apis/v1alpha1/workload.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/workload.go)_ - -## ClusterSupplyChain - -With a `ClusterSupplyChain`, app operators describe which "shape of applications" they deal with (via `spec.selector`), -and what series of resources are responsible for creating an artifact that delivers it (via `spec.resources`). - -Those `Workload`s that match `spec.selector` then go through the resources specified in `spec.resources`. - -A resource can emit values, which the supply chain can make available to other resources. - -{{< crd carto.run_clustersupplychains.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_supply_chain.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_supply_chain.go)_ diff --git a/site/content/docs/v0.2.0/runnable/architecture.md b/site/content/docs/v0.2.0/runnable/architecture.md deleted file mode 100644 index 7d111459a..000000000 --- a/site/content/docs/v0.2.0/runnable/architecture.md +++ /dev/null @@ -1,98 +0,0 @@ -# Architecture and Concepts - -## Overview - -Runnable is a component of Cartographer. The `Runnable` CRD provides an intermediate layer to update immutable -resources. For example, Tekton does not allow updating TaskRuns and PipelineRuns, so we'll update Runnable to test new -commits. - -## Concepts - -[comment]: <> (### Edge vs level-driven triggers) [comment]: <> (TODO) - -### ClusterRunTemplate - -With the addition of Runnable, there is a new template, `ClusterRunTemplate`. A `ClusterRunTemplate` will _always_ -create resources (i.e. `kubectl create`). - -ClusterRunTemplate consists of: - -- The Kubernetes resource yaml as `spec.template` -- **Output paths** which tell Cartographer where to find the output of the Kubernetes resource - - The outputs will be added to `runnable.status.outputs` - -{{< figure src="../../img/runnable/clusterruntemplate.svg" alt="Template" width="400px" >}} - -### Runnable - -Runnables consist of: - -- **RunTemplateRef**: a reference to a `ClusterRunTemplate` which contains the yaml of the immutable resource to be - created -- **Selector**: used to dynamically discover a resource that is needed in the `ClusterRunTemplate`. The matching - resource is available in the template data as `selected`. -- **Inputs**: arbitrary key, value pairs that are passed along to the `ClusterRunTemplate`. - -{{< figure src="../../img/runnable/runnable-outline.svg" alt="Runnable" width="400px" >}} - -### Template Data - -See [Template Data](../../templating#template-data) for templating in Cartographer. - -The ClusterRunTemplate is provided a data structure that contains: - -- runnable -- selected - -#### Runnable - -The entire Runnable resource is available for retrieving values. To use a Runnable value, use the format: - -- **Simple template**: `$(runnable..(...))$` -- **ytt**: not currently supported, see [issue](https://github.com/vmware-tanzu/cartographer/issues/214) - -**Runnable Examples** - -| Simple template | ytt | -| ---------------------------- | --- | -| `$(runnable.metadata.name)$` | N/A | -| `$(runnable.spec.inputs)$` | N/A | - -#### Selected - -The entire selected resource is available for retrieving values. To use selected value, use the format: - -- **Simple template**: `$(selected..(...))$` -- **ytt**: not currently supported, see [issue](https://github.com/vmware-tanzu/cartographer/issues/214) - -**Selected Examples** - -| Simple template | ytt | -| ---------------------------- | --- | -| `$(selected.metadata.name)$` | N/A | - -## Theory of Operation - -When Cartographer reconciles a Runnable, the resource in the specified `ClusterRunTemplate` is applied: - -1. **Resolve Selector**: attempt to find a resource that matches the selector -2. **Generate and apply resource spec**: Apply the result of interpolating `spec.template` in the `ClusterRunTemplate`, - **selected**, and the **runnable spec**. -3. **Retrieve Output**: The output to use is specified in the **template output path** - 1. Get the output from the most recently created resource, where - `status.conditions[?(@.type=="Succeeded")].status == True`. - 2. Store the output in `runnable.status.outputs`. - -![Realize](../../img/runnable/runnable-realize-new.jpg) - - - -## Runnable In Action - -![Runnable](../../img/runnable/runnable-new.jpg) - -### Using Runnable with a Supply Chain - -![Runnable-SupplyChain](../../img/runnable/runnable-supplychain-new.jpg) - -To see an example of the rest of the supply chain, see [ClusterSupplyChain](../architecture#clustersupplychain). diff --git a/site/content/docs/v0.2.0/style-guide.md b/site/content/docs/v0.2.0/style-guide.md deleted file mode 100644 index eb96b0d15..000000000 --- a/site/content/docs/v0.2.0/style-guide.md +++ /dev/null @@ -1,392 +0,0 @@ -_This style guide is adapted from the -[Velero Style Guide](https://github.com/vmware-tanzu/velero/blob/main/site/content/docs/v1.6/style-guide.md)._ - -This page outlines writing style guidelines for the Cartographer documentation and you should use this page as a -reference you write or edit content. Note that these are guidelines, not rules. Use your best judgment as you write -documentation, and feel free to propose changes to these guidelines. Changes to the style guide are made by the -Cartographer maintainers as a group. To propose a change or addition create an issue/PR. - -## Content best practices - -### Use present tense - -{{< table caption="Do and Don't - Use present tense" >}} - -| Do | Don't | -| ------------------------------ | -------------------------------- | -| This `command` starts a proxy. | This command will start a proxy. | - -{{< /table >}} - -Exception: Use future or past tense if it is required to convey the correct meaning. - -### Use active voice - -{{< table caption="Do and Don't - Use active voice" >}} - -| Do | Don't | -| ------------------------------------------ | ------------------------------------------------ | -| You can explore the API using a browser. | The API can be explored using a browser. | -| The YAML file specifies the replica count. | The replica count is specified in the YAML file. | - -{{< /table >}} - -Exception: Use passive voice if active voice leads to an awkward sentence construction. - -### Use simple and direct language - -Use simple and direct language. Avoid using unnecessary phrases, such as saying "please." - -{{< table caption="Do and Don't - Use simple and direct language" >}} - -| Do | Don't | -| --------------------------- | -------------------------------------------- | -| To create a ReplicaSet, ... | In order to create a ReplicaSet, ... | -| See the configuration file. | Please see the configuration file. | -| View the Pods. | With this next command, we'll view the Pods. | - -{{< /table >}} - -### Address the reader as "you" - -{{< table caption="Do and Don't - Addressing the reader" >}} - -| Do | Don't | -| --------------------------------------- | --------------------------------------- | -| You can create a Deployment by ... | We'll create a Deployment by ... | -| In the preceding output, you can see... | In the preceding output, we can see ... | - -{{< /table >}} - -### Avoid Latin phrases - -Prefer English terms over Latin abbreviations. - -{{< table caption="Do and Don't - Avoid Latin phrases" >}} - -| Do | Don't | -| ---------------- | --------- | -| For example, ... | e.g., ... | -| That is, ... | i.e., ... | - -{{< /table >}} - -Exception: Use "etc." for et cetera. - -## Patterns to avoid - -### Avoid using "we" - -Using "we" in a sentence can be confusing, because the reader might not know whether they're part of the "we" you're -describing. - -{{< table caption="Do and Don't - Avoid using we" >}} - -| Do | Don't | -| ----------------------------------------- | ----------------------------------------------- | -| Version 1.4 includes ... | In version 1.4, we have added ... | -| Kubernetes provides a new feature for ... | We provide a new feature ... | -| This page teaches you how to use Pods. | In this page, we are going to learn about Pods. | - -{{< /table >}} - -### Avoid jargon and idioms - -Many readers speak English as a second language. Avoid jargon and idioms to help them understand better. - -{{< table caption="Do and Don't - Avoid jargon and idioms" >}} - -| Do | Don't | -| --------------------- | ---------------------- | -| Internally, ... | Under the hood, ... | -| Create a new cluster. | Turn up a new cluster. | - -{{< /table >}} - -### Avoid statements about the future or that will soon be out of date - -Avoid making promises or giving hints about the future. If you need to talk about a beta feature, put the text under a -heading that identifies it as beta information. - -Also avoid words like “recently”, "currently" and "new." A feature that is new today might not be considered new in a -few months. - -{{< table caption="Do and Don't - Avoid statements that will soon be out of date" >}} - -| Do | Don't | -| ----------------------------------- | --------------------------------------- | -| In version 1.4, ... | In the current version, ... | -| The Federation feature provides ... | The new Federation feature provides ... | - -{{< /table >}} - -### Language - -This documentation uses U.S. English spelling and grammar. - -## Documentation formatting standards - -### Use camel case for API objects - -When you refer to an API object, use the same uppercase and lowercase letters that are used in the actual object name. -Typically, the names of API objects use [camel case](https://en.wikipedia.org/wiki/Camel_case). - -Don't split the API object name into separate words. For example, use PodTemplateList, not Pod Template List. - -Refer to API objects without saying "object," unless omitting "object" leads to an awkward sentence construction. - -{{< table caption="Do and Don't - Do and Don't - API objects" >}} - -| Do | Don't | -| -------------------------------------------- | -------------------------------------------- | -| The Pod has two containers. | The pod has two containers. | -| The Deployment is responsible for ... | The Deployment object is responsible for ... | -| A PodList is a list of Pods. | A Pod List is a list of pods. | -| The two ContainerPorts ... | The two ContainerPort objects ... | -| The two ContainerStateTerminated objects ... | The two ContainerStateTerminateds ... | - -{{< /table >}} - -### Use angle brackets for placeholders - -Use angle brackets for placeholders. Tell the reader what a placeholder represents. - -1. Display information about a Pod: - - kubectl describe pod -n - - If the pod is in the default namespace, you can omit the '-n' parameter. - -### Use bold for user interface elements - -{{< table caption="Do and Don't - Bold interface elements" >}} - -| Do | Don't | -| ----------------- | --------------- | -| Click **Fork**. | Click "Fork". | -| Select **Other**. | Select "Other". | - -{{< /table >}} - -### Use italics to define or introduce new terms - -{{< table caption="Do and Don't - Use italics for new terms" >}} - -| Do | Don't | -| ------------------------------------------ | -------------------------------------------- | -| A _cluster_ is a set of nodes ... | A "cluster" is a set of nodes ... | -| These components form the _control plane_. | These components form the **control plane**. | - -{{< /table >}} - -### Use code style for filenames, directories, paths, object field names and namespaces - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| -------------------------------------- | ------------------------------------ | -| Open the `envars.yaml` file. | Open the envars.yaml file. | -| Go to the `/docs/tutorials` directory. | Go to the /docs/tutorials directory. | -| Open the `/_data/concepts.yaml` file. | Open the /\_data/concepts.yaml file. | - -{{< /table >}} - -### Use punctuation inside quotes - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| events are recorded with an associated "stage." | events are recorded with an associated "stage". | -| The copy is called a "fork." | The copy is called a "fork". | - -{{< /table >}} - -Exception: When the quoted word is a user input. - -Example: - -- My user ID is “IM47g”. -- Did you try the password “mycatisawesome”? - -## Inline code formatting - -### Use code style for inline code and commands - -For inline code in an HTML document, use the `` tag. In a Markdown document, use the backtick (`` ` ``). - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| The `kubectl run` command creates a Deployment. | The "kubectl run" command creates a Deployment. | -| For declarative management, use `kubectl apply`. | For declarative management, use "kubectl apply". | -| Use single backticks to enclose inline code. For example, `var example = true`. | Use two asterisks (`**`) or an underscore (`_`) to enclose inline code. For example, **var example = true**. | -| Use triple backticks (\`\`\`) before and after a multi-line block of code for fenced code blocks. | Use multi-line blocks of code to create diagrams, flowcharts, or other illustrations. | -| Use meaningful variable names that have a context. | Use variable names such as 'foo','bar', and 'baz' that are not meaningful and lack context. | -| Remove trailing spaces in the code. | Add trailing spaces in the code, where these are important, because a screen reader will read out the spaces as well. | - -{{< /table >}} - -### Starting a sentence with a component tool or component name - -{{< table caption="Do and Don't - Starting a sentence with a component tool or component name" >}} - -| Do | Don't | -| ------------------------------------------------------------------- | --------------------------------------------------------------- | -| The `kubeadm` tool bootstraps and provisions machines in a cluster. | `kubeadm` tool bootstraps and provisions machines in a cluster. | -| The kube-scheduler is the default scheduler for Kubernetes. | kube-scheduler is the default scheduler for Kubernetes. | - -{{< /table >}} - -### Use normal style for string and integer field values - -For field values of type string or integer, use normal style without quotation marks. - -{{< table caption="Do and Don't - Use normal style for string and integer field values" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| Set the value of `imagePullPolicy` to `Always`. | Set the value of `imagePullPolicy` to "Always". | -| Set the value of `image` to `nginx:1.16`. | Set the value of `image` to nginx:1.16. | -| Set the value of the `replicas` field to `2`. | Set the value of the `replicas` field to 2. | - -{{< /table >}} - -## Code snippet formatting - -### Don't include the command prompt - -{{< table caption="Do and Don't - Don't include the command prompt" >}} - -| Do | Don't | -| ---------------- | ------------------ | -| kubectl get pods | $ kubectl get pods | - -{{< /table >}} - -### Separate commands from output - -Verify that the Pod is running on your chosen node: - -``` -kubectl get pods --output=wide -``` - -The output is similar to this: - -``` -NAME READY STATUS RESTARTS AGE IP NODE -nginx 1/1 Running 0 13s 10.200.0.4 worker0 -``` - -## Cartographer word list - -A list of Cartographer-specific terms and words to be used consistently across the site. - -{{< table caption="Cartographer word list" >}} - -| Trem | Usage | -| ------------ | ------------------------------------------------------------------ | -| Kubernetes | Kubernetes should always be capitalized. | -| Docker | Docker should always be capitalized. | -| Cartographer | Cartographer should always be capitalized. | -| VMware | VMware should always be correctly capitalized. | -| On-premises | On-premises or on-prem rather than on-premise or other variations. | -| Backup | Backup rather than back up, back-up or other variations. | -| Plugin | Plugin rather than plug-in or other variations. | -| Allowlist | Use allowlist instead of whitelist. | -| Denylist | Use denylist instead of blacklist. | - -{{< /table >}} - -## Markdown elements - -### Headings - -People accessing this documentation may use a screen reader or other assistive technology (AT). -[Screen readers](https://en.wikipedia.org/wiki/Screen_reader) are linear output devices, they output items on a page one -at a time. If there is a lot of content on a page, you can use headings to give the page an internal structure. A good -page structure helps all readers to easily navigate the page or filter topics of interest. - -{{< table caption="Do and Don't - Headings" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| Include a title on each page or blog post. | Include more than one title headings (#) in a page. | -| Use ordered headings to provide a meaningful high-level outline of your content. | Use headings level 4 through 6, unless it is absolutely necessary. If your content is that detailed, it may need to be broken into separate articles. | -| Use sentence case for headings. For example, **Extend kubectl with plugins** | Use title case for headings. For example, **Extend Kubectl With Plugins** | - -{{< /table >}} - -### Paragraphs - -{{< table caption="Do and Don't - Paragraphs" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------------- | ------------------------------------ | -| Try to keep paragraphs under 6 sentences. | Write long-winded paragraphs. | -| Use three hyphens (`---`) to create a horizontal rule for breaks in paragraph content. | Use horizontal rules for decoration. | - -{{< /table >}} - -### Links - -{{< table caption="Do and Don't - Links" >}} - -| Do | Don't | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| Write hyperlinks that give you context for the content they link to. For example: Certain ports are open on your machines. See [check required ports](#check-required-ports) for more details. | Use ambiguous terms such as “click here”. For example: Certain ports are open on your machines. See [here](#check-required-ports) for more details. | -| Write Markdown-style links: `[link text](URL)`. For example: `[community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA)` and the output is [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA). | Write HTML-style links: `Visit our tutorial!` | - -{{< /table >}} - -### Lists - -Group items in a list that are related to each other and need to appear in a specific order or to indicate a correlation -between multiple items. When a screen reader comes across a list—whether it is an ordered or unordered list—it will be -announced to the user that there is a group of list items. The user can then use the arrow keys to move up and down -between the various items in the list. Website navigation links can also be marked up as list items; after all they are -nothing but a group of related links. - -- End each item in a list with a period if one or more items in the list are complete sentences. For the sake of - consistency, normally either all items or none should be complete sentences. - -- Ordered lists that are part of an incomplete introductory sentence can be in lowercase and punctuated as if each item - was a part of the introductory sentence. - -- Use the number one (`1.`) for ordered lists. - -- Use (`+`), (`*`), or (`-`) for unordered lists - be consistent within the same document. - -- Leave a blank line after each list. - -- Indent nested lists with four spaces (for example, ⋅⋅⋅⋅). - -- List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either - four spaces or one tab. - -### Tables - -The semantic purpose of a data table is to present tabular data. Sighted users can quickly scan the table but a screen -reader goes through line by line. A table [caption](https://www.w3schools.com/tags/tag_caption.asp) is used to create a -descriptive title for a data table. Assistive technologies (AT) use the HTML table caption element to identify the table -contents to the user within the page structure. - -If you need to create a table, create the table in markdown and use the table -[Hugo shortcode](https://gohugo.io/content-management/shortcodes/) to include a caption. - -``` -{{}} - -| Parameter | Description | Default | -|:---------|:------------|:------- | -| `timeout` | The timeout for requests | `30s` | -| `logLevel` | The log level for log output | `INFO` | - -{{< /table */>}} - -``` - -**Note:** This shortcode does not support markdown reference-style links. Use inline-style links in tables. See more -information about [markdown link styles](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links). diff --git a/site/content/docs/v0.2.0/templating.md b/site/content/docs/v0.2.0/templating.md deleted file mode 100644 index 4ea0d8535..000000000 --- a/site/content/docs/v0.2.0/templating.md +++ /dev/null @@ -1,234 +0,0 @@ -# Templating - -There are two options for templating in Cartographer, simple templates and ytt: - -## Simple Templates - -Define simple templates in `spec.template` in [Templates](./reference/template) - -Simple templates provide string interpolation in a `$(...)$` tag with -[jsonpath](https://pkg.go.dev/k8s.io/client-go/util/jsonpath) syntax. - -## ytt - -Define [ytt](https://carvel.dev/ytt/) templates in `spec.ytt` in [Templates](./reference/template) - -[ytt](https://carvel.dev/ytt/) is complete YAML aware templating language. - -Use `ytt` when your templates contain complex logic, such as **conditionals** or **looping over collections**. - -## Template Data - -Both options for templating are provided a data structure that contains: - -- owner resource (workload, deliverable) -- inputs, that are specified in the blueprint for the template (sources, images, configs, deployments) -- parameters - -Note: all `ytt` examples assume you have loaded the data module with `#@ load("@ytt:data", "data")`. - -### Owner - -The entire owner resource is available for retrieving values. To use an owner value, use the format: - -- **Simple template**: `$(..(...))$` -- **ytt**: `#@ data.values...(...)` - -#### Owner Examples - -| Simple template | ytt | -| --------------------------------- | -------------------------------------------- | -| `$(workload.metadata.name)$` | `#@ data.values.workload.metadata.name` | -| `$(deliverable.spec.source.url)$` | `#@ data.values.deliverable.spec.source.url` | - -### Inputs - -The template specifies the inputs required in the blueprint. - -You may specify a combination of one or more of these input types: - -| Input type | Accessor | -| ----------- | ----------------------------------------------------------- | -| sources | `sources..url`, `sources..revision` | -| images | `images.` | -| configs | `configs.` | -| deployments | `sources..url`, `sources..revision` | - -Where the `` corresponds to the `spec.resources[].[].name` expected in -the blueprint. - -Specifying inputs in a template: - -- **Simple template**: `$(.(.))$` -- **ytt**: `#@ data.values..(.)` - -#### Inputs Examples - -Given a supply chain where a resource has multiple sources and a config: - -```yaml ---- -spec: - resources: - - name: my-template - sources: - - resource: source-tester - name: tested - - resource: source-original - name: original - configs: - - resource: configurator - name: app-configuration -``` - -They could be used in the template as follows: - -| Simple template | ytt | -| ------------------------------- | ------------------------------------------ | -| `$(sources.original.url)$` | `#@ data.values.sources.original.url` | -| `$(sources.tested.revision)$` | `#@ data.values.sources.tested.revision` | -| `$(configs.app-configuration)$` | `#@ data.values.configs.app-configuration` | - -#### Input Aliases - -If only one input of a given input-type is required, refer to it in the singular and omit the input-name. - -- **Simple template**: `$(.)$` -- **ytt**: `#@ data.values.(.)` - -#### Input Alias Examples - -Given a supply chain where a resource has a single source and a single config: - -```yaml ---- -spec: - resources: - - name: my-template - sources: - - resource: source-original - name: original - configs: - - resource: configurator - name: app-configuration -``` - -They could be used in the template as follows: - -| Simple template | ytt | -| --------------------- | -------------------------------- | -| `$(source.url)$` | `#@ data.values.source.url` | -| `$(source.revision)$` | `#@ data.values.source.revision` | -| `$(config)$` | `#@ data.values.config` | - -### Parameters - -See [Parameter Hierarchy](architecture#parameter-hierarchy) for more information on the precedence of parameters for -owner, blueprint and templates. - -To use a parameter in the template, use the format: - -- **Simple template**: `$(params.)$` -- **ytt**: `data.values.params.` - -#### Parameter Example - -| Simple template | ytt | -| ------------------------- | ------------------------------------ | -| `$(params.image_prefix)$` | `#@ data.values.params.image_prefix` | - -## Complete Examples - -### Simple Template - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - params: - - name: image_prefix - default: projectcartographer/demo- - - imagePath: .status.latestImage - - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: service-account - builder: - kind: ClusterBuilder - name: go-builder - source: - blob: - url: $(sources.source.url)$ - build: - env: $(workload.spec.build.env)$ -``` - -### ytt - -```yaml ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - imagePath: .status.latestImage - params: - - name: serviceAccount - default: default - - name: clusterBuilder - default: default - - name: registry - default: {} - ytt: | - #@ load("@ytt:data", "data") - - #@ def image(): - #@ return "/".join([ - #@ data.values.params.registry.server, - #@ data.values.params.registry.repository, - #@ "-".join([ - #@ data.values.workload.metadata.name, - #@ data.values.workload.metadata.namespace, - #@ ]) - #@ ]) - #@ end - - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: #@ data.values.workload.metadata.name - labels: - app.kubernetes.io/component: build - #@ if/end hasattr(data.values.workload.metadata, "labels") and hasattr(data.values.workload.metadata.labels, "app.kubernetes.io/part-of"): - app.kubernetes.io/part-of: #@ data.values.workload.metadata.labels["app.kubernetes.io/part-of"] - spec: - tag: #@ image() - serviceAccountName: #@ data.values.params.serviceAccount - builder: - kind: ClusterBuilder - name: #@ data.values.params.clusterBuilder - source: - blob: - url: #@ data.values.source.url - #@ if/end hasattr(data.values.workload.spec.source, "subPath"): - subPath: #@ data.values.workload.spec.source.subPath - build: - env: - - name: BP_OCI_SOURCE - value: #@ data.values.source.revision - #@ if hasattr(data.values.workload.spec.build, "env"): - #@ for var in data.values.workload.spec.build.env: - - name: #@ var.name - value: #@ var.value - #@ end - #@ end -``` diff --git a/site/content/docs/v0.2.0/troubleshooting.md b/site/content/docs/v0.2.0/troubleshooting.md deleted file mode 100644 index 4cbf3b9f6..000000000 --- a/site/content/docs/v0.2.0/troubleshooting.md +++ /dev/null @@ -1,140 +0,0 @@ -# Troubleshooting - -## Reading your workload or deliverable status - -Cartographer makes every effort to provide you with useful information in the `status` field of your `workload` or -`deliverable` object. - -To see the status of your workload: - -```bash -kubectl get workload -n -oyaml -``` - -**Note**: We do not recommend `kubectl describe` as it makes statuses harder to read. - -Take a look at the `status:` section for conditions. E.g.: - -```yaml -status: - conditions: - - type: SupplyChainReady - status: True - reason: Ready - - type: ResourcesSubmitted - status: True - reason: Ready - - type: Ready - status: True - reason: Ready -``` - -## Common status conditions - -Cartographer conditions follow the -[Kubernetes API conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties) - -There is a top level condition of `Type: Ready` which can have a `Status` of `Unknown`, `True` or `False`. - -If your workload or deliverable has a `False` or a `Unknown` condition, inspect the conditions for cause. The -`Type: Ready` condition's `Reason` will match that of the sub-condition causing the negative status. - -### Unknown vs. False - -A status of `False` typically means Cartographer can not proceed until user intervention occurs. These are errors in -configuration. - -A status of `Unknown` indicates that resources have not yet resolved. Causes can include network timeouts, long running -processes, and occasionally a misconfiguration that Cartographer cannot itself detect. - -### MissingValueAtPath - -| Type | Status | Occurs In | -| ------------------ | ------------------ | --------------------- | -| ResourcesSubmitted | MissingValueAtPath | Workload, Deliverable | - -This is the most common `Unknown` state. - -```yaml -status: - conditions: - - type: SupplyChainReady - status: True - reason: Ready - - type: ResourcesSubmitted - status: Unknown - reason: MissingValueAtPath - message: - Waiting to read value [.status.latestImage] from resource [images.kpack.io/cool-app] in namespace [default] - - type: Ready - status: Unknown - reason: MissingValueAtPath -``` - -You will see this as part of normal operation, because a [Blueprint Resource](architecture.md/#blueprints) is applied to -your cluster, however the [output path](architecture.md/#templates) is not populated. - -If your `workload` or `deliverable` are taking a long time to become ready, then there might be an issue with the -**resource** or the **output path** - -The `message:` for `ResourcesSubmitted` will help you locate the resource causing issues. - -The most likely cause for this status is that the resource is unable to populate the specified path. Look at the -resource's status to diagnose the cause. - -#### Resolving MissingValueAtPath when the resource is failing: - -First look at the resource itself: - -```bash -kubectl describe images.kpack.io/cool-app -n default -``` - -You will see that the value at path `.status.latestImage` is not populated. Check the status and events of the resource, -consulting the documentation for the specific resource. - -#### Resolving MissingValueAtPath when the path is incorrect: - -Refer to the template specified resource's documentation for the location of the required output. - -For example, given the message - -``` -Waiting to read value [.status.latestImg] from resource [images.kpack.io/cool-app] in namespace [default] -``` - -- Look at the resources status, that's the most likely place you'll find the output you want - -```bash -kubectl get images.kpack.io/cool-app -n default -oyaml` - -... -status: - buildCounter: 5 - conditions: - - lastTransitionTime: "2021-11-09T03:16:54Z" - status: "True" - type: Ready - - lastTransitionTime: "2021-11-09T03:16:54Z" - status: "True" - type: BuilderReady - latestBuildImageGeneration: 2 - latestBuildReason: STACK - latestBuildRef: tanzu-java-web-app-build-5 - latestImage: myrepo.io/tanzu-java-web-app@sha256:a92eafaf8a2e5ec306be44e29c9c5e0696bf2c6517b4627be1580c2d16f2ddb9 - latestStack: io.buildpacks.stacks.bionic - observedGeneration: 2 -``` - -- Change the **output path** of the template to match, E.g: from `.status.latestImg` to `.status.latestImage` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - imagePath: .status.latestImage -``` - -[comment]: <> (## Viewing your supply chain or delivery instances) diff --git a/site/content/docs/v0.3.0/_index.md b/site/content/docs/v0.3.0/_index.md deleted file mode 100644 index ad9634783..000000000 --- a/site/content/docs/v0.3.0/_index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -version: v0.3.0 -cascade: - layout: docs ---- - -## TL;DR - -Cartographer is a -[Supply Chain Choreographer](https://tanzu.vmware.com/developer/guides/ci-cd/supply-chain-choreography/) for Kubernetes. -It allows App Operators to create pre-approved paths to production by integrating Kubernetes resources with the elements -of their existing toolchains (e.g. Jenkins). - -**Each** pre-approved supply chain creates a paved road to production; orchestrating supply chain resources - test, -build, scan, and deploy - allowing developers to be able to focus on delivering value to their users while also -providing App Operators with the peace of mind that all code in production has passed through all of the steps of an -approved workflow. - -## Cartographer Design and Philosophy - -Cartographer allows users to define all of the steps that an application must go through to create an image and -Kubernetes configuration. Users achieve this with the Supply Chain abstraction, see -[Spec Reference](reference/workload#clustersupplychain). - -The supply chain consists of resources that are specified via Templates. Each template acts as a wrapper for existing -Kubernetes resources and allows them to be used with Cartographer. There are currently four different types of templates -that can be use in a Cartographer supply chain: - -- [Source Template](reference/template#clustersourcetemplate) -- [Image Template](reference/template#clusterimagetemplate) -- [Config Template](reference/template#clusterconfigtemplate) -- [Generic Template](reference/template#clustertemplate) - -Contrary to many other Kubernetes native workflow tools that already exist in the market, Cartographer does not “run” -any of the objects themselves. Instead, it monitors the execution of each resource and templates the following resource -in the supply chain after a given resource has completed execution and updated its status. - -The supply chain may also be extended to include integrations to existing CI/CD pipelines by using the Runnable CRD -(which is part of Cartographer). The Runnable CRD acts as a wrapper for CRDs that are immutable (meaning that instead of -updating an object, a new object would be created). There are a number of CI/CD CRDs that follow this pattern, including -Tekton. The Runnable CRD provides a declarative way for pipelines to be run inside of Cartographer. - -While the supply chain is operator facing, Cartographer also provides an abstraction for developers called -[workloads](reference/workload#workload). Workloads allow developers to create application specifications such as the -location of their repository, environment variables and service claims. - -By design, supply chains can be reused by many workloads. This allows an operator to specify the steps in the path to -production a single time, and for developers to specify their applications independently but for each to use the same -path to production. The intent is that developers are able to focus on providing value for their users and can reach -production quickly and easily, while providing peace of mind for app operators, who are ensured that each application -has passed through the steps of the path to production that they’ve defined. - -![Cartographer High Level Diagram](img/ownership-flow.png) diff --git a/site/content/docs/v0.3.0/architecture.md b/site/content/docs/v0.3.0/architecture.md deleted file mode 100644 index c0387ea79..000000000 --- a/site/content/docs/v0.3.0/architecture.md +++ /dev/null @@ -1,223 +0,0 @@ -# Architecture and Concepts - -## Overview - -Cartographer is an open-source Supply Chain Choreographer for Kubernetes. Cartographer provides a set of Kubernetes -controllers and CRDs that allow a platform operator to create an application platform by specifying repeatable, reusable -**code-to-production** blueprints. - -Two kinds of blueprint work together to provide **code-to-production**, [Supply Chains](#clustersupplychain) and -[Delivery](#clusterdelivery). - -## Concepts - -### Blueprints - -| Blueprint | Owner | Valid Templates | -| ----------------------------------------------------------- | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| [ClusterSupplyChain](reference/workload#clustersupplychain) | [Workload](reference/workload#workload) | [ClusterSourceTemplate](reference/template#clustersourcetemplate), [ClusterImageTemplate](reference/template#clusterimagetemplate), [ClusterConfigTemplate](reference/template#clusterconfigtemplate), [ClusterTemplate](reference/template#clustertemplate) | -| [ClusterDelivery](reference/deliverable#clusterdelivery) | [Deliverable](reference/deliverable#deliverable) | [ClusterSourceTemplate](reference/template#clustersourcetemplate), [ClusterDeploymentTemplate](reference/template#clusterdeploymenttemplate), [ClusterTemplate](reference/template#clustertemplate) | - -Blueprints are a list of templates (called resources) that defines how the templates depend upon each other. It forms -the dependency graph of your supply chain or delivery. - -The dependencies are formed by specifying which resource(s) are used as inputs. - -Blueprints consist of: - -- A **selector** to match owners, see [selectors](#selectors) -- **Parameters** to pass to all resources -- **Resources**: - - A **templateRef** pointing to the template for the resource, see [templateRef](#templateref) - - **Parameters** to pass to the template - - **Inputs**, which specify dependencies for the template - -{{< figure src="../img/blueprint.svg" alt="Blueprint" width="400px" >}} - - - -#### templateRef - -`templateRef` consists of a reference to a Template in one of two ways: - -- kind and name (static), or -- kind and a list of options (dynamic) - -If there is only one option for the template, you can directly refer to the template by name. For example: - -```yaml -templateRef: - kind: ClusterSourceTemplate - name: git-template -``` - -If you need to determine the template based on a value within an Owner (workload|deliverable), you can use options. For -example: - -```yaml -templateRef: - kind: ClusterSourceTemplate - options: - - name: git-template - selector: - matchFields: - - key: workload.spec.source.git - operator: Exists - - name: imgpkg-bundle-template - selector: - matchFields: - - key: workload.spec.source.image - operator: Exists -``` - -The selector specifies the requirements which must match against the Owner (workload|deliverable) for the option to be -chosen. See [selectors](#selectors). - -### Templates - -Templates create or update resources (i.e. kubectl apply). - -Templates consist of: - -- Parameters to pass to `spec.template` or `spec.ytt` -- The Kubernetes resource yaml as `spec.template` or `spec.ytt` see [Templating](templating#templating) -- **Output paths** which tell Cartographer where to find the output of the Kubernetes resource - - The path field depends upon the specific template kind. - - These paths are interpolated and subsequent templates can use them via the input accessors. see - [Inputs](templating#inputs) - -Templates are typed by the output their underlying resource produces. - -| Output | Template | Output Path | Input Accessor | -| ---------- | ------------------------------------------------------------------------- | ----------------------------------- | ----------------------------------------------------------- | -| Config | [ClusterConfigTemplate](reference/template#clusterconfigtemplate) | `spec.configPath` | `configs.` | -| Image | [ClusterImageTemplate](reference/template#clusterimagetemplate) | `spec.imagePath` | `images.` | -| Source | [ClusterSourceTemplate](reference/template#clustersourcetemplate) | `spec.urlPath`, `spec.revisionPath` | `sources..url`, `sources..revision` | -| Deployment | [ClusterDeploymentTemplate](reference/template#clusterdeploymenttemplate) | `spec.urlPath`, `spec.revisionPath` | `sources..url`, `sources..revision` | -| | [ClusterTemplate](reference/template#clustertemplate) | - -{{< figure src="../img/template.svg" alt="Template" width="400px" >}} - -### Owners - -| Owner | Blueprint | -| ----------- | ------------------ | -| Workload | ClusterSupplyChain | -| Deliverable | ClusterDelivery | - -Owners represent the **workload** or **deliverable**, which in many cases refer to a single application's source or -image location. - -Owners are the developer provided configuration which cause a blueprint to be reconciled into resources. Owners -reference the primary **source** or **image** for the **blueprint** - -They consist of: - -- **Labels**: blueprints will select based on the labels of an owner, see [selectors](#selectors) -- **Params**: parameters supplied to the blueprint, see [Parameter Hierarchy](#parameter-hierarchy) -- **Source**: The source reference for the input to the Supply Chain or Delivery Blueprints, see - [Workload](reference/workload#workload) and [Deliverable](reference/deliverable#deliverable) - -{{< figure src="../img/owner.svg" alt="Owner" width="400px" >}} - -## Theory of Operation - -Given an owner that matches a blueprint, Cartographer reconciles the resources referenced by the blueprint. The -resources are only created when the inputs are satisfied, and a resource is only updated when its inputs change. This -results in a system where a new result from one resource can cause other resources to change. - -![Generic Blueprint](../img/generic.jpg) - - - -Although Cartographer is not a 'runner of things', a resource can be something as simple as a Job. - -However, one advantage of Cartographer's design is that resources that self-mutate can cause downstream change. - -For example, a Build resource that discovers new base OCI images. If it rebuilds your image, then Cartographer will see -this new image and update downstream resources. - -When Cartographer reconciles an owner, each resource in the matching blueprint is applied: - -0. **Determine Template**: If options are present, resolve selector to find matching template. Otherwise, use template - name specified. See [templateRef](#templateRef). -1. **Generate Inputs**: Using the **blueprint resource's** `inputs` as a reference, select outputs from previously - applied **Kubernetes resources** -2. **Generate Params**: Using the [Parameter Hierarchy](architecture.md#parameter-hierarchy), generate parameter values -3. **Generate and apply resource spec**: Apply the result of interpolating `spec.template` (or `spec.ytt`), **inputs**, - **params** and the **owner spec**. -4. **Retrieve Output**: Store the output from the applied resource. The output to use is specified in the **template - output path**. - -![Realize](../img/realize.jpg) - -## Blueprint Details - -### ClusterSupplyChain - -A ClusterSupplyChain blueprint continuously integrates and builds your app. - -![ClusterSupplyChain](../img/supplychain.png) - -### ClusterDelivery - -A ClusterDelivery blueprint continuously deploys and validates Kubernetes configuration to a cluster. - -![ClusterDelivery](../img/delivery.jpg) - -### Selectors - -Selectors specify a set of requirements that _must all_ match against an owner. - -They build upon -[set-based requirements in Kubernetes resources](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#resources-that-support-set-based-requirements), -by adding `matchFields`, which permits the same operators and values as `matchExpressions` against a json path `key` -which is evaluated on the owner. For example: - -```yaml -selector: - matchLabels: - workload-type: web - matchExpressions: - - key: group - operator: In - values: ["internal", "public-facing"] - matchFields: - - key: workload.spec.source.git - operator: Exists -``` - -All requirements must match for the selector to select for the owner. Furthermore, when considered against multiple, -other objects with selectors, the selector with the most specificity wins. If multiple selectors match with equal -specificity, the handling depends on context. - -They are currently employed by: - -1. Blueprints, [in legacy form](#blueprint-selector-legacy) - to determine if the blueprint will select for the owner; -2. options in a [templateRef](#templateRef) - to determine if the template option will select for the owner. - -In both these cases, multiple matching objects is invalid - in the former, no blueprint will reconcile for the owner. In -the latter, no template will be stamped out, and the details of the offending resource reported in the owner's status. - -#### Blueprint selector legacy - -In order to maintain backwards-compatibility with the existing schema, blueprints must currently supply selector -requirements directly in their top-level properties `selector`, `selectorMatchExpressions` and `selectorMatchFields` -(for `matchLabels`, `matchExpressions`, and `matchFields`, respectively). - -In a future schema revision, blueprints' `selector` property will become a Selector, as described above, and the -`selectorMatchExpressions` and `selectorMatchFields` removed. - -## Parameter Hierarchy - - - -Templates can specify default values for **parameters** in `spec.params`. - -These parameters may be overridden by the **blueprint**, which allows operators to specify: - -- a default value which can be overridden by the **owner's** `spec.params` -- a value which cannot be overridden by the **owner** - -Blueprint parameters can be specified globally in `spec.params` or per resource `spec.resource[].params` If the **per -resource param** is specified, the global blueprint param is ignored. diff --git a/site/content/docs/v0.3.0/authentication.md b/site/content/docs/v0.3.0/authentication.md deleted file mode 100644 index d6d2eec89..000000000 --- a/site/content/docs/v0.3.0/authentication.md +++ /dev/null @@ -1,172 +0,0 @@ -# Authentication - -## Owner Permissions - -Cartographer requires a **service account** that permits all actions on the GVKs specified in **templates**. - -### Per namespace service account - -The operator provides a name for the service account that is used (but not the namespace). Typically, the operator will -ensure that a service account with sufficient privileges exists in each developer namespace. - -The developer can still -[override the service account name](#developer-selects-the-name-of-a-service-account-in-their-namespace). - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: "operator-chosen-name" - namespace: # not provided - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # not provided -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: operator-chosen-name - namespace: my-developer-ns -``` - -### Single service account - -The operator provides a reference to a single service account that is used. The operator will ensure that one service -account with sufficient privileges exists. - -The developer can still -[override the service account name](#developer-selects-the-name-of-a-service-account-in-their-namespace). - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: operator-chosen-name - namespace: operator-chosen-namespace - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # not provided -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: operator-chosen-name - namespace: operator-chosen-namespace -``` - -### Developer selected service account - -The developer provides a name for a service account that is in the same namespace as the owner (Workload/Deliverable) -they are creating. This takes precedence over operator provided service accounts. Of course the service account still -requires full permissions for the objects created by the blueprint. - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: - name: # n/a - namespace: # n/a - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: workload-specific-sa -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: workload-specific-sa - namespace: my-developer-ns -``` - -### Default service account - -If a service account is not specified in the blueprint or the owner, the `default` service account in the owner -namespace is used. - -Note: The `default` service account is unlikely to have the necessary permissions. - -```yaml ---- -kind: ClusterSupplyChain|ClusterDelivery -spec: - serviceAccountRef: {} # Not provided! - ---- -kind: Workload|Deliverable -metadata: - namespace: my-developer-ns -spec: - serviceAccountName: # Not provided! -``` - -The selected service account is: - -```yaml ---- -kind: ServiceAccount -metadata: - name: default - namespace: my-developer-ns -``` - -## Cartographer Controller Permissions - -Cartographer has its own service account, `cartographer-controller` in the `cartographer-system` namespace. The -clusterrole that's bound to the service account is: - -```bash -kubectl get clusterrole cartographer-controller-admin -oyaml - -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: cartographer-controller-admin -rules: -- apiGroups: - - carto.run - resources: - - workloads/status - - clustersupplychains/status - - runnables/status - - clusterdeliveries/status - - deliverables/status - verbs: - - create - - update - - delete - - patch -- apiGroups: - - '*' - resources: - - '*' - verbs: - - watch - - get - - list -``` diff --git a/site/content/docs/v0.3.0/crds/carto.run_clusterconfigtemplates.yaml b/site/content/docs/v0.3.0/crds/carto.run_clusterconfigtemplates.yaml deleted file mode 100644 index 986de2013..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_clusterconfigtemplates.yaml +++ /dev/null @@ -1,52 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterConfigTemplate -metadata: {} -spec: - - # ConfigPath is a path into the templated object's data that - # contains valid yaml. This is typically the information that - # will configure the components of the deployable image. - # ConfigPath is specified in jsonpath format, eg: .data - configPath: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/v0.3.0/crds/carto.run_clusterdeliveries.yaml b/site/content/docs/v0.3.0/crds/carto.run_clusterdeliveries.yaml deleted file mode 100644 index 1e47a4b88..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_clusterdeliveries.yaml +++ /dev/null @@ -1,240 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterDelivery -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner does not specify this parameter, - # this value is used. - # +optional - default: - - # Name of the parameter. Should match a template parameter - # name. - name: - - # Value of the parameter. If specified, owner properties are - # ignored. - # +optional - value: - - # Resources that are responsible for deploying and validating - # the deliverable - resources: - - # Configs is a list of references to other 'config' - # resources in this list. A config resource has the kind - # ClusterConfigTemplate - # In a template, configs can be consumed as: - # $(configs..config)$ - # If there is only one image, it can be consumed as: - # $(config)$ - # +optional - configs: - - name: - resource: - - # Deployment is a reference to a 'deployment' resource. A - # deployment resource has the kind ClusterDeploymentTemplate - # In a template, the deployment can be consumed as: - # $(deployment.url)$ and $(deployment.revision)$ - # +optional - deployment: - resource: - - # Name of the resource. Used as a reference for inputs, as - # well as being the name presented in deliverable statuses - # to identify this resource. - name: - - # Params are a list of parameters to provide to the template - # in TemplateRef Template params do not have to be specified - # here, unless you want to force a particular value, or add - # a default value. - # Parameters are consumed in a template with the syntax: - # $(params.)$ - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to - # be optional; If the Owner does not specify this - # parameter, this value is used. - # +optional - default: - - # Name of the parameter. Should match a template - # parameter name. - name: - - # Value of the parameter. If specified, owner properties - # are ignored. - # +optional - value: - - # Sources is a list of references to other 'source' - # resources in this list. A source resource has the kind - # ClusterSourceTemplate or ClusterDeploymentTemplate - # In a template, sources can be consumed as: - # $(sources..url)$ and $(sources..revision)$ - # If there is only one source, it can be consumed as: - # $(source.url)$ and $(source.revision)$ - # +optional - sources: - - name: - resource: - - # TemplateRef identifies the template used to produce this - # resource - templateRef: - - # Kind of the template to apply - kind: <[ClusterSourceTemplate|ClusterDeploymentTemplate|ClusterTemplate|ClusterConfigTemplate]> - - # Name of the template to apply - # +optional - name: - - # Options is a list of template names and Selector. The - # templates must all be of type Kind. A template will be - # selected if the deliverable matches the specified - # selector. Only one template can be selected. Only one of - # Name and Options can be specified. - # +optional - options: - - # Name of the template to apply - name: - - # Selector is a criteria to match against a workload - # or deliverable resource. - selector: - - # matchExpressions is a list of label selector - # requirements. The requirements are ANDed. - # +optional - matchExpressions: - - # A label selector requirement is a selector - # that contains values, a key, and an operator - # that relates the key and values. - # +optional - - # key is the label key that the selector applies - # to. - key: - - # operator represents a key's relationship to a - # set of values. Valid operators are In, NotIn, - # Exists and DoesNotExist. - operator: - - # values is an array of string values. If the - # operator is In or NotIn, the values array must - # be non-empty. If the operator is Exists or - # DoesNotExist, the values array must be empty. - # This array is replaced during a strategic - # merge patch. - # +optional - values: [ ] - - # MatchFields is a list of field selector - # requirements. The requirements are ANDed. - # +optional - matchFields: - - # Key is the JSON path in the workload to match - # against. e.g. for workload: - # "workload.spec.source.git.url", e.g. for - # deliverable: "deliverable.spec.source.git.url" - key: - - # Operator represents a key's relationship to a - # set of values. Valid operators are In, NotIn, - # Exists and DoesNotExist. - operator: <[In|NotIn|Exists|DoesNotExist]> - - # Values is an array of string values. If the - # operator is In or NotIn, the values array must - # be non-empty. If the operator is Exists or - # DoesNotExist, the values array must be empty. - # +optional - values: [ ] - - # matchLabels is a map of {key,value} pairs. A - # single {key,value} in the matchLabels map is - # equivalent to an element of matchExpressions, - # whose key field is "key", the operator is "In", - # and the values array contains only "value". The - # requirements are ANDed. - # +optional - matchLabels: {} - - # Specifies the label key-value pairs used to select owners See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selector: {} - - # Specifies the requirements used to select owners based on - # their labels See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selectorMatchExpressions: - - # A label selector requirement is a selector that contains - # values, a key, and an operator that relates the key and - # values. - # +optional - - # key is the label key that the selector applies to. - key: - - # operator represents a key's relationship to a set of - # values. Valid operators are In, NotIn, Exists and - # DoesNotExist. - operator: - - # values is an array of string values. If the operator is In - # or NotIn, the values array must be non-empty. If the - # operator is Exists or DoesNotExist, the values array must - # be empty. This array is replaced during a strategic merge - # patch. - # +optional - values: [ ] - - # Specifies the requirements used to select owners based on - # their fields See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selectorMatchFields: - - # Key is the JSON path in the workload to match against. - # e.g. for workload: "workload.spec.source.git.url", e.g. - # for deliverable: "deliverable.spec.source.git.url" - key: - - # Operator represents a key's relationship to a set of - # values. Valid operators are In, NotIn, Exists and - # DoesNotExist. - operator: <[In|NotIn|Exists|DoesNotExist]> - - # Values is an array of string values. If the operator is In - # or NotIn, the values array must be non-empty. If the - # operator is Exists or DoesNotExist, the values array must - # be empty. - # +optional - values: [ ] - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountRef: - - # Name of the service account being referred to - name: - - # Namespace of the service account being referred to if - # omitted, the Owner's namespace is used. - # +optional - namespace: diff --git a/site/content/docs/v0.3.0/crds/carto.run_clusterdeploymenttemplates.yaml b/site/content/docs/v0.3.0/crds/carto.run_clusterdeploymenttemplates.yaml deleted file mode 100644 index d1819068a..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_clusterdeploymenttemplates.yaml +++ /dev/null @@ -1,99 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterDeploymentTemplate -metadata: {} -spec: - - # ObservedCompletion describe the criteria for determining that - # the templated object completed configuration of environment. - # These criteria assert completion when metadata.Generation and - # status.ObservedGeneration match, AND success or failure - # criteria match. Cannot specify both ObservedMatches and - # ObservedCompletion. - # +optional - observedCompletion: - - # FailedCondition, when matched, indicates that the input did - # not deploy successfully. - # +optional - failed: - - # Key is a jsonPath expression pointing to the field to - # inspect on the templated object, eg: - # 'status.conditions[?(@.type=="Succeeded")].status' - key: - - # Value is the expected value that, when matching the key's - # actual value, makes this condition true. - value: - - # SucceededCondition, when matched, indicates that the input - # was successfully deployed. - succeeded: - - # Key is a jsonPath expression pointing to the field to - # inspect on the templated object, eg: - # 'status.conditions[?(@.type=="Succeeded")].status' - key: - - # Value is the expected value that, when matching the key's - # actual value, makes this condition true. - value: - - # ObservedMatches describe the criteria for determining that the - # templated object completed configuration of environment. These - # criteria assert completion when an output (usually a field in - # .status) matches an input (usually a field in .spec) Cannot - # specify both ObservedMatches and ObservedCompletion. - # +optional - observedMatches: - - # Input is a jsonPath to a value that is fulfilled before - # the templated object is reconciled. Usually a value in the - # .spec of the object - input: - - # Output is a jsonPath to a value that is fulfilled after - # the templated object is reconciled. Usually a value in the - # .status of the object - output: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/v0.3.0/crds/carto.run_clusterimagetemplates.yaml b/site/content/docs/v0.3.0/crds/carto.run_clusterimagetemplates.yaml deleted file mode 100644 index 52f18461d..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_clusterimagetemplates.yaml +++ /dev/null @@ -1,55 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: {} -spec: - - # ImagePath is a path into the templated object's data that - # contains a valid image digest. This might be a URL or in some - # cases just a repository path and digest. The final spec for - # this field may change as we implement RFC-0016 - # https://github.com/vmware-tanzu/cartographer/blob/main/rfc/rfc-0016-validate-template-outputs.md - # ImagePath is specified in jsonpath format, eg: - # .status.artifact.image_digest - imagePath: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/v0.3.0/crds/carto.run_clusterruntemplates.yaml b/site/content/docs/v0.3.0/crds/carto.run_clusterruntemplates.yaml deleted file mode 100644 index cf86cfce0..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_clusterruntemplates.yaml +++ /dev/null @@ -1,29 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: {} -spec: - - # Outputs are a named list of jsonPaths that are used to gather - # results from the last successful object stamped by the - # template. E.g: my-output: - # .status.results[?(@.name=="IMAGE-DIGEST")].value Note: outputs - # are only filled on the runnable when the templated object has - # a Succeeded condition with a Status of True E.g: - # status.conditions[?(@.type=="Succeeded")].status == True a - # runnable creating an object without a Succeeded condition - # (like a Job or ConfigMap) will never display an output - # +optional - outputs: {} - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - template: {} diff --git a/site/content/docs/v0.3.0/crds/carto.run_clustersourcetemplates.yaml b/site/content/docs/v0.3.0/crds/carto.run_clustersourcetemplates.yaml deleted file mode 100644 index 253b4d6f6..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_clustersourcetemplates.yaml +++ /dev/null @@ -1,58 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # RevisionPath is a path into the templated object's data that - # contains a revision. The revision, along with the URL, - # represents the output of the Template. RevisionPath is - # specified in jsonpath format, eg: .status.artifact.revision - revisionPath: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # URLPath is a path into the templated object's data that - # contains a URL. The URL, along with the revision, represents - # the output of the Template. URLPath is specified in jsonpath - # format, eg: .status.artifact.url - urlPath: - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/v0.3.0/crds/carto.run_clustersupplychains.yaml b/site/content/docs/v0.3.0/crds/carto.run_clustersupplychains.yaml deleted file mode 100644 index fbee9e9c8..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_clustersupplychains.yaml +++ /dev/null @@ -1,246 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner does not specify this parameter, - # this value is used. - # +optional - default: - - # Name of the parameter. Should match a template parameter - # name. - name: - - # Value of the parameter. If specified, owner properties are - # ignored. - # +optional - value: - - # Resources that are responsible for bringing the application to - # a deliverable state. - resources: - - # Configs is a list of references to other 'config' - # resources in this list. A config resource has the kind - # ClusterConfigTemplate - # In a template, configs can be consumed as: - # $(configs..config)$ - # If there is only one image, it can be consumed as: - # $(config)$ - # +optional - configs: - - name: - resource: - - # Images is a list of references to other 'image' resources - # in this list. An image resource has the kind - # ClusterImageTemplate - # In a template, images can be consumed as: - # $(images..image)$ - # If there is only one image, it can be consumed as: - # $(image)$ - # +optional - images: - - name: - resource: - - # Name of the resource. Used as a reference for inputs, as - # well as being the name presented in workload statuses to - # identify this resource. - name: - - # Params are a list of parameters to provide to the template - # in TemplateRef Template params do not have to be specified - # here, unless you want to force a particular value, or add - # a default value. - # Parameters are consumed in a template with the syntax: - # $(params.)$ - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to - # be optional; If the Owner does not specify this - # parameter, this value is used. - # +optional - default: - - # Name of the parameter. Should match a template - # parameter name. - name: - - # Value of the parameter. If specified, owner properties - # are ignored. - # +optional - value: - - # Sources is a list of references to other 'source' - # resources in this list. A source resource has the kind - # ClusterSourceTemplate - # In a template, sources can be consumed as: - # $(sources..url)$ and $(sources..revision)$ - # If there is only one source, it can be consumed as: - # $(source.url)$ and $(source.revision)$ - # +optional - sources: - - name: - resource: - - # TemplateRef identifies the template used to produce this - # resource - templateRef: - - # Kind of the template to apply - kind: <[ClusterSourceTemplate|ClusterImageTemplate|ClusterTemplate|ClusterConfigTemplate]> - - # Name of the template to apply Only one of Name and - # Options can be specified. - # +optional - name: - - # Options is a list of template names and Selector. The - # templates must all be of type Kind. A template will be - # selected if the workload matches the specified selector. - # Only one template can be selected. Only one of Name and - # Options can be specified. Minimum number of items in - # list is two. - # +optional - options: - - # Name of the template to apply - name: - - # Selector is a criteria to match against a workload - # or deliverable resource. - selector: - - # matchExpressions is a list of label selector - # requirements. The requirements are ANDed. - # +optional - matchExpressions: - - # A label selector requirement is a selector - # that contains values, a key, and an operator - # that relates the key and values. - # +optional - - # key is the label key that the selector applies - # to. - key: - - # operator represents a key's relationship to a - # set of values. Valid operators are In, NotIn, - # Exists and DoesNotExist. - operator: - - # values is an array of string values. If the - # operator is In or NotIn, the values array must - # be non-empty. If the operator is Exists or - # DoesNotExist, the values array must be empty. - # This array is replaced during a strategic - # merge patch. - # +optional - values: [ ] - - # MatchFields is a list of field selector - # requirements. The requirements are ANDed. - # +optional - matchFields: - - # Key is the JSON path in the workload to match - # against. e.g. for workload: - # "workload.spec.source.git.url", e.g. for - # deliverable: "deliverable.spec.source.git.url" - key: - - # Operator represents a key's relationship to a - # set of values. Valid operators are In, NotIn, - # Exists and DoesNotExist. - operator: <[In|NotIn|Exists|DoesNotExist]> - - # Values is an array of string values. If the - # operator is In or NotIn, the values array must - # be non-empty. If the operator is Exists or - # DoesNotExist, the values array must be empty. - # +optional - values: [ ] - - # matchLabels is a map of {key,value} pairs. A - # single {key,value} in the matchLabels map is - # equivalent to an element of matchExpressions, - # whose key field is "key", the operator is "In", - # and the values array contains only "value". The - # requirements are ANDed. - # +optional - matchLabels: {} - - # Specifies the label key-value pairs used to select owners See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selector: {} - - # Specifies the requirements used to select owners based on - # their labels See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selectorMatchExpressions: - - # A label selector requirement is a selector that contains - # values, a key, and an operator that relates the key and - # values. - # +optional - - # key is the label key that the selector applies to. - key: - - # operator represents a key's relationship to a set of - # values. Valid operators are In, NotIn, Exists and - # DoesNotExist. - operator: - - # values is an array of string values. If the operator is In - # or NotIn, the values array must be non-empty. If the - # operator is Exists or DoesNotExist, the values array must - # be empty. This array is replaced during a strategic merge - # patch. - # +optional - values: [ ] - - # Specifies the requirements used to select owners based on - # their fields See: - # https://cartographer.sh/docs/v0.1.0/architecture/#selectors - # +optional - selectorMatchFields: - - # Key is the JSON path in the workload to match against. - # e.g. for workload: "workload.spec.source.git.url", e.g. - # for deliverable: "deliverable.spec.source.git.url" - key: - - # Operator represents a key's relationship to a set of - # values. Valid operators are In, NotIn, Exists and - # DoesNotExist. - operator: <[In|NotIn|Exists|DoesNotExist]> - - # Values is an array of string values. If the operator is In - # or NotIn, the values array must be non-empty. If the - # operator is Exists or DoesNotExist, the values array must - # be empty. - # +optional - values: [ ] - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountRef: - - # Name of the service account being referred to - name: - - # Namespace of the service account being referred to if - # omitted, the Owner's namespace is used. - # +optional - namespace: diff --git a/site/content/docs/v0.3.0/crds/carto.run_clustertemplates.yaml b/site/content/docs/v0.3.0/crds/carto.run_clustertemplates.yaml deleted file mode 100644 index ae1557fac..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_clustertemplates.yaml +++ /dev/null @@ -1,46 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # DefaultValue of the parameter. Causes the parameter to be - # optional; If the Owner or Template does not specify this - # parameter, this value is used. - default: - - # Name of a parameter the template accepts from the - # Blueprint or Owner. - name: - - # Template defines a resource template for a Kubernetes Resource - # or Custom Resource which is applied to the server each time - # the blueprint is applied. Templates support simple value - # interpolation using the $()$ marker format. For more - # information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - template: {} - - # Ytt defines a resource template written in `ytt` for a - # Kubernetes Resource or Custom Resource which is applied to the - # server each time the blueprint is applied. Templates support - # simple value interpolation using the $()$ marker format. For - # more information, see: - # https://cartographer.sh/docs/latest/templating/ You cannot - # define both Template and Ytt at the same time. You should not - # define the namespace for the resource - it will automatically - # be created in the owner namespace. If the namespace is - # specified and is not the owner namespace, the resource will - # fail to be created. - # +optional - ytt: diff --git a/site/content/docs/v0.3.0/crds/carto.run_deliverables.yaml b/site/content/docs/v0.3.0/crds/carto.run_deliverables.yaml deleted file mode 100644 index b71be5fc1..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_deliverables.yaml +++ /dev/null @@ -1,265 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Deliverable -metadata: {} -spec: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # Name of the parameter. Should match a blueprint or - # template parameter name. - name: - - # Value of the parameter. - value: - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # delivery. - # If that is also not set, Cartographer will use the default - # service account in the deliverable's namespace. - # +optional - serviceAccountName: - - # The location of the source code for the workload. Specify one - # of `spec.source` or `spec.image` - # +optional - source: - - # Source code location in a git repository. - # +optional - git: - ref: - branch: - commit: - tag: - url: - - # OCI Image in a repository, containing the source code to be - # used throughout the supply chain. - # +optional - image: - - # Subpath inside the Git repository or Image to treat as the - # root of the application. Defaults to the root if left empty. - # +optional - subPath: - -# Status conforms to the Kubernetes conventions: -# https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties -# +optional -status: - - # Conditions describing this resource's reconcile state. The top - # level condition is of type `Ready`, and follows these - # Kubernetes conventions: - # https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties - # +optional - conditions: - - # Condition contains details for one aspect of the current - # state of this API Resource. --- This struct is intended - # for direct use as an array at the field path - # .status.conditions. For example, type FooStatus struct{ - # // Represents the observations of a foo's current state. - # // Known .status.conditions.type are: "Available", - # "Progressing", and "Degraded" // +patchMergeKey=type // - # +patchStrategy=merge // +listType=map // +listMapKey=type - # Conditions []metav1.Condition `json:"conditions,omitempty" - # patchStrategy:"merge" patchMergeKey:"type" - # protobuf:"bytes,1,rep,name=conditions"` - # // other fields } - # +optional - - # lastTransitionTime is the last time the condition - # transitioned from one status to another. This should be - # when the underlying condition changed. If that is not - # known, then using the time when the API field changed is - # acceptable. - lastTransitionTime: - - # message is a human readable message indicating details - # about the transition. This may be an empty string. - message: - - # observedGeneration represents the .metadata.generation - # that the condition was set based upon. For instance, if - # .metadata.generation is currently 12, but the - # .status.conditions[x].observedGeneration is 9, the - # condition is out of date with respect to the current state - # of the instance. - # +optional - observedGeneration: - - # reason contains a programmatic identifier indicating the - # reason for the condition's last transition. Producers of - # specific condition types may define expected values and - # meanings for this field, and whether the values are - # considered a guaranteed API. The value should be a - # CamelCase string. This field may not be empty. - reason: - - # status of the condition, one of True, False, Unknown. - status: <[True|False|Unknown]> - - # type of condition in CamelCase or in - # foo.example.com/CamelCase. --- Many .condition.type values - # are consistent across resources like Available, but - # because arbitrary conditions can be useful (see - # .node.status.conditions), the ability to deconflict is - # important. The regex it matches is - # (dns1123SubdomainFmt/)?(qualifiedNameFmt) - type: - - # DeliveryRef is the Delivery resource that was used when this - # status was set. - # +optional - deliveryRef: - apiVersion: - kind: - name: - namespace: - - # ObservedGeneration refers to the metadata.Generation of the - # spec that resulted in the current `status`. - # +optional - observedGeneration: - - # Resources contain references to the objects created by the - # Delivery and the templates used to create them. It also - # contains Inputs and Outputs that were passed between the - # templates as the Delivery was processed. - # +optional - resources: - - # Inputs are references to resources that were used to - # template the object in StampedRef - # +optional - inputs: - - # Name is the name of the resource in the blueprint - # whose output the resource consumes as an input - name: - - # Name is the name of the resource in the blueprint - name: - - # Outputs are values from the object in StampedRef that can - # be consumed by other resources - # +optional - outputs: - - # Digest is a sha256 of the full value of the output - digest: - - # LastTransitionTime is a timestamp of the last time the - # value changed - lastTransitionTime: - - # Name is the output type generated from the resource - # [url, revision, image or config] - name: - - # Preview is a preview of the value of the output - preview: - - # StampedRef is a reference to the object that was created - # by the resource - # +optional - stampedRef: - - # API version of the referent. - # +optional - apiVersion: - - # If referring to a piece of an object instead of an - # entire object, this string should contain a valid - # JSON/Go field access statement, such as - # desiredState.manifest.containers[2]. For example, if the - # object reference is to a container within a pod, this - # would take on a value like: "spec.containers{name}" - # (where "name" refers to the name of the container that - # triggered the event) or if no container name is - # specified "spec.containers[2]" (container with index 2 - # in this pod). This syntax is chosen only to have some - # well-defined way of referencing a part of an object. - # TODO: this design is not final and this field is subject - # to change in the future. - # +optional - fieldPath: - - # Kind of the referent. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - # +optional - kind: - - # Name of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - # +optional - name: - - # Namespace of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - # +optional - namespace: - - # Specific resourceVersion to which this reference is - # made, if any. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - # +optional - resourceVersion: - - # UID of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - # +optional - uid: - - # TemplateRef is a reference to the template used to create - # the object in StampedRef - # +optional - templateRef: - - # API version of the referent. - # +optional - apiVersion: - - # If referring to a piece of an object instead of an - # entire object, this string should contain a valid - # JSON/Go field access statement, such as - # desiredState.manifest.containers[2]. For example, if the - # object reference is to a container within a pod, this - # would take on a value like: "spec.containers{name}" - # (where "name" refers to the name of the container that - # triggered the event) or if no container name is - # specified "spec.containers[2]" (container with index 2 - # in this pod). This syntax is chosen only to have some - # well-defined way of referencing a part of an object. - # TODO: this design is not final and this field is subject - # to change in the future. - # +optional - fieldPath: - - # Kind of the referent. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - # +optional - kind: - - # Name of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - # +optional - name: - - # Namespace of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - # +optional - namespace: - - # Specific resourceVersion to which this reference is - # made, if any. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - # +optional - resourceVersion: - - # UID of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - # +optional - uid: diff --git a/site/content/docs/v0.3.0/crds/carto.run_runnables.yaml b/site/content/docs/v0.3.0/crds/carto.run_runnables.yaml deleted file mode 100644 index 11ba47311..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_runnables.yaml +++ /dev/null @@ -1,53 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Runnable -metadata: {} -spec: - - # Inputs are key/values providing inputs to the templated object - # created for this runnable. Reference inputs in the template - # using the jsonPath: $(runnable.spec.inputs.)$ - # +optional - inputs: {} - - # RetentionPolicy specifies how many successful and failed runs - # should be retained. Runs older than this (ordered by creation - # time) will be deleted. Setting higher values will increase - # memory footprint. - # +optional - retentionPolicy: - - # MaxFailedRuns is the number of failed runs to retain. - maxFailedRuns: - - # MaxSuccessfulRuns is the number of successful runs to - # retain. - maxSuccessfulRuns: - - # RunTemplateRef identifies the run template used to produce - # resources for this runnable. - runTemplateRef: - kind: - name: - - # Selector refers to an additional object that the template can - # refer to using: $(selected)$. - # +optional - selector: - - # MatchingLabels must match on a single target object, making - # the object available in the template as $(selected)$ - matchingLabels: {} - - # Resource is the GVK that must match the selected object. - resource: - apiVersion: - kind: - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the - # ClusterRunTemplate. - # If not set, Cartographer will use the default service account - # in the runnable's namespace. - # +optional - serviceAccountName: diff --git a/site/content/docs/v0.3.0/crds/carto.run_workloads.yaml b/site/content/docs/v0.3.0/crds/carto.run_workloads.yaml deleted file mode 100644 index c93a04e5e..000000000 --- a/site/content/docs/v0.3.0/crds/carto.run_workloads.yaml +++ /dev/null @@ -1,316 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: {} -spec: - - # Build configuration, for the build resources in the supply - # chain - # +optional - build: - - # Env is an array of environment variables to propagate to - # build resources in the supply chain. See - # https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ - # +optional - env: - - # EnvVar represents an environment variable present in a - # Container. - # +optional - name: - value: - valueFrom: {} - - # Environment variables to be passed to the main container - # running the application. See - # https://kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ - # +optional - env: - - # EnvVar represents an environment variable present in a - # Container. - # +optional - name: - value: - valueFrom: {} - - # Image refers to a pre-built image in a registry. It is an - # alternative to specifying the location of source code for the - # workload. Specify one of `spec.source` or `spec.image`. - # +optional - image: - - # Additional parameters. See: - # https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy - # +optional - params: - - # Name of the parameter. Should match a blueprint or - # template parameter name. - name: - - # Value of the parameter. - value: - - # Resource constraints for the application. See - # https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ - # +optional - resources: - limits: {} - requests: {} - - # ServiceAccountName refers to the Service account with - # permissions to create resources submitted by the supply chain. - # If not set, Cartographer will use serviceAccountName from - # supply chain. - # If that is also not set, Cartographer will use the default - # service account in the workload's namespace. - # +optional - serviceAccountName: - - # ServiceClaims to be bound through ServiceBindings. - # +optional - serviceClaims: - - name: - ref: - apiVersion: - kind: - name: - - # The location of the source code for the workload. Specify one - # of `spec.source` or `spec.image` - # +optional - source: - - # Source code location in a git repository. - # +optional - git: - ref: - branch: - commit: - tag: - url: - - # OCI Image in a repository, containing the source code to be - # used throughout the supply chain. - # +optional - image: - - # Subpath inside the Git repository or Image to treat as the - # root of the application. Defaults to the root if left empty. - # +optional - subPath: - -# Status conforms to the Kubernetes conventions: -# https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties -# +optional -status: - - # Conditions describing this resource's reconcile state. The top - # level condition is of type `Ready`, and follows these - # Kubernetes conventions: - # https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties - # +optional - conditions: - - # Condition contains details for one aspect of the current - # state of this API Resource. --- This struct is intended - # for direct use as an array at the field path - # .status.conditions. For example, type FooStatus struct{ - # // Represents the observations of a foo's current state. - # // Known .status.conditions.type are: "Available", - # "Progressing", and "Degraded" // +patchMergeKey=type // - # +patchStrategy=merge // +listType=map // +listMapKey=type - # Conditions []metav1.Condition `json:"conditions,omitempty" - # patchStrategy:"merge" patchMergeKey:"type" - # protobuf:"bytes,1,rep,name=conditions"` - # // other fields } - # +optional - - # lastTransitionTime is the last time the condition - # transitioned from one status to another. This should be - # when the underlying condition changed. If that is not - # known, then using the time when the API field changed is - # acceptable. - lastTransitionTime: - - # message is a human readable message indicating details - # about the transition. This may be an empty string. - message: - - # observedGeneration represents the .metadata.generation - # that the condition was set based upon. For instance, if - # .metadata.generation is currently 12, but the - # .status.conditions[x].observedGeneration is 9, the - # condition is out of date with respect to the current state - # of the instance. - # +optional - observedGeneration: - - # reason contains a programmatic identifier indicating the - # reason for the condition's last transition. Producers of - # specific condition types may define expected values and - # meanings for this field, and whether the values are - # considered a guaranteed API. The value should be a - # CamelCase string. This field may not be empty. - reason: - - # status of the condition, one of True, False, Unknown. - status: <[True|False|Unknown]> - - # type of condition in CamelCase or in - # foo.example.com/CamelCase. --- Many .condition.type values - # are consistent across resources like Available, but - # because arbitrary conditions can be useful (see - # .node.status.conditions), the ability to deconflict is - # important. The regex it matches is - # (dns1123SubdomainFmt/)?(qualifiedNameFmt) - type: - - # ObservedGeneration refers to the metadata.Generation of the - # spec that resulted in the current `status`. - # +optional - observedGeneration: - - # Resources contain references to the objects created by the - # Supply Chain and the templates used to create them. It also - # contains Inputs and Outputs that were passed between the - # templates as the Supply Chain was processed. - # +optional - resources: - - # Inputs are references to resources that were used to - # template the object in StampedRef - # +optional - inputs: - - # Name is the name of the resource in the blueprint - # whose output the resource consumes as an input - name: - - # Name is the name of the resource in the blueprint - name: - - # Outputs are values from the object in StampedRef that can - # be consumed by other resources - # +optional - outputs: - - # Digest is a sha256 of the full value of the output - digest: - - # LastTransitionTime is a timestamp of the last time the - # value changed - lastTransitionTime: - - # Name is the output type generated from the resource - # [url, revision, image or config] - name: - - # Preview is a preview of the value of the output - preview: - - # StampedRef is a reference to the object that was created - # by the resource - # +optional - stampedRef: - - # API version of the referent. - # +optional - apiVersion: - - # If referring to a piece of an object instead of an - # entire object, this string should contain a valid - # JSON/Go field access statement, such as - # desiredState.manifest.containers[2]. For example, if the - # object reference is to a container within a pod, this - # would take on a value like: "spec.containers{name}" - # (where "name" refers to the name of the container that - # triggered the event) or if no container name is - # specified "spec.containers[2]" (container with index 2 - # in this pod). This syntax is chosen only to have some - # well-defined way of referencing a part of an object. - # TODO: this design is not final and this field is subject - # to change in the future. - # +optional - fieldPath: - - # Kind of the referent. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - # +optional - kind: - - # Name of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - # +optional - name: - - # Namespace of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - # +optional - namespace: - - # Specific resourceVersion to which this reference is - # made, if any. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - # +optional - resourceVersion: - - # UID of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - # +optional - uid: - - # TemplateRef is a reference to the template used to create - # the object in StampedRef - # +optional - templateRef: - - # API version of the referent. - # +optional - apiVersion: - - # If referring to a piece of an object instead of an - # entire object, this string should contain a valid - # JSON/Go field access statement, such as - # desiredState.manifest.containers[2]. For example, if the - # object reference is to a container within a pod, this - # would take on a value like: "spec.containers{name}" - # (where "name" refers to the name of the container that - # triggered the event) or if no container name is - # specified "spec.containers[2]" (container with index 2 - # in this pod). This syntax is chosen only to have some - # well-defined way of referencing a part of an object. - # TODO: this design is not final and this field is subject - # to change in the future. - # +optional - fieldPath: - - # Kind of the referent. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - # +optional - kind: - - # Name of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - # +optional - name: - - # Namespace of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - # +optional - namespace: - - # Specific resourceVersion to which this reference is - # made, if any. More info: - # https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - # +optional - resourceVersion: - - # UID of the referent. More info: - # https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - # +optional - uid: - - # SupplyChainRef is the Supply Chain resource that was used when - # this status was set. - # +optional - supplyChainRef: - apiVersion: - kind: - name: - namespace: diff --git a/site/content/docs/v0.3.0/examples.md b/site/content/docs/v0.3.0/examples.md deleted file mode 100644 index def4fdcff..000000000 --- a/site/content/docs/v0.3.0/examples.md +++ /dev/null @@ -1,5 +0,0 @@ -# Examples - -Check out the [examples directory] on our repository. - -[examples directory]: https://github.com/vmware-tanzu/cartographer/tree/main/examples diff --git a/site/content/docs/v0.3.0/img/blueprint.svg b/site/content/docs/v0.3.0/img/blueprint.svg deleted file mode 100644 index aa2b742f0..000000000 --- a/site/content/docs/v0.3.0/img/blueprint.svg +++ /dev/null @@ -1,503 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.3.0/img/delivery.jpg b/site/content/docs/v0.3.0/img/delivery.jpg deleted file mode 100644 index 220bd0dad..000000000 Binary files a/site/content/docs/v0.3.0/img/delivery.jpg and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/generic.jpg b/site/content/docs/v0.3.0/img/generic.jpg deleted file mode 100644 index 80349bfe8..000000000 Binary files a/site/content/docs/v0.3.0/img/generic.jpg and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/gitops.jpg b/site/content/docs/v0.3.0/img/gitops.jpg deleted file mode 100644 index 47b9171ee..000000000 Binary files a/site/content/docs/v0.3.0/img/gitops.jpg and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/multi-cluster.jpg b/site/content/docs/v0.3.0/img/multi-cluster.jpg deleted file mode 100644 index f15fedfd6..000000000 Binary files a/site/content/docs/v0.3.0/img/multi-cluster.jpg and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/owner.svg b/site/content/docs/v0.3.0/img/owner.svg deleted file mode 100644 index cc7480488..000000000 --- a/site/content/docs/v0.3.0/img/owner.svg +++ /dev/null @@ -1,305 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.3.0/img/ownership-flow.png b/site/content/docs/v0.3.0/img/ownership-flow.png deleted file mode 100644 index f74cb3cfa..000000000 Binary files a/site/content/docs/v0.3.0/img/ownership-flow.png and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/realize.jpg b/site/content/docs/v0.3.0/img/realize.jpg deleted file mode 100644 index f1904475c..000000000 Binary files a/site/content/docs/v0.3.0/img/realize.jpg and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/runnable/clusterruntemplate.svg b/site/content/docs/v0.3.0/img/runnable/clusterruntemplate.svg deleted file mode 100644 index 074bee4a8..000000000 --- a/site/content/docs/v0.3.0/img/runnable/clusterruntemplate.svg +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.3.0/img/runnable/runnable-new.jpg b/site/content/docs/v0.3.0/img/runnable/runnable-new.jpg deleted file mode 100644 index 283eaea86..000000000 Binary files a/site/content/docs/v0.3.0/img/runnable/runnable-new.jpg and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/runnable/runnable-outline.svg b/site/content/docs/v0.3.0/img/runnable/runnable-outline.svg deleted file mode 100644 index 6cd268939..000000000 --- a/site/content/docs/v0.3.0/img/runnable/runnable-outline.svg +++ /dev/null @@ -1,224 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.3.0/img/runnable/runnable-realize-new.jpg b/site/content/docs/v0.3.0/img/runnable/runnable-realize-new.jpg deleted file mode 100644 index 04c7f1640..000000000 Binary files a/site/content/docs/v0.3.0/img/runnable/runnable-realize-new.jpg and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/runnable/runnable-supplychain-new.jpg b/site/content/docs/v0.3.0/img/runnable/runnable-supplychain-new.jpg deleted file mode 100644 index 3d7fd60aa..000000000 Binary files a/site/content/docs/v0.3.0/img/runnable/runnable-supplychain-new.jpg and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/supplychain.png b/site/content/docs/v0.3.0/img/supplychain.png deleted file mode 100644 index eb94a98ef..000000000 Binary files a/site/content/docs/v0.3.0/img/supplychain.png and /dev/null differ diff --git a/site/content/docs/v0.3.0/img/template.svg b/site/content/docs/v0.3.0/img/template.svg deleted file mode 100644 index ea904a5ae..000000000 --- a/site/content/docs/v0.3.0/img/template.svg +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/site/content/docs/v0.3.0/img/tutorials/hello-world-nginx.png b/site/content/docs/v0.3.0/img/tutorials/hello-world-nginx.png deleted file mode 100644 index 227d9b12c..000000000 Binary files a/site/content/docs/v0.3.0/img/tutorials/hello-world-nginx.png and /dev/null differ diff --git a/site/content/docs/v0.3.0/install.md b/site/content/docs/v0.3.0/install.md deleted file mode 100644 index ce74ecec3..000000000 --- a/site/content/docs/v0.3.0/install.md +++ /dev/null @@ -1,50 +0,0 @@ -# Installing Cartographer - -## Prerequisites - -- Kubernetes cluster v1.19+ -- cert-manager, see [cert-manager Installation](https://cert-manager.io/docs/installation/) - -## Install - -1. Apply `cartographer.yaml` - - ```bash - kubectl apply -f https://github.com/vmware-tanzu/cartographer/releases/download/v0.3.0/cartographer.yaml - ``` - - Resources in file `cartographer.yaml`: - - ```console - Namespace Name Kind - (cluster) cartographer-cluster-admin ClusterRoleBinding - ^ cartographer-controller-admin ClusterRole - ^ clusterconfigtemplates.carto.run CustomResourceDefinition - ^ clusterdeliveries.carto.run CustomResourceDefinition - ^ clusterdeploymenttemplates.carto.run CustomResourceDefinition - ^ clusterimagetemplates.carto.run CustomResourceDefinition - ^ clusterruntemplates.carto.run CustomResourceDefinition - ^ clustersourcetemplates.carto.run CustomResourceDefinition - ^ clustersupplychains.carto.run CustomResourceDefinition - ^ clustersupplychainvalidator ValidatingWebhookConfiguration - ^ clustertemplates.carto.run CustomResourceDefinition - ^ deliverables.carto.run CustomResourceDefinition - ^ deliveryvalidator ValidatingWebhookConfiguration - ^ runnables.carto.run CustomResourceDefinition - ^ workloads.carto.run CustomResourceDefinition - - cartographer-system cartographer-controller Deployment - ^ cartographer-controller ServiceAccount - ^ cartographer-webhook Certificate - ^ cartographer-webhook Secret - ^ cartographer-webhook Service - ^ private-registry-credentials Secret - ^ selfsigned-issuer Issuer - ``` - -## Uninstall - -1. Delete `cartographer.yaml` - ```bash - kubectl delete -f https://github.com/vmware-tanzu/cartographer/releases/download/v0.3.0/cartographer.yaml - ``` diff --git a/site/content/docs/v0.3.0/multi-cluster.md b/site/content/docs/v0.3.0/multi-cluster.md deleted file mode 100644 index 2a0c0b227..000000000 --- a/site/content/docs/v0.3.0/multi-cluster.md +++ /dev/null @@ -1,36 +0,0 @@ -# Multi-Cluster - -## Overview - -It is often desirable to separate build and production environments; this can be achieved with multiple clusters. -Cartographer helps pave a path to production across clusters with -[ClusterSupplyChains](reference/workload.md#clustersupplychain) and -[ClusterDeliveries](reference/deliverable.md#clusterdelivery), leveraging [GitOps](https://www.gitops.tech/). - -A ClusterSupplyChain can be installed into an isolated build cluster to manage the path from source code to Kubernetes -configuration in a Git repository. Meanwhile, a ClusterDelivery can be installed in the production cluster, which will -pick up that configuration from the Git repository to be deployed and tested. This allows for the same artifact to be -promoted through multiple environments to first test/validate and finally run in production. - -## Examples - -### Example PR based flow - -0. Developer commits new source code -1. ClusterSupplyChain in the build cluster generates Kubernetes configuration and commits it to a git repository (i.e. - staging/feature-a) -2. "Staging environment maintainer" opens a PR and merges staging/feature-a into staging -3. ClusterDelivery in the staging cluster picks up the merged PR and deploys the Kubernetes configuration to be tested - and commits it to a git repository (i.e. production/feature-a) -4. "Production environment maintainer" opens a PR and merges production/feature-a into production -5. ClusterDelivery in the production cluster picks up the merged PR and deploys the Kubernetes configuration. - -![Multi-Cluster](../img/multi-cluster.jpg) - -### Basic example without PRs - -- [Supply Chain: Source ➡️ Image ➡️ Git](https://github.com/vmware-tanzu/cartographer/tree/main/examples/gitwriter-sc/README.md) - - This simple ClusterSupplyChain takes source code, builds an image, generates app configuration, and writes it to a - Git repository. -- [Delivery: Git ➡️ App](https://github.com/vmware-tanzu/cartographer/tree/main/examples/basic-delivery/README.md) - - This simple ClusterDelivery picks up app configuration from a Git repository and deploys to the cluster. diff --git a/site/content/docs/v0.3.0/reference/deliverable.md b/site/content/docs/v0.3.0/reference/deliverable.md deleted file mode 100644 index 736797cb9..000000000 --- a/site/content/docs/v0.3.0/reference/deliverable.md +++ /dev/null @@ -1,35 +0,0 @@ -# Deliverable and Delivery Custom Resources - -## Deliverable - -`Deliverable` allows the operator to pass information about the configuration to be applied to the environment to the -delivery. - -{{< crd carto.run_deliverables.yaml >}} - -Notes: - -1. labels serve as a way of indirectly selecting `ClusterDelivery` - -_ref: -[pkg/apis/v1alpha1/deliverable.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/deliverable.go)_ - -## ClusterDelivery - -A `ClusterDelivery` is a cluster-scoped resources that enables application operators to define a continuous delivery -workflow. Delivery is analogous to SupplyChain, in that it specifies a list of resources that are created when requested -by the developer. Early resources in the delivery are expected to configure the k8s environment (for example by -deploying an application). Later resources validate the environment is healthy. - -The SupplyChain resources `ClusterSourceTemplates` and `ClusterTemplates` are valid for delivery. Delivery additionally -has the resource `ClusterDeploymentTemplates`. Delivery can cast the values from a `ClusterSourceTemplate` so that they -may be consumed by a `ClusterDeploymentTemplate`. - -`ClusterDeliveries` specify the type of configuration they accept through the `spec.selector` field. `Deliverable`s with -matching `spec.selector` then create a logical delivery. This makes the values in the `Deliverable` available to all of -the resources in the `ClusterDelivery`s `spec.resources`. - -{{< crd carto.run_clusterdeliveries.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_delivery.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_delivery.go)_ diff --git a/site/content/docs/v0.3.0/reference/gvk.md b/site/content/docs/v0.3.0/reference/gvk.md deleted file mode 100644 index d72e6905f..000000000 --- a/site/content/docs/v0.3.0/reference/gvk.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -aliases: - - /docs/development/reference/ ---- - -# GVK - -## Version - -All of the custom resources that Cartographer is working on are being written under `v1alpha1` to indicate that our -first version of it is at the "alpha stability level", and that it's our first iteration on it. - -See -[Versions in CustomResourceDefinitions](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/) - -## Group - -All of our custom resources under the `carto.run` group. - -For instance: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -``` diff --git a/site/content/docs/v0.3.0/reference/runnable.md b/site/content/docs/v0.3.0/reference/runnable.md deleted file mode 100644 index 1f090b051..000000000 --- a/site/content/docs/v0.3.0/reference/runnable.md +++ /dev/null @@ -1,36 +0,0 @@ -# Runnable Custom Resources - -## Runnable - -A `Runnable` object declares the intention of having immutable objects submitted to Kubernetes according to a template ( -via ClusterRunTemplate) whenever any of the inputs passed to it changes. i.e., it allows us to provide a mutable spec -that drives the creation of immutable objects whenever that spec changes. - -{{< crd carto.run_runnables.yaml >}} - -## ClusterRunTemplate - -A `ClusterRunTemplate` defines how an immutable object should be stamped out based on data provided by a `Runnable`. - -{{< crd carto.run_clusterruntemplates.yaml >}} - -ClusterRunTemplate differs from supply chain templates in many aspects: - -- ClusterRunTemplate cannot be referenced directly by a ClusterSupplyChain object (it can only be reference by a - Runnable) - -- `outputs` provide a free-form way of exposing any form of results from what has been run (i.e., submitted by the - Runnable) to the status of the Runnable object (as opposed to typed "source", "image", and "config" from supply - chains) - -- Templating context (values provided to the interpolation) is specific to the Runnable: the runnable object itself and - the object resulting from the selection query. - -- Templated object metadata.name should not be set. differently from ClusterSupplyChain, a Runnable has the semantics of - creating new objects on change, rather than patching. This means that on every input set change, a new name must be - derived. To be sure that a name can always be generated, `metadata.generateName` should be set rather than - `metadata.name`. - -Similarly to other templates, ClusterRunTemplate has a `template` field where data is taken (in this case, from Runnable -and selected objects via `runnable.spec.selector`) and via `$()$` allows one to interpolate such data to form a final -object. diff --git a/site/content/docs/v0.3.0/reference/template.md b/site/content/docs/v0.3.0/reference/template.md deleted file mode 100644 index 3b0ca5680..000000000 --- a/site/content/docs/v0.3.0/reference/template.md +++ /dev/null @@ -1,73 +0,0 @@ -# Template Custom Resources - -## ClusterSourceTemplate - -`ClusterSourceTemplate` indicates how the supply chain could instantiate an object responsible for providing source -code. - -The `ClusterSourceTemplate` requires definition of a `urlPath` and `revisionPath`. `ClusterSourceTemplate` will update -its status to emit `url` and `revision` values, which are reflections of the values at the path on the created objects. -The supply chain may make these values available to other resources. - -{{< crd carto.run_clustersourcetemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_source_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_source_template.go)_ - -## ClusterImageTemplate - -`ClusterImageTemplate` instructs how the supply chain should instantiate an object responsible for supplying container -images, for instance, one that takes source code, builds a container image out of it. - -The `ClusterImageTemplate` requires definition of an `imagePath`. `ClusterImageTemplate` will update its status to emit -an `image` value, which is a reflection of the value at the path on the created object. The supply chain may make this -value available to other resources. - -{{< crd carto.run_clusterimagetemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_image_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_image_template.go)_ - -## ClusterConfigTemplate - -Instructs the supply chain how to instantiate a Kubernetes object that knows how to make Kubernetes configurations -available to further resources in the chain. - -The `ClusterConfigTemplate` requires definition of a `configPath`. `ClusterConfigTemplate` will update its status to -emit a `config` value, which is a reflection of the value at the path on the created object. The supply chain may make -this value available to other resources. - -{{< crd carto.run_clusterconfigtemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_config_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_config_template.go)_ - -## ClusterDeploymentTemplate - -A `ClusterDeploymentTemplate` indicates how the delivery should configure the environment (namespace/cluster). - -The `ClusterDeploymentTemplate` consumes configuration from the `deployment` values provided by the `ClusterDelivery`. -The `ClusterDeploymentTemplate` outputs these same values. The `ClusterDeploymentTemplate` is able to consume additional -configuration from the `sources` provided by the `ClusterDelivery`. - -`ClusterDeploymentTemplate` must specify criteria to determine whether the templated object has successfully completed -its role in configuring the environment. Once the criteria are met, the `ClusterDeploymentTemplate` will output the -`deployment` values. The criteria may be specified in `spec.observedMatches` or in `spec.observedCompletion`. - -{{< crd carto.run_clusterdeploymenttemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_deployment_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_deployment_template.go)_ - -## ClusterTemplate - -A `ClusterTemplate` instructs the supply chain to instantiate a Kubernetes object that has no outputs to be supplied to -other objects in the chain, for instance, a resource that deploys a container image that has been built by other -ancestor resources. - -The `ClusterTemplate` does not emit values to the supply chain. - -{{< crd carto.run_clustertemplates.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_template.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_template.go)_ diff --git a/site/content/docs/v0.3.0/reference/workload.md b/site/content/docs/v0.3.0/reference/workload.md deleted file mode 100644 index 874bfa31a..000000000 --- a/site/content/docs/v0.3.0/reference/workload.md +++ /dev/null @@ -1,31 +0,0 @@ -# Workload and Supply Chain Custom Resources - -## Workload - -`Workload` allows the developer to pass information about the app to be delivered through the supply chain. - -{{< crd carto.run_workloads.yaml >}} - -Notes: - -1. labels serve as a way of indirectly selecting `ClusterSupplyChain` - `Workload`s without labels that match a - `ClusterSupplyChain`'s `spec.selector` won't be reconciled and will stay in an `Errored` state. -2. `spec.image` is useful for enabling workflows that are not based on building the container image from within the - supplychain, but outside. - -_ref: -[pkg/apis/v1alpha1/workload.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/workload.go)_ - -## ClusterSupplyChain - -With a `ClusterSupplyChain`, app operators describe which "shape of applications" they deal with (via `spec.selector`), -and what series of resources are responsible for creating an artifact that delivers it (via `spec.resources`). - -Those `Workload`s that match `spec.selector` then go through the resources specified in `spec.resources`. - -A resource can emit values, which the supply chain can make available to other resources. - -{{< crd carto.run_clustersupplychains.yaml >}} - -_ref: -[pkg/apis/v1alpha1/cluster_supply_chain.go](https://github.com/vmware-tanzu/cartographer/tree/main/pkg/apis/v1alpha1/cluster_supply_chain.go)_ diff --git a/site/content/docs/v0.3.0/runnable/architecture.md b/site/content/docs/v0.3.0/runnable/architecture.md deleted file mode 100644 index 7d111459a..000000000 --- a/site/content/docs/v0.3.0/runnable/architecture.md +++ /dev/null @@ -1,98 +0,0 @@ -# Architecture and Concepts - -## Overview - -Runnable is a component of Cartographer. The `Runnable` CRD provides an intermediate layer to update immutable -resources. For example, Tekton does not allow updating TaskRuns and PipelineRuns, so we'll update Runnable to test new -commits. - -## Concepts - -[comment]: <> (### Edge vs level-driven triggers) [comment]: <> (TODO) - -### ClusterRunTemplate - -With the addition of Runnable, there is a new template, `ClusterRunTemplate`. A `ClusterRunTemplate` will _always_ -create resources (i.e. `kubectl create`). - -ClusterRunTemplate consists of: - -- The Kubernetes resource yaml as `spec.template` -- **Output paths** which tell Cartographer where to find the output of the Kubernetes resource - - The outputs will be added to `runnable.status.outputs` - -{{< figure src="../../img/runnable/clusterruntemplate.svg" alt="Template" width="400px" >}} - -### Runnable - -Runnables consist of: - -- **RunTemplateRef**: a reference to a `ClusterRunTemplate` which contains the yaml of the immutable resource to be - created -- **Selector**: used to dynamically discover a resource that is needed in the `ClusterRunTemplate`. The matching - resource is available in the template data as `selected`. -- **Inputs**: arbitrary key, value pairs that are passed along to the `ClusterRunTemplate`. - -{{< figure src="../../img/runnable/runnable-outline.svg" alt="Runnable" width="400px" >}} - -### Template Data - -See [Template Data](../../templating#template-data) for templating in Cartographer. - -The ClusterRunTemplate is provided a data structure that contains: - -- runnable -- selected - -#### Runnable - -The entire Runnable resource is available for retrieving values. To use a Runnable value, use the format: - -- **Simple template**: `$(runnable..(...))$` -- **ytt**: not currently supported, see [issue](https://github.com/vmware-tanzu/cartographer/issues/214) - -**Runnable Examples** - -| Simple template | ytt | -| ---------------------------- | --- | -| `$(runnable.metadata.name)$` | N/A | -| `$(runnable.spec.inputs)$` | N/A | - -#### Selected - -The entire selected resource is available for retrieving values. To use selected value, use the format: - -- **Simple template**: `$(selected..(...))$` -- **ytt**: not currently supported, see [issue](https://github.com/vmware-tanzu/cartographer/issues/214) - -**Selected Examples** - -| Simple template | ytt | -| ---------------------------- | --- | -| `$(selected.metadata.name)$` | N/A | - -## Theory of Operation - -When Cartographer reconciles a Runnable, the resource in the specified `ClusterRunTemplate` is applied: - -1. **Resolve Selector**: attempt to find a resource that matches the selector -2. **Generate and apply resource spec**: Apply the result of interpolating `spec.template` in the `ClusterRunTemplate`, - **selected**, and the **runnable spec**. -3. **Retrieve Output**: The output to use is specified in the **template output path** - 1. Get the output from the most recently created resource, where - `status.conditions[?(@.type=="Succeeded")].status == True`. - 2. Store the output in `runnable.status.outputs`. - -![Realize](../../img/runnable/runnable-realize-new.jpg) - - - -## Runnable In Action - -![Runnable](../../img/runnable/runnable-new.jpg) - -### Using Runnable with a Supply Chain - -![Runnable-SupplyChain](../../img/runnable/runnable-supplychain-new.jpg) - -To see an example of the rest of the supply chain, see [ClusterSupplyChain](../architecture#clustersupplychain). diff --git a/site/content/docs/v0.3.0/style-guide.md b/site/content/docs/v0.3.0/style-guide.md deleted file mode 100644 index eb96b0d15..000000000 --- a/site/content/docs/v0.3.0/style-guide.md +++ /dev/null @@ -1,392 +0,0 @@ -_This style guide is adapted from the -[Velero Style Guide](https://github.com/vmware-tanzu/velero/blob/main/site/content/docs/v1.6/style-guide.md)._ - -This page outlines writing style guidelines for the Cartographer documentation and you should use this page as a -reference you write or edit content. Note that these are guidelines, not rules. Use your best judgment as you write -documentation, and feel free to propose changes to these guidelines. Changes to the style guide are made by the -Cartographer maintainers as a group. To propose a change or addition create an issue/PR. - -## Content best practices - -### Use present tense - -{{< table caption="Do and Don't - Use present tense" >}} - -| Do | Don't | -| ------------------------------ | -------------------------------- | -| This `command` starts a proxy. | This command will start a proxy. | - -{{< /table >}} - -Exception: Use future or past tense if it is required to convey the correct meaning. - -### Use active voice - -{{< table caption="Do and Don't - Use active voice" >}} - -| Do | Don't | -| ------------------------------------------ | ------------------------------------------------ | -| You can explore the API using a browser. | The API can be explored using a browser. | -| The YAML file specifies the replica count. | The replica count is specified in the YAML file. | - -{{< /table >}} - -Exception: Use passive voice if active voice leads to an awkward sentence construction. - -### Use simple and direct language - -Use simple and direct language. Avoid using unnecessary phrases, such as saying "please." - -{{< table caption="Do and Don't - Use simple and direct language" >}} - -| Do | Don't | -| --------------------------- | -------------------------------------------- | -| To create a ReplicaSet, ... | In order to create a ReplicaSet, ... | -| See the configuration file. | Please see the configuration file. | -| View the Pods. | With this next command, we'll view the Pods. | - -{{< /table >}} - -### Address the reader as "you" - -{{< table caption="Do and Don't - Addressing the reader" >}} - -| Do | Don't | -| --------------------------------------- | --------------------------------------- | -| You can create a Deployment by ... | We'll create a Deployment by ... | -| In the preceding output, you can see... | In the preceding output, we can see ... | - -{{< /table >}} - -### Avoid Latin phrases - -Prefer English terms over Latin abbreviations. - -{{< table caption="Do and Don't - Avoid Latin phrases" >}} - -| Do | Don't | -| ---------------- | --------- | -| For example, ... | e.g., ... | -| That is, ... | i.e., ... | - -{{< /table >}} - -Exception: Use "etc." for et cetera. - -## Patterns to avoid - -### Avoid using "we" - -Using "we" in a sentence can be confusing, because the reader might not know whether they're part of the "we" you're -describing. - -{{< table caption="Do and Don't - Avoid using we" >}} - -| Do | Don't | -| ----------------------------------------- | ----------------------------------------------- | -| Version 1.4 includes ... | In version 1.4, we have added ... | -| Kubernetes provides a new feature for ... | We provide a new feature ... | -| This page teaches you how to use Pods. | In this page, we are going to learn about Pods. | - -{{< /table >}} - -### Avoid jargon and idioms - -Many readers speak English as a second language. Avoid jargon and idioms to help them understand better. - -{{< table caption="Do and Don't - Avoid jargon and idioms" >}} - -| Do | Don't | -| --------------------- | ---------------------- | -| Internally, ... | Under the hood, ... | -| Create a new cluster. | Turn up a new cluster. | - -{{< /table >}} - -### Avoid statements about the future or that will soon be out of date - -Avoid making promises or giving hints about the future. If you need to talk about a beta feature, put the text under a -heading that identifies it as beta information. - -Also avoid words like “recently”, "currently" and "new." A feature that is new today might not be considered new in a -few months. - -{{< table caption="Do and Don't - Avoid statements that will soon be out of date" >}} - -| Do | Don't | -| ----------------------------------- | --------------------------------------- | -| In version 1.4, ... | In the current version, ... | -| The Federation feature provides ... | The new Federation feature provides ... | - -{{< /table >}} - -### Language - -This documentation uses U.S. English spelling and grammar. - -## Documentation formatting standards - -### Use camel case for API objects - -When you refer to an API object, use the same uppercase and lowercase letters that are used in the actual object name. -Typically, the names of API objects use [camel case](https://en.wikipedia.org/wiki/Camel_case). - -Don't split the API object name into separate words. For example, use PodTemplateList, not Pod Template List. - -Refer to API objects without saying "object," unless omitting "object" leads to an awkward sentence construction. - -{{< table caption="Do and Don't - Do and Don't - API objects" >}} - -| Do | Don't | -| -------------------------------------------- | -------------------------------------------- | -| The Pod has two containers. | The pod has two containers. | -| The Deployment is responsible for ... | The Deployment object is responsible for ... | -| A PodList is a list of Pods. | A Pod List is a list of pods. | -| The two ContainerPorts ... | The two ContainerPort objects ... | -| The two ContainerStateTerminated objects ... | The two ContainerStateTerminateds ... | - -{{< /table >}} - -### Use angle brackets for placeholders - -Use angle brackets for placeholders. Tell the reader what a placeholder represents. - -1. Display information about a Pod: - - kubectl describe pod -n - - If the pod is in the default namespace, you can omit the '-n' parameter. - -### Use bold for user interface elements - -{{< table caption="Do and Don't - Bold interface elements" >}} - -| Do | Don't | -| ----------------- | --------------- | -| Click **Fork**. | Click "Fork". | -| Select **Other**. | Select "Other". | - -{{< /table >}} - -### Use italics to define or introduce new terms - -{{< table caption="Do and Don't - Use italics for new terms" >}} - -| Do | Don't | -| ------------------------------------------ | -------------------------------------------- | -| A _cluster_ is a set of nodes ... | A "cluster" is a set of nodes ... | -| These components form the _control plane_. | These components form the **control plane**. | - -{{< /table >}} - -### Use code style for filenames, directories, paths, object field names and namespaces - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| -------------------------------------- | ------------------------------------ | -| Open the `envars.yaml` file. | Open the envars.yaml file. | -| Go to the `/docs/tutorials` directory. | Go to the /docs/tutorials directory. | -| Open the `/_data/concepts.yaml` file. | Open the /\_data/concepts.yaml file. | - -{{< /table >}} - -### Use punctuation inside quotes - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| events are recorded with an associated "stage." | events are recorded with an associated "stage". | -| The copy is called a "fork." | The copy is called a "fork". | - -{{< /table >}} - -Exception: When the quoted word is a user input. - -Example: - -- My user ID is “IM47g”. -- Did you try the password “mycatisawesome”? - -## Inline code formatting - -### Use code style for inline code and commands - -For inline code in an HTML document, use the `` tag. In a Markdown document, use the backtick (`` ` ``). - -{{< table caption="Do and Don't - Use code style for filenames, directories, paths, object field names and namespaces" >}} - -| Do | Don't | -| ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | -| The `kubectl run` command creates a Deployment. | The "kubectl run" command creates a Deployment. | -| For declarative management, use `kubectl apply`. | For declarative management, use "kubectl apply". | -| Use single backticks to enclose inline code. For example, `var example = true`. | Use two asterisks (`**`) or an underscore (`_`) to enclose inline code. For example, **var example = true**. | -| Use triple backticks (\`\`\`) before and after a multi-line block of code for fenced code blocks. | Use multi-line blocks of code to create diagrams, flowcharts, or other illustrations. | -| Use meaningful variable names that have a context. | Use variable names such as 'foo','bar', and 'baz' that are not meaningful and lack context. | -| Remove trailing spaces in the code. | Add trailing spaces in the code, where these are important, because a screen reader will read out the spaces as well. | - -{{< /table >}} - -### Starting a sentence with a component tool or component name - -{{< table caption="Do and Don't - Starting a sentence with a component tool or component name" >}} - -| Do | Don't | -| ------------------------------------------------------------------- | --------------------------------------------------------------- | -| The `kubeadm` tool bootstraps and provisions machines in a cluster. | `kubeadm` tool bootstraps and provisions machines in a cluster. | -| The kube-scheduler is the default scheduler for Kubernetes. | kube-scheduler is the default scheduler for Kubernetes. | - -{{< /table >}} - -### Use normal style for string and integer field values - -For field values of type string or integer, use normal style without quotation marks. - -{{< table caption="Do and Don't - Use normal style for string and integer field values" >}} - -| Do | Don't | -| ----------------------------------------------- | ----------------------------------------------- | -| Set the value of `imagePullPolicy` to `Always`. | Set the value of `imagePullPolicy` to "Always". | -| Set the value of `image` to `nginx:1.16`. | Set the value of `image` to nginx:1.16. | -| Set the value of the `replicas` field to `2`. | Set the value of the `replicas` field to 2. | - -{{< /table >}} - -## Code snippet formatting - -### Don't include the command prompt - -{{< table caption="Do and Don't - Don't include the command prompt" >}} - -| Do | Don't | -| ---------------- | ------------------ | -| kubectl get pods | $ kubectl get pods | - -{{< /table >}} - -### Separate commands from output - -Verify that the Pod is running on your chosen node: - -``` -kubectl get pods --output=wide -``` - -The output is similar to this: - -``` -NAME READY STATUS RESTARTS AGE IP NODE -nginx 1/1 Running 0 13s 10.200.0.4 worker0 -``` - -## Cartographer word list - -A list of Cartographer-specific terms and words to be used consistently across the site. - -{{< table caption="Cartographer word list" >}} - -| Trem | Usage | -| ------------ | ------------------------------------------------------------------ | -| Kubernetes | Kubernetes should always be capitalized. | -| Docker | Docker should always be capitalized. | -| Cartographer | Cartographer should always be capitalized. | -| VMware | VMware should always be correctly capitalized. | -| On-premises | On-premises or on-prem rather than on-premise or other variations. | -| Backup | Backup rather than back up, back-up or other variations. | -| Plugin | Plugin rather than plug-in or other variations. | -| Allowlist | Use allowlist instead of whitelist. | -| Denylist | Use denylist instead of blacklist. | - -{{< /table >}} - -## Markdown elements - -### Headings - -People accessing this documentation may use a screen reader or other assistive technology (AT). -[Screen readers](https://en.wikipedia.org/wiki/Screen_reader) are linear output devices, they output items on a page one -at a time. If there is a lot of content on a page, you can use headings to give the page an internal structure. A good -page structure helps all readers to easily navigate the page or filter topics of interest. - -{{< table caption="Do and Don't - Headings" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | -| Include a title on each page or blog post. | Include more than one title headings (#) in a page. | -| Use ordered headings to provide a meaningful high-level outline of your content. | Use headings level 4 through 6, unless it is absolutely necessary. If your content is that detailed, it may need to be broken into separate articles. | -| Use sentence case for headings. For example, **Extend kubectl with plugins** | Use title case for headings. For example, **Extend Kubectl With Plugins** | - -{{< /table >}} - -### Paragraphs - -{{< table caption="Do and Don't - Paragraphs" >}} - -| Do | Don't | -| -------------------------------------------------------------------------------------- | ------------------------------------ | -| Try to keep paragraphs under 6 sentences. | Write long-winded paragraphs. | -| Use three hyphens (`---`) to create a horizontal rule for breaks in paragraph content. | Use horizontal rules for decoration. | - -{{< /table >}} - -### Links - -{{< table caption="Do and Don't - Links" >}} - -| Do | Don't | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | -| Write hyperlinks that give you context for the content they link to. For example: Certain ports are open on your machines. See [check required ports](#check-required-ports) for more details. | Use ambiguous terms such as “click here”. For example: Certain ports are open on your machines. See [here](#check-required-ports) for more details. | -| Write Markdown-style links: `[link text](URL)`. For example: `[community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA)` and the output is [community meeting agenda](https://hackmd.io/Jq6F5zqZR7S80CeDWUklkA). | Write HTML-style links: `Visit our tutorial!` | - -{{< /table >}} - -### Lists - -Group items in a list that are related to each other and need to appear in a specific order or to indicate a correlation -between multiple items. When a screen reader comes across a list—whether it is an ordered or unordered list—it will be -announced to the user that there is a group of list items. The user can then use the arrow keys to move up and down -between the various items in the list. Website navigation links can also be marked up as list items; after all they are -nothing but a group of related links. - -- End each item in a list with a period if one or more items in the list are complete sentences. For the sake of - consistency, normally either all items or none should be complete sentences. - -- Ordered lists that are part of an incomplete introductory sentence can be in lowercase and punctuated as if each item - was a part of the introductory sentence. - -- Use the number one (`1.`) for ordered lists. - -- Use (`+`), (`*`), or (`-`) for unordered lists - be consistent within the same document. - -- Leave a blank line after each list. - -- Indent nested lists with four spaces (for example, ⋅⋅⋅⋅). - -- List items may consist of multiple paragraphs. Each subsequent paragraph in a list item must be indented by either - four spaces or one tab. - -### Tables - -The semantic purpose of a data table is to present tabular data. Sighted users can quickly scan the table but a screen -reader goes through line by line. A table [caption](https://www.w3schools.com/tags/tag_caption.asp) is used to create a -descriptive title for a data table. Assistive technologies (AT) use the HTML table caption element to identify the table -contents to the user within the page structure. - -If you need to create a table, create the table in markdown and use the table -[Hugo shortcode](https://gohugo.io/content-management/shortcodes/) to include a caption. - -``` -{{}} - -| Parameter | Description | Default | -|:---------|:------------|:------- | -| `timeout` | The timeout for requests | `30s` | -| `logLevel` | The log level for log output | `INFO` | - -{{< /table */>}} - -``` - -**Note:** This shortcode does not support markdown reference-style links. Use inline-style links in tables. See more -information about [markdown link styles](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#links). diff --git a/site/content/docs/v0.3.0/templating.md b/site/content/docs/v0.3.0/templating.md deleted file mode 100644 index 4ea0d8535..000000000 --- a/site/content/docs/v0.3.0/templating.md +++ /dev/null @@ -1,234 +0,0 @@ -# Templating - -There are two options for templating in Cartographer, simple templates and ytt: - -## Simple Templates - -Define simple templates in `spec.template` in [Templates](./reference/template) - -Simple templates provide string interpolation in a `$(...)$` tag with -[jsonpath](https://pkg.go.dev/k8s.io/client-go/util/jsonpath) syntax. - -## ytt - -Define [ytt](https://carvel.dev/ytt/) templates in `spec.ytt` in [Templates](./reference/template) - -[ytt](https://carvel.dev/ytt/) is complete YAML aware templating language. - -Use `ytt` when your templates contain complex logic, such as **conditionals** or **looping over collections**. - -## Template Data - -Both options for templating are provided a data structure that contains: - -- owner resource (workload, deliverable) -- inputs, that are specified in the blueprint for the template (sources, images, configs, deployments) -- parameters - -Note: all `ytt` examples assume you have loaded the data module with `#@ load("@ytt:data", "data")`. - -### Owner - -The entire owner resource is available for retrieving values. To use an owner value, use the format: - -- **Simple template**: `$(..(...))$` -- **ytt**: `#@ data.values...(...)` - -#### Owner Examples - -| Simple template | ytt | -| --------------------------------- | -------------------------------------------- | -| `$(workload.metadata.name)$` | `#@ data.values.workload.metadata.name` | -| `$(deliverable.spec.source.url)$` | `#@ data.values.deliverable.spec.source.url` | - -### Inputs - -The template specifies the inputs required in the blueprint. - -You may specify a combination of one or more of these input types: - -| Input type | Accessor | -| ----------- | ----------------------------------------------------------- | -| sources | `sources..url`, `sources..revision` | -| images | `images.` | -| configs | `configs.` | -| deployments | `sources..url`, `sources..revision` | - -Where the `` corresponds to the `spec.resources[].[].name` expected in -the blueprint. - -Specifying inputs in a template: - -- **Simple template**: `$(.(.))$` -- **ytt**: `#@ data.values..(.)` - -#### Inputs Examples - -Given a supply chain where a resource has multiple sources and a config: - -```yaml ---- -spec: - resources: - - name: my-template - sources: - - resource: source-tester - name: tested - - resource: source-original - name: original - configs: - - resource: configurator - name: app-configuration -``` - -They could be used in the template as follows: - -| Simple template | ytt | -| ------------------------------- | ------------------------------------------ | -| `$(sources.original.url)$` | `#@ data.values.sources.original.url` | -| `$(sources.tested.revision)$` | `#@ data.values.sources.tested.revision` | -| `$(configs.app-configuration)$` | `#@ data.values.configs.app-configuration` | - -#### Input Aliases - -If only one input of a given input-type is required, refer to it in the singular and omit the input-name. - -- **Simple template**: `$(.)$` -- **ytt**: `#@ data.values.(.)` - -#### Input Alias Examples - -Given a supply chain where a resource has a single source and a single config: - -```yaml ---- -spec: - resources: - - name: my-template - sources: - - resource: source-original - name: original - configs: - - resource: configurator - name: app-configuration -``` - -They could be used in the template as follows: - -| Simple template | ytt | -| --------------------- | -------------------------------- | -| `$(source.url)$` | `#@ data.values.source.url` | -| `$(source.revision)$` | `#@ data.values.source.revision` | -| `$(config)$` | `#@ data.values.config` | - -### Parameters - -See [Parameter Hierarchy](architecture#parameter-hierarchy) for more information on the precedence of parameters for -owner, blueprint and templates. - -To use a parameter in the template, use the format: - -- **Simple template**: `$(params.)$` -- **ytt**: `data.values.params.` - -#### Parameter Example - -| Simple template | ytt | -| ------------------------- | ------------------------------------ | -| `$(params.image_prefix)$` | `#@ data.values.params.image_prefix` | - -## Complete Examples - -### Simple Template - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - params: - - name: image_prefix - default: projectcartographer/demo- - - imagePath: .status.latestImage - - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: service-account - builder: - kind: ClusterBuilder - name: go-builder - source: - blob: - url: $(sources.source.url)$ - build: - env: $(workload.spec.build.env)$ -``` - -### ytt - -```yaml ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - imagePath: .status.latestImage - params: - - name: serviceAccount - default: default - - name: clusterBuilder - default: default - - name: registry - default: {} - ytt: | - #@ load("@ytt:data", "data") - - #@ def image(): - #@ return "/".join([ - #@ data.values.params.registry.server, - #@ data.values.params.registry.repository, - #@ "-".join([ - #@ data.values.workload.metadata.name, - #@ data.values.workload.metadata.namespace, - #@ ]) - #@ ]) - #@ end - - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: #@ data.values.workload.metadata.name - labels: - app.kubernetes.io/component: build - #@ if/end hasattr(data.values.workload.metadata, "labels") and hasattr(data.values.workload.metadata.labels, "app.kubernetes.io/part-of"): - app.kubernetes.io/part-of: #@ data.values.workload.metadata.labels["app.kubernetes.io/part-of"] - spec: - tag: #@ image() - serviceAccountName: #@ data.values.params.serviceAccount - builder: - kind: ClusterBuilder - name: #@ data.values.params.clusterBuilder - source: - blob: - url: #@ data.values.source.url - #@ if/end hasattr(data.values.workload.spec.source, "subPath"): - subPath: #@ data.values.workload.spec.source.subPath - build: - env: - - name: BP_OCI_SOURCE - value: #@ data.values.source.revision - #@ if hasattr(data.values.workload.spec.build, "env"): - #@ for var in data.values.workload.spec.build.env: - - name: #@ var.name - value: #@ var.value - #@ end - #@ end -``` diff --git a/site/content/docs/v0.3.0/troubleshooting.md b/site/content/docs/v0.3.0/troubleshooting.md deleted file mode 100644 index 4cbf3b9f6..000000000 --- a/site/content/docs/v0.3.0/troubleshooting.md +++ /dev/null @@ -1,140 +0,0 @@ -# Troubleshooting - -## Reading your workload or deliverable status - -Cartographer makes every effort to provide you with useful information in the `status` field of your `workload` or -`deliverable` object. - -To see the status of your workload: - -```bash -kubectl get workload -n -oyaml -``` - -**Note**: We do not recommend `kubectl describe` as it makes statuses harder to read. - -Take a look at the `status:` section for conditions. E.g.: - -```yaml -status: - conditions: - - type: SupplyChainReady - status: True - reason: Ready - - type: ResourcesSubmitted - status: True - reason: Ready - - type: Ready - status: True - reason: Ready -``` - -## Common status conditions - -Cartographer conditions follow the -[Kubernetes API conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties) - -There is a top level condition of `Type: Ready` which can have a `Status` of `Unknown`, `True` or `False`. - -If your workload or deliverable has a `False` or a `Unknown` condition, inspect the conditions for cause. The -`Type: Ready` condition's `Reason` will match that of the sub-condition causing the negative status. - -### Unknown vs. False - -A status of `False` typically means Cartographer can not proceed until user intervention occurs. These are errors in -configuration. - -A status of `Unknown` indicates that resources have not yet resolved. Causes can include network timeouts, long running -processes, and occasionally a misconfiguration that Cartographer cannot itself detect. - -### MissingValueAtPath - -| Type | Status | Occurs In | -| ------------------ | ------------------ | --------------------- | -| ResourcesSubmitted | MissingValueAtPath | Workload, Deliverable | - -This is the most common `Unknown` state. - -```yaml -status: - conditions: - - type: SupplyChainReady - status: True - reason: Ready - - type: ResourcesSubmitted - status: Unknown - reason: MissingValueAtPath - message: - Waiting to read value [.status.latestImage] from resource [images.kpack.io/cool-app] in namespace [default] - - type: Ready - status: Unknown - reason: MissingValueAtPath -``` - -You will see this as part of normal operation, because a [Blueprint Resource](architecture.md/#blueprints) is applied to -your cluster, however the [output path](architecture.md/#templates) is not populated. - -If your `workload` or `deliverable` are taking a long time to become ready, then there might be an issue with the -**resource** or the **output path** - -The `message:` for `ResourcesSubmitted` will help you locate the resource causing issues. - -The most likely cause for this status is that the resource is unable to populate the specified path. Look at the -resource's status to diagnose the cause. - -#### Resolving MissingValueAtPath when the resource is failing: - -First look at the resource itself: - -```bash -kubectl describe images.kpack.io/cool-app -n default -``` - -You will see that the value at path `.status.latestImage` is not populated. Check the status and events of the resource, -consulting the documentation for the specific resource. - -#### Resolving MissingValueAtPath when the path is incorrect: - -Refer to the template specified resource's documentation for the location of the required output. - -For example, given the message - -``` -Waiting to read value [.status.latestImg] from resource [images.kpack.io/cool-app] in namespace [default] -``` - -- Look at the resources status, that's the most likely place you'll find the output you want - -```bash -kubectl get images.kpack.io/cool-app -n default -oyaml` - -... -status: - buildCounter: 5 - conditions: - - lastTransitionTime: "2021-11-09T03:16:54Z" - status: "True" - type: Ready - - lastTransitionTime: "2021-11-09T03:16:54Z" - status: "True" - type: BuilderReady - latestBuildImageGeneration: 2 - latestBuildReason: STACK - latestBuildRef: tanzu-java-web-app-build-5 - latestImage: myrepo.io/tanzu-java-web-app@sha256:a92eafaf8a2e5ec306be44e29c9c5e0696bf2c6517b4627be1580c2d16f2ddb9 - latestStack: io.buildpacks.stacks.bionic - observedGeneration: 2 -``` - -- Change the **output path** of the template to match, E.g: from `.status.latestImg` to `.status.latestImage` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: kpack-template -spec: - imagePath: .status.latestImage -``` - -[comment]: <> (## Viewing your supply chain or delivery instances) diff --git a/site/content/docs/v0.3.0/tutorials/extending-a-supply-chain.md b/site/content/docs/v0.3.0/tutorials/extending-a-supply-chain.md deleted file mode 100644 index a9cf1fe4b..000000000 --- a/site/content/docs/v0.3.0/tutorials/extending-a-supply-chain.md +++ /dev/null @@ -1,503 +0,0 @@ -# Extending a Supply Chain (_or_ Multiple Templates in a Supply Chain) - -## Overview - -So far our supply chains have been a bit anemic, single step affairs. In this tutorial we’ll explore two topics: - -- Adding new templates to an existing supply chain -- Passing information from one object created by a template to the template about to create another object - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer and -[kpack](https://buildpacks.io/docs/tools/kpack/) installed. You can find -[Cartographer's installation instructions here](https://github.com/vmware-tanzu/cartographer#installation) and -[kpack's installation instructions can be found here](https://github.com/pivotal/kpack/blob/main/docs/install.md). - -You will also need an image registry for which you have read and write permission. - -Alternatively, you may choose to use the -[./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script to install a kind cluster -with Cartographer, kpack and a local registry. _This script is meant for our end-to-end testing and while we rely on it -working in that role, no user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest example-dependencies -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -### App Operator Steps - -#### Supply Chain - -We’ll start by considering the supply chain from our [“Build Your First Supply Chain"](first-supply-chain.md) tutorial: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supply-chain -spec: - selector: - workload-type: pre-built - - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy -``` - -Let’s think through what we want to change here. We know that we’re going to create a new step, so we’ll need a new -resource. This step is going to build an image, so it will come before the existing step that creates a deployment of -the image. For readability we’ll list the new resource before the current `deploy` resource. We’ll give the resource a -reasonable name. So far our `.spec.resources` will look like this: - - -```yaml - resources: - - name: build-image - templateRef: - kind: ??? - Name: ??? - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy -``` - - -So far we’ve only seen the template kind ClusterTemplate. But now we want to template an object that will pass -information to further templates in the supply chain. Cartographer expects three different types of information to be -passed through a supply chain. There are subsequently three template types that expose information to later resources in -a supply chain: - -- ClusterSourceTemplates expose location of source code -- ClusterImageTemplates expose location of images -- ClusterConfigTemplates expose yaml specification of k8s objects - -(Documentation of these custom resources [can be found here](../reference/template/)) - -In our scenario, we know that we’re going to template some object that will take the location of source code from the -workload, build an image and then we’ll want to share the location of that image with the next object in the supply -chain. As we want to expose the location of an image to the supply chain, we’ll use the ClusterImageTemplate and we’ll -give it a reasonable name. Our supply chain .spec.resources now looks like this: - - -```yaml - resources: - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy -``` - - -There’s one more addition we must make to the resources. While the build-image step will make information available for -consumption, we need to explicitly indicate that the deploy step will consume that information. We’ll do so by adding an -images field to that step. We’ll refer to the resource providing an image and give that value a name by which the -app-deploy template can refer to that value: - - -```yaml - resources: - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy - images: - - resource: build-image - name: built-image -``` - - -Our resources section is looking good. Before we move on to writing the templates, let’s take a moment to think about -our app platform. We previously had just one supply chain that worked for all of our devs that provided prebuilt images. -We’re in the process of adding a supply chain that accepts apps defined in source code. This new supply chain doesn't -also support the prebuilt images; the final deploy step of this supply chain has a dependency on the build-image step. -We need to make three changes: - -1. Give the supply chain a new name. -2. Give the supply chain different selector(s). -3. Change the template reference for the deploy step. - -The name change is straightforward: - -```yaml -metadata: - name: source-code-supply-chain -``` - -The selector change in similarly straightforward: - - -```yaml - selector: - workload-type: source-code -``` - - -Before changing the template reference, let’s take a moment to think about why the deploy step needs a new reference. In -the general case, it is completely fine for 2 supply chains to refer to common templates; that reusability is a feature -of Cartographer. But in this case, we know that the deploy step of our two supply chains have different dependencies. In -our original supply chain the deploy step depended only on the workload values. In our new supply chain we’ve declared -that the deploy step depends on values from the build-image step. This indicates to us that the templates will need to -differ. So we’ll need to write a new deploy template. We’ll refer to it in the supply chain: - - -```yaml - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - ... -``` - - -Finally, we'll need a new service account for this supply chain, one that has permission to create the objects in both -templates. We'll specify a name for that service account now and create it below (after completing our templates). - - -```yaml - serviceAccountRef: - name: cartographer-from-source-sa - namespace: default -``` - - -We can see our final supply chain defined here: - -{{< tutorial supply-chain.yaml >}} - -#### Templates - -Now we’re ready to define our templates. Let’s begin with the template for the deploy step, as we’re familiar with it -already. There’s only one field that will change; previously the image location was defined by the workload. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - containers: - - name: $(workload.metadata.name)$ - image: $(workload.spec.image)$ # <=== No longer the proper source - params: - - name: image-pull-sa-name - default: expected-service-account -``` - -Now the template expects that value to come from a previous step in the supply chain. So we’ll simply replace - - -```yaml - image: $(workload.spec.image)$ -``` - - -with - - -```yaml - image: $(images.built-image.image)$ -``` - - -Let’s break down that syntax. In the supply chain we specified that we were providing an array of images to this -template. So we start with `images`. In the supply chain we further declared that the one image in the array of images -would have the name "built-image", so we continue `images.built-image`. Finally, images provide a single value, an image -location (if we were providing sources, each source would provide both a url and a revision). So we complete the -reference: `images.built-image.image`. - -Finally, we'll give this ClusterTemplate a new name (already specified in the supply chain): - -```yaml -metadata: - name: app-deploy-from-sc-image -``` - -The template for our deploy step is complete: - -{{< tutorial app-deploy-template.yaml >}} - -Now we’re ready to create our new template, `image-builder`. We’re going to rely on kpack, a kubernetes native container -build service. We’ll need to template out a kpack Image object. Much of this will be familiar from the -[Build Your First Supply Chain](../first-supply-chain) tutorial. We’ll have a value (the location of the source code) -that is only known by the application developer. We’ll also have values that must remain unique among templated objects -in the name space, for which we’ll use the name of the workload. And similar to the tutorial on Using Params, we’ll -leverage params to provide a default image registry but allow devs to specify another image registry if they so desire. -Let’s look at the .spec.template field of our ClusterImageTemplate: - - -```yaml - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: $(params.image-pull-sa-name)$ - builder: - kind: ClusterBuilder - name: my-builder - source: - git: - url: $(workload.spec.source.git.url)$ - revision: $(workload.spec.source.git.ref.branch)$ -``` - - -Though learners may not be as familiar with kpack Images as they are with the Deployment resource, there’s nothing novel -here from a Cartographer perspective. - -Since our template leverages 2 params, we’ll provide default values for them: - - -```yaml - params: - - name: image-pull-sa-name - default: expected-service-account - - name: image_prefix - default: 0.0.0.0:5000/example-basic-sc- -``` - - -_For those using using dockerhub, gcr or other registry, substitute the appropriate default value for image_prefix. For -those using the hack script to create a local registry for this tutorial, run the following command to get the ip -address to use in the place of 0.0.0.0:_ - -```shell -$ ./hack/ip.py -``` - -So far, creating our ClusterImageTemplate has been similar to what we’ve done in previous tutorials using the -ClusterTemplate. There’s only one novel step we must do. We must specify what value will be exposed from this template. -Again, we’re using a ClusterImageTemplate and this custom resource requires the specification of an imagePath. This is -the path on the templated object where we will find our desired value. -[The documentation for the kpack Image resource](https://github.com/pivotal/kpack/blob/main/docs/image.md) lets us know -“When an image resource has successfully built with its current configuration, its status will report the up to date -fully qualified built OCI image reference.” We can see this value is in the `.status.latestImage` field. So that is the -path that we put in the ClusterImageTemplate’s `.spec.imagePath`: - - -```yaml - imagePath: .status.latestImage -``` - - -We now have our full object: - -{{< tutorial image-builder-template.yaml >}} - -#### Service Account - -We now have our two templates. It's time to create the service account that will give Cartographer permission to create -the objects in the templates (a deployment and a kpack image). In the default namespace (because that's where we -declared it would be in the supply chain) we create: - -{{< tutorial cartographer-service-account.yaml >}} - -#### kpack Dependencies - -From Cartographer's perspective, we've completed our work as app operators. We've created our templates, our supply -chain and our service account. When app devs create workloads, Cartographer will happily begin creating objects. But -before we switch over to the app dev role, we have to consider the objects that we're creating and whether they have any -dependencies. We've already seen how the deployment will rely on a service account existing with imagePullCredentials. -Similarly, our kpack image relies on both a service account and on other kpack resources having been installed in the -cluster. - -This isn’t a tutorial on kpack, so we’ll quickly specify objects below. Learners interested in exploring kpack should -[read more here](https://github.com/pivotal/kpack/blob/main/docs/tutorial.md). - -{{< tutorial kpack-boilerplate.yaml >}} - -{{< tutorial registry-service-account.yaml >}} - -- Note that the ClusterBuilder object has a placeholder value in the `.spec.tag` field. Either a local registry ip - address or another image registry specification should be put here. - -- Note that the registry-credentials secret has placeholder values for the `.stringData` field. If learners are using - the local registry from the hack script, use the ./hack/ip.py ip address in place of the 0.0.0.0 address (the username - and password will then be correct). Otherwise learners should put the appropriate credentials for their image - registry. - -Now we've completed our work as app operators. Let’s step into our role as app devs. - -### App Dev Steps - -As is appropriate for an app platform, the complication undertaken by the app operators above is hidden from the app -devs. As devs, all we need to know is that our request has been answered: we can now submit a workload that specifies -the location of our source code and it will be built and deployed. Let’s do that! - -For our app we’ve used a copy of one of the many paketo buildpack sample apps. -[That copy resides here](https://github.com/waciumawanjohi/demo-hello-world) - -_Note: Copying a paketo sample app ensures that our app will be built. Troubleshooting kpack builds of an arbitrary -application is far outside the scope of this tutorial. The sample apps -[can be found here](https://github.com/paketo-buildpacks/samples). Note that for expediency we only installed kpack with -the ability to build golang and java applications. Users should feel free to install additional paketo buildpacks if -desired._ - -Let’s specify the location of our source code in the workload's spec: - -```yaml -spec: - source: - git: - ref: - branch: main - url: https://github.com/waciumawanjohi/demo-hello-world -``` - -We have a new type of app now; it is no longer pre-built. Let’s change our workload type label and match it to the new -supply chain's selector. - - -```yaml - workload-type: source-code -``` - - -And as app devs, we're done! Let’s look at the complete workload: - -{{< tutorial workload.yaml >}} - -## Observe - -### Workload - -Looking at the workload, we can see that it resolves to a healthy state: - -```shell -$ kubectl get -o yaml workload hello-again -``` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - ... - name: hello-again -status: - conditions: - ... - - lastTransitionTime: ... - message: "" - reason: Ready - status: "True" - type: Ready -``` - -### Stamped Objects - -All the objects that we templated out exist. - -```shell -$ kubectl get -o yaml image.kpack.io hello-again -``` - -```yaml -apiVersion: kpack.io/v1alpha2 -kind: Image -metadata: - ... - name: hello-again -spec: ... -status: - buildCacheName: hello-again-cache - buildCounter: 1 - conditions: - - lastTransitionTime: ... - status: "True" - type: Ready - - lastTransitionTime: ... - status: "True" - type: BuilderReady - latestBuildImageGeneration: 1 - latestBuildReason: CONFIG - latestBuildRef: hello-again-build-1 - latestImage: 0.0.0.0:5000/example-basic-sc-hello-again@sha256:abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12 - latestStack: ... - observedGeneration: 1 -``` - -```shell -$ kubectl get -o yaml deployment hello-again-deployment -``` - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - ... - name: hello-again-deployment -spec: - ... - template: - ... - spec: - containers: - - image: 0.0.0.0:5000/example-basic-sc-hello-again@sha256:abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz12 - ... - ... -status: - availableReplicas: 3 - conditions: - - status: "True" - type: Available - ... - - status: "True" - type: Progressing - ... - ... -``` - -The conditions of all of these objects are healthy. In addition, we can see where the kpack image's -`.status.latestImage` field has been used by the deployment's `spec.template.spec.containers[0].image` field. - -## Wrap Up - -Another tutorial under your belt; you’re well on your way to building a robust app platform for your organization! In -this tutorial you learned: - -- How to expose a value from a template to other steps in a supply chain -- How to consume an earlier exposed value in a template -- How to add to a supply chain -- How to create supply chains with different behavior/templates diff --git a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/app-deploy-template.yaml b/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/app-deploy-template.yaml deleted file mode 100644 index 149d62b6e..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/app-deploy-template.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy-from-sc-image -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - containers: - - name: $(workload.metadata.name)$ - image: $(images.built-image.image)$ - params: - - name: image-pull-sa-name - default: expected-service-account diff --git a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/cartographer-service-account.yaml b/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/cartographer-service-account.yaml deleted file mode 100644 index 0a93f6e17..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/cartographer-service-account.yaml +++ /dev/null @@ -1,69 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: deploy-image-role -rules: - - apiGroups: - - apps - resources: - - deployments - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-deploy-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: deploy-image-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: build-image-role -rules: - - apiGroups: - - kpack.io - resources: - - images - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-build-image-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: build-image-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa diff --git a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/image-builder-template.yaml b/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/image-builder-template.yaml deleted file mode 100644 index ca0ffa77d..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/image-builder-template.yaml +++ /dev/null @@ -1,27 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: image-builder -spec: - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: $(params.image-pull-sa-name)$ - builder: - kind: ClusterBuilder - name: my-builder - source: - git: - url: $(workload.spec.source.git.url)$ - revision: $(workload.spec.source.git.ref.branch)$ - params: - - name: image-pull-sa-name - default: expected-service-account - - name: image_prefix - default: 0.0.0.0:5000/example-basic-sc- # <=== Change to proper image registry - imagePath: .status.latestImage diff --git a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/kpack-boilerplate.yaml b/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/kpack-boilerplate.yaml deleted file mode 100644 index 09dbf91eb..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/kpack-boilerplate.yaml +++ /dev/null @@ -1,43 +0,0 @@ ---- -apiVersion: kpack.io/v1alpha1 -kind: ClusterStore -metadata: - name: default -spec: - sources: - - image: gcr.io/paketo-buildpacks/java - - image: gcr.io/paketo-buildpacks/go - ---- -apiVersion: kpack.io/v1alpha1 -kind: ClusterStack -metadata: - name: base -spec: - id: "io.buildpacks.stacks.bionic" - buildImage: - image: "paketobuildpacks/build:base-cnb" - runImage: - image: "paketobuildpacks/run:base-cnb" - ---- -apiVersion: kpack.io/v1alpha2 -kind: ClusterBuilder -metadata: - name: my-builder -spec: - serviceAccountRef: - name: expected-service-account - namespace: default - tag: "0.0.0.0:5000/go-java-builder" # <=== Change to proper image registry - stack: - name: base - kind: ClusterStack - store: - name: default - kind: ClusterStore - order: - - group: - - id: paketo-buildpacks/java - - group: - - id: paketo-buildpacks/go diff --git a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/registry-service-account.yaml b/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/registry-service-account.yaml deleted file mode 100644 index 657747918..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/registry-service-account.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: registry-credentials -type: kubernetes.io/dockerconfigjson -stringData: - .dockerconfigjson: '{"auths": {"0.0.0.0:5000": {"username": "admin", "password": "admin"}}}' # <=== Change to proper image registry - ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: expected-service-account -secrets: - - name: registry-credentials -imagePullSecrets: - - name: registry-credentials diff --git a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/supply-chain.yaml b/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/supply-chain.yaml deleted file mode 100644 index 352c3b886..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/supply-chain.yaml +++ /dev/null @@ -1,25 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: source-code-supply-chain -spec: - selector: - workload-type: source-code - - resources: - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - images: - - resource: build-image - name: built-image - - serviceAccountRef: - name: cartographer-from-source-sa - namespace: default diff --git a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/workload.yaml b/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/workload.yaml deleted file mode 100644 index f1e09410b..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/extending-a-supply-chain/workload.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello-again - labels: - workload-type: source-code -spec: - source: - git: - ref: - branch: main - url: https://github.com/waciumawanjohi/demo-hello-world \ No newline at end of file diff --git a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/app-deploy-template.yaml b/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/app-deploy-template.yaml deleted file mode 100644 index fe93739fd..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/app-deploy-template.yaml +++ /dev/null @@ -1,26 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - containers: - - name: $(workload.metadata.name)$ - image: $(workload.spec.image)$ diff --git a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/cartographer-service-account.yaml b/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/cartographer-service-account.yaml deleted file mode 100644 index 4d8de36c4..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/cartographer-service-account.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cartographer-pre-built-sa - namespace: default diff --git a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/deployment-role.yaml b/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/deployment-role.yaml deleted file mode 100644 index 13793234f..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/deployment-role.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: deploy-image-role -rules: - - apiGroups: - - apps - resources: - - deployments - verbs: - - list - - create - - update - - delete - - patch - - watch - - get diff --git a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/role-binding-dep-carto.yaml b/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/role-binding-dep-carto.yaml deleted file mode 100644 index 7f5f10c7f..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/role-binding-dep-carto.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-prebuilt-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: deploy-image-role -subjects: - - kind: ServiceAccount - name: cartographer-pre-built-sa \ No newline at end of file diff --git a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/supply-chain.yaml b/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/supply-chain.yaml deleted file mode 100644 index a42e5f11b..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/supply-chain.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supply-chain -spec: - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy - - serviceAccountRef: - name: cartographer-pre-built-sa - namespace: default - - selector: - workload-type: pre-built diff --git a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/workload-2.yaml b/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/workload-2.yaml deleted file mode 100644 index a6e9cf006..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/workload-2.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: whale-hello-there - labels: - workload-type: pre-built -spec: - image: docker.io/crccheck/hello-world:latest diff --git a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/workload.yaml b/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/workload.yaml deleted file mode 100644 index 13b8b0582..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/first-supply-chain/workload.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello - labels: - workload-type: pre-built -spec: - image: docker.io/nginxdemos/hello:latest diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/cartographer-service-account.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/cartographer-service-account.yaml deleted file mode 100644 index f71951d8c..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/cartographer-service-account.yaml +++ /dev/null @@ -1,101 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: deploy-image-role -rules: - - apiGroups: - - apps - resources: - - deployments - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-prebuilt-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: deploy-image-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: build-image-role -rules: - - apiGroups: - - kpack.io - resources: - - images - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-build-image-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: build-image-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: runnable-role -rules: - - apiGroups: - - carto.run - resources: - - runnables - verbs: - - list - - create - - update - - delete - - patch - - watch - - get - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-runnable-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: runnable-role -subjects: - - kind: ServiceAccount - name: cartographer-from-source-sa diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/cluster-run-template.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/cluster-run-template.yaml deleted file mode 100644 index e45a407d4..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/cluster-run-template.yaml +++ /dev/null @@ -1,31 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: - name: md-linting-pipelinerun -spec: - template: - apiVersion: tekton.dev/v1beta1 - kind: PipelineRun - metadata: - generateName: $(runnable.metadata.name)$-pipeline-run- - spec: - pipelineRef: - name: linter-pipeline - params: - - name: repository - value: $(runnable.spec.inputs.repository)$ - - name: revision - value: $(runnable.spec.inputs.revision)$ - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - outputs: - url: spec.params[?(@.name=="repository")].value - revision: spec.params[?(@.name=="revision")].value diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/kpack-boilerplate.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/kpack-boilerplate.yaml deleted file mode 100644 index 09dbf91eb..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/kpack-boilerplate.yaml +++ /dev/null @@ -1,43 +0,0 @@ ---- -apiVersion: kpack.io/v1alpha1 -kind: ClusterStore -metadata: - name: default -spec: - sources: - - image: gcr.io/paketo-buildpacks/java - - image: gcr.io/paketo-buildpacks/go - ---- -apiVersion: kpack.io/v1alpha1 -kind: ClusterStack -metadata: - name: base -spec: - id: "io.buildpacks.stacks.bionic" - buildImage: - image: "paketobuildpacks/build:base-cnb" - runImage: - image: "paketobuildpacks/run:base-cnb" - ---- -apiVersion: kpack.io/v1alpha2 -kind: ClusterBuilder -metadata: - name: my-builder -spec: - serviceAccountRef: - name: expected-service-account - namespace: default - tag: "0.0.0.0:5000/go-java-builder" # <=== Change to proper image registry - stack: - name: base - kind: ClusterStack - store: - name: default - kind: ClusterStore - order: - - group: - - id: paketo-buildpacks/java - - group: - - id: paketo-buildpacks/go diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/pipeline.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/pipeline.yaml deleted file mode 100644 index f921a7e6f..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/pipeline.yaml +++ /dev/null @@ -1,40 +0,0 @@ ---- -apiVersion: tekton.dev/v1beta1 -kind: Pipeline -metadata: - name: linter-pipeline -spec: - params: - - name: repository - type: string - - name: revision - type: string - workspaces: - - name: shared-workspace - tasks: - - name: fetch-repository - taskRef: - name: git-clone - workspaces: - - name: output - workspace: shared-workspace - params: - - name: url - value: $(params.repository) - - name: revision - value: $(params.revision) - - name: subdirectory - value: "" - - name: deleteExisting - value: "true" - - name: md-lint-run #lint mardown - taskRef: - name: markdown-lint - runAfter: - - fetch-repository - workspaces: - - name: shared-workspace - workspace: shared-workspace - params: - - name: args - value: ["."] diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/registry-service-account.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/registry-service-account.yaml deleted file mode 100644 index 9680988e4..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/registry-service-account.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: registry-credentials -type: kubernetes.io/dockerconfigjson -stringData: - .dockerconfigjson: '{"auths": {"0.0.0.0:5000": {"username": "admin", "password": "admin"}}}' # <=== Change to proper image registry - ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: expected-service-account -secrets: - - name: registry-credentials -imagePullSecrets: - - name: registry-credentials diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/runnable-service-account.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/runnable-service-account.yaml deleted file mode 100644 index 3431f8224..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/runnable-service-account.yaml +++ /dev/null @@ -1,37 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: pipeline-run-management-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: testing-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: pipeline-run-management-role -subjects: - - kind: ServiceAccount - name: pipeline-run-management-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: pipeline-run-management-role -rules: - - apiGroups: - - tekton.dev - resources: - - pipelineruns - verbs: - - list - - create - - update - - delete - - patch - - watch - - get diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/source-linter-template.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/source-linter-template.yaml deleted file mode 100644 index ab67b91bb..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/source-linter-template.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: - name: source-linter -spec: - template: - apiVersion: carto.run/v1alpha1 - kind: Runnable - metadata: - name: $(workload.metadata.name)$-linter - spec: - runTemplateRef: - name: md-linting-pipelinerun - inputs: - repository: $(workload.spec.source.git.url)$ - revision: $(workload.spec.source.git.ref.branch)$ - serviceAccountName: pipeline-run-management-sa - urlPath: .status.outputs.url - revisionPath: .status.outputs.revision diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/supply-chain.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/supply-chain.yaml deleted file mode 100644 index a4d533396..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/supply-chain.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: source-code-supply-chain -spec: - selector: - workload-type: source-code - - resources: - - name: lint-source - templateRef: - kind: ClusterSourceTemplate - name: source-linter - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder-from-previous-step - sources: - - resource: lint-source - name: source - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - images: - - resource: build-image - name: built-image - - serviceAccountRef: - name: cartographer-from-source-sa - namespace: default diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/tasks.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/tasks.yaml deleted file mode 100644 index 0d40ef7aa..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/tasks.yaml +++ /dev/null @@ -1,204 +0,0 @@ ---- -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: git-clone - labels: - app.kubernetes.io/version: "0.3" - annotations: - tekton.dev/pipelines.minVersion: "0.21.0" - tekton.dev/categories: Git - tekton.dev/tags: git - tekton.dev/displayName: "git clone" - tekton.dev/platforms: "linux/amd64" -spec: - description: >- - These Tasks are Git tasks to work with repositories used by other tasks - in your Pipeline. - - The git-clone Task will clone a repo from the provided url into the - output Workspace. By default the repo will be cloned into the root of - your Workspace. You can clone into a subdirectory by setting this Task's - subdirectory param. This Task also supports sparse checkouts. To perform - a sparse checkout, pass a list of comma separated directory patterns to - this Task's sparseCheckoutDirectories param. - - workspaces: - - name: output - description: The git repo will be cloned onto the volume backing this workspace - params: - - name: url - description: git url to clone - type: string - - name: revision - description: git revision to checkout (branch, tag, sha, ref…) - type: string - default: "" - - name: refspec - description: (optional) git refspec to fetch before checking out revision - default: "" - - name: submodules - description: defines if the resource should initialize and fetch the submodules - type: string - default: "true" - - name: depth - description: performs a shallow clone where only the most recent commit(s) will be fetched - type: string - default: "1" - - name: sslVerify - description: defines if http.sslVerify should be set to true or false in the global git config - type: string - default: "true" - - name: subdirectory - description: subdirectory inside the "output" workspace to clone the git repo into - type: string - default: "" - - name: sparseCheckoutDirectories - description: defines which directories patterns to match or exclude when performing a sparse checkout - type: string - default: "" - - name: deleteExisting - description: clean out the contents of the repo's destination directory (if it already exists) before trying to clone the repo there - type: string - default: "true" - - name: httpProxy - description: git HTTP proxy server for non-SSL requests - type: string - default: "" - - name: httpsProxy - description: git HTTPS proxy server for SSL requests - type: string - default: "" - - name: noProxy - description: git no proxy - opt out of proxying HTTP/HTTPS requests - type: string - default: "" - - name: verbose - description: log the commands used during execution - type: string - default: "true" - - name: gitInitImage - description: the image used where the git-init binary is - type: string - default: "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.21.0" - results: - - name: commit - description: The precise commit SHA that was fetched by this Task - - name: url - description: The precise URL that was fetched by this Task - steps: - - name: clone - image: $(params.gitInitImage) - env: - - name: PARAM_URL - value: $(params.url) - - name: PARAM_REVISION - value: $(params.revision) - - name: PARAM_REFSPEC - value: $(params.refspec) - - name: PARAM_SUBMODULES - value: $(params.submodules) - - name: PARAM_DEPTH - value: $(params.depth) - - name: PARAM_SSL_VERIFY - value: $(params.sslVerify) - - name: PARAM_SUBDIRECTORY - value: $(params.subdirectory) - - name: PARAM_DELETE_EXISTING - value: $(params.deleteExisting) - - name: PARAM_HTTP_PROXY - value: $(params.httpProxy) - - name: PARAM_HTTPS_PROXY - value: $(params.httpsProxy) - - name: PARAM_NO_PROXY - value: $(params.noProxy) - - name: PARAM_VERBOSE - value: $(params.verbose) - - name: PARAM_SPARSE_CHECKOUT_DIRECTORIES - value: $(params.sparseCheckoutDirectories) - - name: WORKSPACE_OUTPUT_PATH - value: $(workspaces.output.path) - script: | - #!/bin/sh - set -eu -o pipefail - - if [[ "${PARAM_VERBOSE}" == "true" ]] ; then - set -x - fi - - CHECKOUT_DIR="${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}" - - cleandir() { - # Delete any existing contents of the repo directory if it exists. - # - # We don't just "rm -rf $CHECKOUT_DIR" because $CHECKOUT_DIR might be "/" - # or the root of a mounted volume. - if [[ -d "$CHECKOUT_DIR" ]] ; then - # Delete non-hidden files and directories - rm -rf "$CHECKOUT_DIR"/* - # Delete files and directories starting with . but excluding .. - rm -rf "$CHECKOUT_DIR"/.[!.]* - # Delete files and directories starting with .. plus any other character - rm -rf "$CHECKOUT_DIR"/..?* - fi - } - - if [[ "${PARAM_DELETE_EXISTING}" == "true" ]] ; then - cleandir - fi - - test -z "${PARAM_HTTP_PROXY}" || export HTTP_PROXY="${PARAM_HTTP_PROXY}" - test -z "${PARAM_HTTPS_PROXY}" || export HTTPS_PROXY="${PARAM_HTTPS_PROXY}" - test -z "${PARAM_NO_PROXY}" || export NO_PROXY="${PARAM_NO_PROXY}" - - /ko-app/git-init \ - -url "${PARAM_URL}" \ - -revision "${PARAM_REVISION}" \ - -refspec "${PARAM_REFSPEC}" \ - -path "$CHECKOUT_DIR" \ - -sslVerify="${PARAM_SSL_VERIFY}" \ - -submodules="${PARAM_SUBMODULES}" \ - -depth "${PARAM_DEPTH}" \ - -sparseCheckoutDirectories "${PARAM_SPARSE_CHECKOUT_DIRECTORIES}" - cd "$CHECKOUT_DIR" - RESULT_SHA="$(git rev-parse HEAD)" - EXIT_CODE="$?" - if [ "$EXIT_CODE" != 0 ] ; then - exit $EXIT_CODE - fi - # ensure we don't add a trailing newline to the result - echo -n "$RESULT_SHA" > $(results.commit.path) - echo -n "${PARAM_URL}" > $(results.url.path) - ---- -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: markdown-lint - labels: - app.kubernetes.io/version: "0.1" - annotations: - tekton.dev/pipelines.minVersion: "0.12.1" - tekton.dev/categories: Code Quality - tekton.dev/tags: linter - tekton.dev/displayName: "Markdown linter" - tekton.dev/platforms: "linux/amd64" -spec: - description: >- - This task can be used to perform lint check on Markdown files - workspaces: - - name: shared-workspace - description: A workspace that contains the fetched git repository. - params: - - name: args - type: array - description: extra args needs to append - default: ["--help"] - steps: - - name: lint-markdown-files - image: docker.io/markdownlint/markdownlint:0.11.0@sha256:399a199c92f89f42cf3a0a1159bd86ca5cdc293fcfd39f87c0669ddee9767724 #tag: 0.11.0 - workingDir: $(workspaces.shared-workspace.path) - command: - - mdl - args: - - $(params.args) \ No newline at end of file diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/templates.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/templates.yaml deleted file mode 100644 index fb981b70a..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/templates.yaml +++ /dev/null @@ -1,58 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterImageTemplate -metadata: - name: image-builder-from-previous-step -spec: - template: - apiVersion: kpack.io/v1alpha2 - kind: Image - metadata: - name: $(workload.metadata.name)$ - spec: - tag: $(params.image_prefix)$$(workload.metadata.name)$ - serviceAccountName: $(params.image-pull-sa-name)$ - builder: - kind: ClusterBuilder - name: my-builder - source: - git: - url: $(sources.source.url)$ - revision: $(sources.source.revision)$ - params: - - name: image-pull-sa-name - default: expected-service-account - - name: image_prefix - default: 0.0.0.0:5000/example-basic-sc- # <=== Change to proper image registry - imagePath: .status.latestImage - ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy-from-sc-image -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - containers: - - name: $(workload.metadata.name)$ - image: $(images.built-image.image)$ - params: - - name: image-pull-sa-name - default: expected-service-account diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/workload.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/workload.yaml deleted file mode 100644 index f1e09410b..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable-in-a-supply-chain/workload.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello-again - labels: - workload-type: source-code -spec: - source: - git: - ref: - branch: main - url: https://github.com/waciumawanjohi/demo-hello-world \ No newline at end of file diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable/cluster-run-template.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable/cluster-run-template.yaml deleted file mode 100644 index 6a12ef7ff..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable/cluster-run-template.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: - name: md-linting-pipelinerun -spec: - template: - apiVersion: tekton.dev/v1beta1 - kind: PipelineRun - metadata: - generateName: linter-pipeline-run- - spec: - pipelineRef: - name: linter-pipeline - params: - - name: repository - value: $(runnable.spec.inputs.repository)$ - - name: revision - value: $(runnable.spec.inputs.revision)$ - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - outputs: - lastTransitionTime: .status.conditions[0].lastTransitionTime diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable/pipeline.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable/pipeline.yaml deleted file mode 100644 index e8ed9afe4..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable/pipeline.yaml +++ /dev/null @@ -1,40 +0,0 @@ ---- -apiVersion: tekton.dev/v1beta1 -kind: Pipeline -metadata: - name: linter-pipeline -spec: - params: - - name: repository - type: string - - name: revision - type: string - workspaces: - - name: shared-workspace - tasks: - - name: fetch-repository - taskRef: - name: git-clone - workspaces: - - name: output - workspace: shared-workspace - params: - - name: url - value: $(params.repository) - - name: revision - value: $(params.revision) - - name: subdirectory - value: "" - - name: deleteExisting - value: "true" - - name: md-lint-run #lint markdown - taskRef: - name: markdown-lint - runAfter: - - fetch-repository - workspaces: - - name: shared-workspace - workspace: shared-workspace - params: - - name: args - value: ["."] diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable/runnable.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable/runnable.yaml deleted file mode 100644 index 9cdaae94e..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable/runnable.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Runnable -metadata: - name: linter -spec: - runTemplateRef: - name: md-linting-pipelinerun - inputs: - repository: https://github.com/waciumawanjohi/demo-hello-world - revision: main - serviceAccountName: pipeline-run-management-sa diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable/service-account.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable/service-account.yaml deleted file mode 100644 index 3431f8224..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable/service-account.yaml +++ /dev/null @@ -1,37 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: pipeline-run-management-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: testing-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: pipeline-run-management-role -subjects: - - kind: ServiceAccount - name: pipeline-run-management-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: pipeline-run-management-role -rules: - - apiGroups: - - tekton.dev - resources: - - pipelineruns - verbs: - - list - - create - - update - - delete - - patch - - watch - - get diff --git a/site/content/docs/v0.3.0/tutorials/files/runnable/tasks.yaml b/site/content/docs/v0.3.0/tutorials/files/runnable/tasks.yaml deleted file mode 100644 index 0d40ef7aa..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/runnable/tasks.yaml +++ /dev/null @@ -1,204 +0,0 @@ ---- -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: git-clone - labels: - app.kubernetes.io/version: "0.3" - annotations: - tekton.dev/pipelines.minVersion: "0.21.0" - tekton.dev/categories: Git - tekton.dev/tags: git - tekton.dev/displayName: "git clone" - tekton.dev/platforms: "linux/amd64" -spec: - description: >- - These Tasks are Git tasks to work with repositories used by other tasks - in your Pipeline. - - The git-clone Task will clone a repo from the provided url into the - output Workspace. By default the repo will be cloned into the root of - your Workspace. You can clone into a subdirectory by setting this Task's - subdirectory param. This Task also supports sparse checkouts. To perform - a sparse checkout, pass a list of comma separated directory patterns to - this Task's sparseCheckoutDirectories param. - - workspaces: - - name: output - description: The git repo will be cloned onto the volume backing this workspace - params: - - name: url - description: git url to clone - type: string - - name: revision - description: git revision to checkout (branch, tag, sha, ref…) - type: string - default: "" - - name: refspec - description: (optional) git refspec to fetch before checking out revision - default: "" - - name: submodules - description: defines if the resource should initialize and fetch the submodules - type: string - default: "true" - - name: depth - description: performs a shallow clone where only the most recent commit(s) will be fetched - type: string - default: "1" - - name: sslVerify - description: defines if http.sslVerify should be set to true or false in the global git config - type: string - default: "true" - - name: subdirectory - description: subdirectory inside the "output" workspace to clone the git repo into - type: string - default: "" - - name: sparseCheckoutDirectories - description: defines which directories patterns to match or exclude when performing a sparse checkout - type: string - default: "" - - name: deleteExisting - description: clean out the contents of the repo's destination directory (if it already exists) before trying to clone the repo there - type: string - default: "true" - - name: httpProxy - description: git HTTP proxy server for non-SSL requests - type: string - default: "" - - name: httpsProxy - description: git HTTPS proxy server for SSL requests - type: string - default: "" - - name: noProxy - description: git no proxy - opt out of proxying HTTP/HTTPS requests - type: string - default: "" - - name: verbose - description: log the commands used during execution - type: string - default: "true" - - name: gitInitImage - description: the image used where the git-init binary is - type: string - default: "gcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/git-init:v0.21.0" - results: - - name: commit - description: The precise commit SHA that was fetched by this Task - - name: url - description: The precise URL that was fetched by this Task - steps: - - name: clone - image: $(params.gitInitImage) - env: - - name: PARAM_URL - value: $(params.url) - - name: PARAM_REVISION - value: $(params.revision) - - name: PARAM_REFSPEC - value: $(params.refspec) - - name: PARAM_SUBMODULES - value: $(params.submodules) - - name: PARAM_DEPTH - value: $(params.depth) - - name: PARAM_SSL_VERIFY - value: $(params.sslVerify) - - name: PARAM_SUBDIRECTORY - value: $(params.subdirectory) - - name: PARAM_DELETE_EXISTING - value: $(params.deleteExisting) - - name: PARAM_HTTP_PROXY - value: $(params.httpProxy) - - name: PARAM_HTTPS_PROXY - value: $(params.httpsProxy) - - name: PARAM_NO_PROXY - value: $(params.noProxy) - - name: PARAM_VERBOSE - value: $(params.verbose) - - name: PARAM_SPARSE_CHECKOUT_DIRECTORIES - value: $(params.sparseCheckoutDirectories) - - name: WORKSPACE_OUTPUT_PATH - value: $(workspaces.output.path) - script: | - #!/bin/sh - set -eu -o pipefail - - if [[ "${PARAM_VERBOSE}" == "true" ]] ; then - set -x - fi - - CHECKOUT_DIR="${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}" - - cleandir() { - # Delete any existing contents of the repo directory if it exists. - # - # We don't just "rm -rf $CHECKOUT_DIR" because $CHECKOUT_DIR might be "/" - # or the root of a mounted volume. - if [[ -d "$CHECKOUT_DIR" ]] ; then - # Delete non-hidden files and directories - rm -rf "$CHECKOUT_DIR"/* - # Delete files and directories starting with . but excluding .. - rm -rf "$CHECKOUT_DIR"/.[!.]* - # Delete files and directories starting with .. plus any other character - rm -rf "$CHECKOUT_DIR"/..?* - fi - } - - if [[ "${PARAM_DELETE_EXISTING}" == "true" ]] ; then - cleandir - fi - - test -z "${PARAM_HTTP_PROXY}" || export HTTP_PROXY="${PARAM_HTTP_PROXY}" - test -z "${PARAM_HTTPS_PROXY}" || export HTTPS_PROXY="${PARAM_HTTPS_PROXY}" - test -z "${PARAM_NO_PROXY}" || export NO_PROXY="${PARAM_NO_PROXY}" - - /ko-app/git-init \ - -url "${PARAM_URL}" \ - -revision "${PARAM_REVISION}" \ - -refspec "${PARAM_REFSPEC}" \ - -path "$CHECKOUT_DIR" \ - -sslVerify="${PARAM_SSL_VERIFY}" \ - -submodules="${PARAM_SUBMODULES}" \ - -depth "${PARAM_DEPTH}" \ - -sparseCheckoutDirectories "${PARAM_SPARSE_CHECKOUT_DIRECTORIES}" - cd "$CHECKOUT_DIR" - RESULT_SHA="$(git rev-parse HEAD)" - EXIT_CODE="$?" - if [ "$EXIT_CODE" != 0 ] ; then - exit $EXIT_CODE - fi - # ensure we don't add a trailing newline to the result - echo -n "$RESULT_SHA" > $(results.commit.path) - echo -n "${PARAM_URL}" > $(results.url.path) - ---- -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: markdown-lint - labels: - app.kubernetes.io/version: "0.1" - annotations: - tekton.dev/pipelines.minVersion: "0.12.1" - tekton.dev/categories: Code Quality - tekton.dev/tags: linter - tekton.dev/displayName: "Markdown linter" - tekton.dev/platforms: "linux/amd64" -spec: - description: >- - This task can be used to perform lint check on Markdown files - workspaces: - - name: shared-workspace - description: A workspace that contains the fetched git repository. - params: - - name: args - type: array - description: extra args needs to append - default: ["--help"] - steps: - - name: lint-markdown-files - image: docker.io/markdownlint/markdownlint:0.11.0@sha256:399a199c92f89f42cf3a0a1159bd86ca5cdc293fcfd39f87c0669ddee9767724 #tag: 0.11.0 - workingDir: $(workspaces.shared-workspace.path) - command: - - mdl - args: - - $(params.args) \ No newline at end of file diff --git a/site/content/docs/v0.3.0/tutorials/files/using-params/app-deploy-template.yaml b/site/content/docs/v0.3.0/tutorials/files/using-params/app-deploy-template.yaml deleted file mode 100644 index 5d6ef0744..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/using-params/app-deploy-template.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - containers: - - name: $(workload.metadata.name)$ - image: $(workload.spec.image)$ - params: - - name: image-pull-sa-name - default: expected-service-account diff --git a/site/content/docs/v0.3.0/tutorials/files/using-params/cartographer-service-account.yaml b/site/content/docs/v0.3.0/tutorials/files/using-params/cartographer-service-account.yaml deleted file mode 100644 index 8dc26ceee..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/using-params/cartographer-service-account.yaml +++ /dev/null @@ -1,37 +0,0 @@ ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: cartographer-pre-built-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: cartographer-prebuilt-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: Role - name: deploy-image-role -subjects: - - kind: ServiceAccount - name: cartographer-pre-built-sa - ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: deploy-image-role -rules: - - apiGroups: - - apps - resources: - - deployments - verbs: - - list - - create - - update - - delete - - patch - - watch - - get diff --git a/site/content/docs/v0.3.0/tutorials/files/using-params/registry-service-account.yaml b/site/content/docs/v0.3.0/tutorials/files/using-params/registry-service-account.yaml deleted file mode 100644 index c14e50908..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/using-params/registry-service-account.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: v1 -kind: Secret -metadata: - name: registry-credentials -type: kubernetes.io/dockerconfigjson -stringData: - .dockerconfigjson: '{"auths": {"0.0.0.0:5000": {"username": "admin", "password": "admin"}}}' # <=== Change to proper image registry credentials - ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: unconventionally-named-service-account -secrets: - - name: registry-credentials -imagePullSecrets: - - name: registry-credentials diff --git a/site/content/docs/v0.3.0/tutorials/files/using-params/supply-chain.yaml b/site/content/docs/v0.3.0/tutorials/files/using-params/supply-chain.yaml deleted file mode 100644 index a42e5f11b..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/using-params/supply-chain.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supply-chain -spec: - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy - - serviceAccountRef: - name: cartographer-pre-built-sa - namespace: default - - selector: - workload-type: pre-built diff --git a/site/content/docs/v0.3.0/tutorials/files/using-params/workload.yaml b/site/content/docs/v0.3.0/tutorials/files/using-params/workload.yaml deleted file mode 100644 index 8bfde1945..000000000 --- a/site/content/docs/v0.3.0/tutorials/files/using-params/workload.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello-again - labels: - workload-type: pre-built -spec: - image: 0.0.0.0:5000/hello-world # <=== Change this to some proper registry and image - serviceAccountName: cartographer-pre-built-sa - params: - - name: image-pull-sa-name - value: unconventionally-named-service-account diff --git a/site/content/docs/v0.3.0/tutorials/first-supply-chain.md b/site/content/docs/v0.3.0/tutorials/first-supply-chain.md deleted file mode 100644 index 98ee4c08b..000000000 --- a/site/content/docs/v0.3.0/tutorials/first-supply-chain.md +++ /dev/null @@ -1,500 +0,0 @@ -# Build Your First Supply Chain - -## Overview - -In this example, we’ll explore the two fundamental resources that an operator deploys, templates and supply-chains, and -how these interact with the resource a dev deploys, the workload. We'll also see how we grant Cartographer RBAC -permission to create our specified objects with a service account. We’ll do this with an incredibly simple supply chain, -one that has a single step: creating a deployment from an image. - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer installed. You may follow -[the installation instructions here](https://github.com/vmware-tanzu/cartographer#installation). - -Alternatively, you may choose to use the -[./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script to install a kind cluster -with Cartographer. _This script is meant for our end-to-end testing and while we rely on it working in that role, no -user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -We will work as the devs and the app operators in a company creating hello world web applications. As app devs we will -already have created pre-built images of these distros. Our supply chain will create deployments with these pre-built -images on them. We will work first as the app operators to create the appropriate template, supply chain, and service -account. Then we will work as the app devs to create our workload object. - -## Steps - -### App Operator Steps - -#### Templates - -For any template there are fields that the operator can hardcode for all apps and there are other fields that will need -to vary. There are two concerns that can necessitate a field varying: - -- Some fields must be unique across the fleet of apps from all devs. -- Some fields must have specific values specific to the particular application (generally known only by the application - developer). - -For our scenario, we will create a -[Kubernetes Deployment](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) for each application. Let -us wrap a deployment in a [Cartographer ClusterTemplate](../reference/template/#clustertemplate), notating fields that -will need to vary and fields that can be hardcoded: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: # MUST BE UNIQUE - labels: - app: # MUST BE UNIQUE - spec: - replicas: # CAN BE HARDCODED - selector: - matchLabels: - app: # MUST BE UNIQUE - template: - metadata: - labels: - app: # MUST BE UNIQUE - spec: - containers: - - name: # MUST BE UNIQUE - image: # KNOWN ONLY TO THE DEV -``` - -We can see an example of a field that may be hardcoded. The number of replicas is a concern of the app operator and can -be set for all apps as policy. We can see the template evolve: - -```yaml -... -spec: - template: - apiVersion: apps/v1 - kind: Deployment - spec: - replicas: 3 - ... - ... -``` - -Next, we will fill the fields that must be unique. Every application will be specified in a workload object specified by -the developer. We know that these objects (as all kubernetes objects) have unique names in their namespaces. As such, we -can leverage that name for all fields that must be unique. That name can be found on the workload object at -`.metadata.name`. We can see that in use below: - -```yaml -... -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - ... - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - containers: - - name: $(workload.metadata.name)$ - ... -``` - -Finally, there are the fields that are known only to the dev. There are a few classes of information so fundamental to -the process of building and deploying applications that the workload has fields for their specification. We can see -these in [the reference for the Workload custom resource](../reference/workload/#workload). They include: - -- Location of source code -- Environment variables to use in building images -- Location of pre-built images -- Resource constraints -- And more… - -For our example, the workload field for specifying the location of pre-built images is exactly what is necessary. We -will expect the appropriate image address to be specified on the workload in the ".spec.image" field. - -```yaml -... -spec: - template: - ... - spec: - template: - spec: - containers: - - image: $(workload.spec.image)$ - ... - ... -``` - -Let’s look at the completed template: - -{{< tutorial "app-deploy-template.yaml" >}} - -Wonderful! As app operators, we have created the template desired for our supply chain. - -#### Service Account - -Next, we turn to permissions. For Cartographer to create objects it needs RBAC permission to do so. For that we’ll -create a service account that will specify the requisite permissions to create, update, and otherwise manage the objects -referred to in our templates. - -First let’s create a service account. For ease of use in this tutorial, we’ll create it in the default namespace. - -{{< tutorial cartographer-service-account.yaml >}} - -Now we’ll create the roles we want this service account to have. In our case, we need a role allowing us to manage -deployments. - -{{< tutorial deployment-role.yaml >}} - -Now we bind the role to our service account: - -{{< tutorial role-binding-dep-carto.yaml >}} - -Great, we’ve created all of the objects to which the supply chain will refer: templates and a service account. Let’s -create the supply chain! - -#### Supply Chain - -The supply chain has three top level fields in its spec, the resources, a service account reference and a selector for -workloads. - -We’ll start with the resources field, which is a list. Each item in the resource list represents an object that will be -stamped out in the supply chain of each workload. We give each a name and a reference to a template. In the example -below we can see the templateRef has the name and kind of the template: - - -```yaml - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy -``` - - -Next we’ll add the reference to the service account: - - -```yaml - serviceAccountRef: - name: cartographer-pre-built-sa - namespace: default -``` - - -Our last step with the supply chain is to specify the selector. This is the set of labels on a workload that will -indicate that the workload matches with this supply-chain, rather than some other supply chain. We specify the types of -workloads that are appropriate for this supply chain. For our example, we only want workloads that have pre-built images -to match with this supply chain. Let’s enforce that by expecting workloads that match to have the label -`workload-type: pre-built`: - - -```yaml - selector: - workload-type: pre-built -``` - - -We can bring these all together for our complete supply chain: - -{{< tutorial supply-chain.yaml >}} - -We’re now ready to submit these objects to our cluster. The next responsibility is for our app developers to submit -workloads. Let’s step into that role now. - -### App Dev Steps - -Our app operators have created a contract that needs to be fulfilled by our workload. First, we’ll need to ensure that -our workload has the necessary labels to match with the selector. We can see that on the workload below. - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - name: hello - labels: - workload-type: pre-built # <=== label matches selector of our supply chain -spec: ... -``` - -Next, our workload must provide all of the values referenced in the templates of the supply chain. We’ll remember that -for this supply chain that is the location of a pre-built image. Let’s point to -[our very sophisticated hello-world app](https://hub.docker.com/r/nginxdemos/hello/): -`docker.io/nginxdemos/hello:latest` - -```yaml -spec: - image: docker.io/nginxdemos/hello:latest -``` - -We bring it all together: - -{{< tutorial workload.yaml >}} - -And we're done! The app dev always has less work to do than the app operator. - -Let's submit all of these items to the cluster! - -## Observe - -### Workload - -The workload quickly resolves. We can examine the workload object: - -```shell -$ kubectl get -o yaml workload hello -``` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Workload -metadata: - generation: 1 - labels: - workload-type: pre-built - name: hello - namespace: default - ... -spec: - image: docker.io/nginxdemos/hello:latest - serviceAccountName: cartographer-pre-built-sa -status: - conditions: ... - observedGeneration: 1 - resources: ... - supplyChainRef: - kind: ClusterSupplyChain - name: supply-chain -``` - -Let's look more closely at the `status.conditions`: - -```yaml -status: - conditions: - - lastTransitionTime: ... - message: "" - reason: Ready - status: "True" - type: SupplyChainReady - - lastTransitionTime: ... - message: "" - reason: ResourceSubmissionComplete - status: "True" - type: ResourcesSubmitted - - lastTransitionTime: ... - message: "" - reason: Ready - status: "True" - type: Ready - ... -``` - -The `SupplyChainReady` condition merely tells us that the SupplyChain is in a healthy condition. e.g. if we do a -`kubectl get -o yaml clustersupplychain supply-chain`, we'll see that it's top level `Ready` condition is true. - -The `ResourcesSubmitted` condition is more important. It tells us that all of the objects that were specified in the -supply chain have been created. It is important to note, _this does not indicate that every submitted resource has -finished reconciling_. - -The `Ready` condition is the top level condition. For this condition to be true, all other conditions must be as well. A -quick scan of this value can let you know if the workload is in a ready state. - -You may want to more closely examine the resources deployed. Maybe a step in the supply chain is reporting a problem. Or -maybe you want to check if a successfully deployed object has completed reconciling. For such purposes we can use the -`status.resources` field. - -```yaml -status: - resources: - - name: deploy - stampedRef: - apiVersion: apps/v1 - kind: Deployment - name: hello-deployment - namespace: default - templateRef: - apiVersion: carto.run/v1alpha1 - kind: ClusterTemplate - name: app-deploy - ... -``` - -`status.resources` contains a reference to each of the objects created by the supply chain. For our single step supply -chain, we can see the name of that step/resource, "deploy". There is a reference to the template object (just as we -specified in the supply chain object) and a reference to the object that was stamped out. Let’s examine that object: - -### Stamped Object - -```shell -$ kubectl get -o yaml deployment hello-deployment -``` - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: ... -spec: ... -status: - availableReplicas: 3 - conditions: - - lastTransitionTime: ... - lastUpdateTime: ... - message: Deployment has minimum availability. - reason: MinimumReplicasAvailable - status: "True" - type: Available - - lastTransitionTime: ... - lastUpdateTime: ... - message: ReplicaSet "hello-deployment-5dddb657c" has successfully progressed. - reason: NewReplicaSetAvailable - status: "True" - type: Progressing - observedGeneration: 1 - readyReplicas: 3 - replicas: 3 - updatedReplicas: 3 -``` - -Success! We can tell that the deployment is ready on the cluster because its condition `Available` is true. - -We should also note some of the metadata of our created object: - -```yaml -metadata: - ownerReferences: - - apiVersion: carto.run/v1alpha1 - blockOwnerDeletion: true - controller: true - kind: Workload - name: hello - uid: d86b7dbf-8fcf-466e-abab-ebbc25404a06 - ... -``` - -First, we see an owner reference to our workload. This is helpful in a number of ways. It allows easy tracking of -relationships. If you use a tool like [kubectl tree](https://github.com/ahmetb/kubectl-tree) or -[kube-lineage](https://github.com/tohjustin/kube-lineage), examining the workload will display the child objects created -and the children of those objects. - -```shell -$ kubectl tree workload hello -``` - -```console -NAMESPACE NAME READY REASON AGE -default Workload/hello True Ready ... -default └─Deployment/hello-deployment - ... -default └─ReplicaSet/hello-deployment-abc123 - ... -default ├─Pod/hello-deployment-abc123-def45 True ... -default ├─Pod/hello-deployment-abc123-ghi67 True ... -default └─Pod/hello-deployment-abc123-jkl89 True ... -``` - -The other advantage of this owner relation is in cleanup. If the app dev deletes the workload, kubernetes will handle -deletion of the child objects. - -The other part of the metadata for us to observe are the labels: - -```yaml -metadata: ... - labels: - carto.run/cluster-template-name: app-deploy - carto.run/resource-name: deploy - carto.run/supply-chain-name: supply-chain - carto.run/template-kind: ClusterTemplate - carto.run/workload-name: hello - carto.run/workload-namespace: default -``` - -Cartographer adds helpful labels to indicate all of the Cartographer objects involved in the creation of a stamped -object (template, supply chain, workload). - -### Interacting with the app - -As a final step let’s create a quick port-forward and see our deployment serve traffic: - -```shell -$ kubectl port-forward deployment/hello-deployment 3000:80 -``` - -Now we visit the site! [http://localhost:3000/](http://localhost:3000/) - -We should see our app serving: - -{{< figure src="../../img/tutorials/hello-world-nginx.png" alt="Hello World" -width="400px" >}} - -Wonderful. Our company's first application has been delivered. - -## Steps for a second dev - -We use Cartographer to create an application platform for our developers. Let’s act now as a second dev, bringing a new -application to the platform. - -We assume that all the app operator setup from above remains. All we need to do is create a new workload with a -reference to a different pre-built image: - -{{< tutorial workload-2.yaml >}} - -We can follow the same steps to observe the workload and the created objects. And we can do a similar port-forward (note -that this app serves traffic on its 8000 port): - -```shell -$ kubectl port-forward deployment/whale-hello-there-deployment 3000:8000 -$ curl localhost:3000 -``` - -```html -
-Hello World
-
-
-                                       ##         .
-                                 ## ## ##        ==
-                              ## ## ## ## ##    ===
-                           /""""""""""""""""\___/ ===
-                      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
-                           \______ o          _,/
-                            \      \       _,'
-                             `'--.._\..--''
-
-``` - -## Wrap Up - -Congratulations, you’ve built your first supply chain! Here are some of the things you’ve learned: - -- The relationship between supply chains and templates -- The syntax for templates to refer to workload values -- The relationship between the selector on a supply chain and the labels on a workload -- The creation and referencing of a service account for Cartographer to manage the objects specified by the supply chain diff --git a/site/content/docs/v0.3.0/tutorials/runnable-in-a-supply-chain.md b/site/content/docs/v0.3.0/tutorials/runnable-in-a-supply-chain.md deleted file mode 100644 index d1b30d2cb..000000000 --- a/site/content/docs/v0.3.0/tutorials/runnable-in-a-supply-chain.md +++ /dev/null @@ -1,415 +0,0 @@ -# Using Runnable in a Supply Chain - -## Overview - -In the previous tutorial we saw how Runnable brings updateable behavior to immutable kubernetes objects. In this -tutorial, we’ll see how we can use Runnable in our supply chains for common behavior like linting, scanning, and -testing. - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer, kpack and Tekton installed. You can find -[Cartographer's installation instructions here](https://github.com/vmware-tanzu/cartographer#installation), kpack's -[here](https://github.com/pivotal/kpack/blob/main/docs/install.md) and Tekton's -[here](https://github.com/pivotal/kpack/blob/main/docs/install.md). - -You will also need an image registry for which you have read and write permission. - -You may choose to use the [./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script -to install a kind cluster with Cartographer, Tekton, kpack and a local registry. _This script is meant for our -end-to-end testing and while we rely on it working in that role, no user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest example-dependencies -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -Continuing the scenario from [the previous tutorial](runnable.md), we remember that our CTO is interested in putting -quality controls in place; only code that passes certain checks should be built and deployed. They want to start small, -and have decided all source code repositories that are built must pass markdown linting. In order to do this we’re going -to leverage -[the markdown linting pipeline in the TektonCD catalog](https://github.com/tektoncd/catalog/tree/main/task/markdown-lint/0.1). - -Last tutorial we saw how to use Cartographer’s Runnable to give us easy updating behavior of Tekton (no need for Tekton -Triggers and Github Webhooks). In this following tutorial we’ll complete the scenario by using Runnable in a supply -chain. - -## Steps - -### App Operator Steps - -Much of our work from the previous tutorial remains the same. We deployed a Tekton pipeline and two Tekton Tasks in the -cluster. These objects will be applied in this tutorial with no change. - -We deployed a ClusterRunTemplate that templated a Tekton PipelineRun. This will stay largely the same, with only a -change to the outputs (We're going to define outputs that are slightly more useful than the ones we chose last -tutorial). We will still deploy this object directly. - -The object that we’ll deploy differently is the Runnable. To use Runnable in a supply chain we’ll wrap it in a -Cartographer template. This template will be referenced in our supply chain. This work should feel very familiar to the -steps we took in the [Build Your First Supply Chain](first-supply-chain.md) tutorial! - -#### Supply Chain - -Let’s begin by thinking through what template we need and where it will go in our supply chain. Our goal is to ensure -that the only repos that are built and deployed are those that pass linting. So we’ll need our new step to be the first -step in a supply chain. This step will receive the location of a source code and if the source code passes linting it -will pass that location inforation to the next step in the supply chain. Do you remember what template is meant to -expose information about the location of source code? That’s right, the ClusterSourceTemplate. - -Let’s define our supply chain now. We’ll start with the supply chain we created in the Extending a Supply Chain -tutorial. The resources then looked like this: - - -```yaml - resources: - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - images: - - resource: build-image - name: built-image -``` - - -We’ll add a new first step, lint source code. As we determined before, this will refer to a ClusterSourceTemplate. Our -second step will remain a ClusterImageTemplate, but it will have to be a new template. This is because it will consume -the source code from the previous step rather than directly from the workload. The rest of the resources will remain the -same. - - -```yaml - resources: - - name: lint-source - templateRef: - kind: ClusterSourceTemplate - Name: source-linter - - name: build-image - templateRef: - kind: ClusterImageTemplate - name: image-builder-from-previous-step - sources: - - resource: lint-source - name: source - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy-from-sc-image - images: - - resource: build-image - name: built-image -``` - - -Our final step with the supply chain will be referring to a service-account. Let's think through what permissions we -need: - -- the `source-linter` template will create a runnable -- the `image-builder-from-previous-step` template will create a kpack image (just as the supply chain from the - [Extending a Supply Chain](extending-a-supply-chain.md) tutorial) -- the `app-deploy-from-sc-image` template will create a deployment (just as the supply chain from the - [Extending a Supply Chain](extending-a-supply-chain.md) tutorial) - -The only new object created here is a runnable, which is a Cartographer resource. The Cartographer controller already -has permission to manipulate Cartographer resources. So we do not need to do any alterations, we can simply reuse the -service account (and roles and role bindings) from the [Extending a Supply Chain](extending-a-supply-chain.md) tutorial. - -_Note that while the supply chain refers to a service account, the Runnable itself also refers to a service account. -More on that in a moment._ - -Here is our complete supply chain. - -{{< tutorial supply-chain.yaml >}} - -#### Templates - -There are two new templates that need to be written, `image-builder-from-previous-step` and `source-linter`. Creating -the `image-builder-from-previous-step` will be left as an exercise for the reader. Refer to the Extending a Supply Chain -tutorial for help. Let's turn to creating the `source-linter` template. - -We know we’ll wrap our Runnable in a ClusterSourceTemplate. We’ll begin as always, taking our previously created -Runnable and simply pasting it into a ClusterSourceTemplate: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterSourceTemplate -metadata: - name: source-linter -spec: - template: - apiVersion: carto.run/v1alpha1 - kind: Runnable - metadata: - name: linter - spec: - runTemplateRef: - name: md-linting-pipelinerun - inputs: - repository: https://github.com/waciumawanjohi/demo-hello-world - revision: main - serviceAccountName: pipeline-run-management-sa - urlPath: ??? - revisionPath: ??? -``` - -We can quickly see that there are hardcoded values that we’ll want to replace with references to the workload (so that -our supply chain can work with many different workloads). These are the `inputs` values. Remember, these fields are -inputs to the ClusterRunTemplate. If a value could be hardcoded, it should not be a field in the Runnable’s inputs at -all, it should simply be hardcoded in the ClusterRunTemplate (e.g. every field in the runnable `spec.inputs` should -become a Cartographer variable). Let’s look at how we’ll change `inputs`: - - -```yaml - inputs: - repository: $(workload.spec.source.git.url)$ - revision: $(workload.spec.source.git.revision)$ -``` - - -Quite straightforward and familiar. Simply pull the requisite values from the workload. The next step will be -straightforward as well; we need to make sure that multiple apps don’t overwrite one Runnable object. We need to -template the Runnable’s name: - - -```yaml - metadata: - name: $(workload.metadata.name)$-linter -``` - - -Finally, we need to fill the `urlPath` and `revisionPath` to tell the ClusterSourceTemplate what field of the Runnable -to expose for the `url` and `revision`. Remember, that’s the contract of a ClusterSourceTemplate, it exposes those two -values to the rest of the supply chain. Runnables have a `.status` field, which we'll use. The contents of that field -are determined by fields on the ClusterRunTemplate. In the [previous tutorial](runnable.md) the ClusterRunTemplate -declared that the output would be called `lastTransitionTime`. Let's declare our intention now to change the -ClusterRunTemplate. In a moment we'll alter it to set new outputs named `url` and `revision`. That will allow us to -finish the ClusterSourceTemplate wrapping our runnable. - -```yaml -spec: - template: ... - urlPath: .status.outputs.url - revisionPath: .status.outputs.revision -``` - -Wonderful. Our ClusterSourceTemplate is complete: - -{{< tutorial source-linter-template.yaml >}} - -#### ClusterRunTemplate - -Our supply-chain will now stamp out a Runnable. But we still have to change the ClusterRunTemplate to ensure that the -status of the Runnable has the fields we want. Just a moment ago we decided that these fields should be `url` and -`revision`. Before we alter the previous ClusterRunTemplate from the previous tutorial, let's look at it: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: - name: md-linting-pipelinerun -spec: - template: - apiVersion: tekton.dev/v1beta1 - kind: PipelineRun - metadata: - generateName: linter-pipeline-run- - spec: - pipelineRef: - name: linter-pipeline - params: - - name: repository - value: $(runnable.spec.inputs.repository)$ - - name: revision - value: $(runnable.spec.inputs.revision)$ - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - outputs: - lastTransitionTime: .status.conditions[0].lastTransitionTime -``` - -We can see that the `spec.outputs` field was used to prescribe a `lastTransitionTime` field. We’ll change that to a -`url` and `revision` field: - - -```yaml - outputs: - url: ??? - revision: ??? -``` - - -Great. Now let’s think; where on the object that’s created will we find these values. Actually, why think about it; -let’s take a look at the pipelinerun that was created in the last tutorial! - -```yaml -apiVersion: tekton.dev/v1beta1 -kind: PipelineRun -metadata: - name: linter-pipeline-run-123az - generateName: linter-pipeline-run- - labels: - carto.run/run-template-name: md-linting-pipelinerun - carto.run/runnable-name: linter - tekton.dev/pipeline: linter-pipeline - ownerReferences: - - apiVersion: carto.run/v1alpha1 - blockOwnerDeletion: true - controller: true - kind: Runnable - name: linter - uid: ... - ... -spec: - params: - - name: repository - value: https://github.com/waciumawanjohi/demo-hello-world - - name: revision - value: main - pipelineRef: - name: linter-pipeline - serviceAccountName: default - timeout: 1h0m0s - workspaces: - - name: shared-workspace - volumeClaimTemplate: - metadata: - creationTimestamp: null - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - status: {} -status: - completionTime: ... - conditions: ... - pipelineSpec: ... - startTime: ... - taskRuns: ... -``` - -While it feels most natural to read outputs from the `.status` of objects, in this case the value we want is in the -`.spec`. We can see that the `.spec.params` of this object has the url and revision of the source code. That's the value -we wish to pass on if the pipeline-run is successful. We'll use jsonpath in our outputs to grab these values: - - -```yaml - outputs: - url: spec.params[?(@.name=="repository")].value - revision: spec.params[?(@.name=="revision")].value -``` - - -Great, our outputs are complete. - -There’s one more thing that we can do to make things easy on ourselves, differentiate the name of pipeline-runs of one -workload from those of another. Technically, we do not have to do this. Cartographer is smart enough to stamp out these -objects and differentiate objects created from the same prefix from Runnable 1 and Runnable 2. But we’re human and it’ll -be nice for us to quickly be able to distinguish. - -```yaml -spec: - template: - metadata: - generateName: $(runnable.metadata.name)$-pipeline-run- -``` - -Let’s pull it all together! Our ClusterRunTemplate now reads: - -{{< tutorial cluster-run-template.yaml >}} - -#### Runnable's Service Account - -The last object to mention is the serviceAccount object referred to in the ClusterSourceTemplate wrapped Runnable. We -could refer to the same service account referred to in the supply chain. Then we would simply bind an additional role to -the account, one that allows creation of a Tekton PipelineRun. Or we can refer to a different service account with these -permissions. We created such a service account in the [previous tutorial](runnable.md) and our runnable still refers to -that name. We will simply deploy that service account. - -Now we're ready. Let’s submit all these objects and step into our role as App Devs. - -### App Dev Steps - -As devs, our work is easy! We submit a workload. We’re being asked for the same information as ever from the templates, -a url and a revision for the location of the source code. We can submit the same workload from the -[Extending a Supply Chain tutorial](extending-a-supply-chain.md): - -{{< tutorial workload.yaml >}} - -## Observe - -Using [kubectl tree](https://github.com/ahmetb/kubectl-tree) we can see our workload is parent to a runnable which in -turn is parent to a pipeline-run. - -```shell -$ kubectl tree workload hello-again -``` - -```console -NAMESPACE NAME READY REASON AGE -default Workload/hello-again True Ready -default ├─Deployment/hello-again-deployment - -default │ └─ReplicaSet/hello-again-deployment-67b7dc6d5 - -default │ ├─Pod/hello-again-deployment-67b7dc6d5-djtph True -default │ ├─Pod/hello-again-deployment-67b7dc6d5-f2nkv True -default │ └─Pod/hello-again-deployment-67b7dc6d5-p4m9c True -default ├─Image/hello-again True -default │ ├─Build/hello-again-build-1 - -default │ │ └─Pod/hello-again-build-1-build-pod False PodCompleted -default │ ├─PersistentVolumeClaim/hello-again-cache - -default │ └─SourceResolver/hello-again-source True -default └─Runnable/hello-again-linter True Ready -default └─PipelineRun/hello-again-linter-pipeline-run-x123x - -default ├─PersistentVolumeClaim/pvc-1a89a7e201 - -default ├─TaskRun/hello-again-linter-pipeline-run-x123x-fetch-repository - -default │ └─Pod/hello-again-linter-pipeline-run-x123x-fetch-repository-pod False PodCompleted -default └─TaskRun/hello-again-linter-pipeline-run-x123x-md-lint-run - -default └─Pod/hello-again-linter-pipeline-run-x123x-md-lint-run-pod False PodCompleted -``` - -We also see that the workload is in a ready state, as are all of the pods of our deployment. - -## Wrap Up - -You’ve now built a supply chain leveraging runnables. Your app platform can now provide testing, scanning, linting and -more to all the applications brought by your dev teams. Let’s look at what you learned in this tutorial: - -- How to wrap a Runnable in a Cartographer template -- How to align the outputs from a ClusterRunTemplate with the values exposed by the template wrapping the Runnable - -Before we leave this tutorial, we should note that the supply chain that we’ve created deals very well with new apps -that are brought to the platform. That is, when a workload is submitted, the app will be linted and upon success will -proceed to be built. But this supply chain is not resilient to changes made to the source code of said app. What will -happen if the code was good, but is changed to a bad state? The linting step won’t rerun, as from the tekton -perspective, no value has changed; it still has the same url and revision. - -In order to address this problem, production supply chains should leverage a resource like -[fluxCD’s source controller](https://fluxcd.io/docs/components/source/). This kubernetes resource will translate a -revision like `main` into the revision of the current commit on main (e.g. commit `abc123`). When main is updated, -source controller will ensure that it outputs the new commit that is the head of main. Leveraging this resource, we can -avoid the dilemma presented above. - -Users can see supply chains that use fluxCD’s source controller in -[Cartographer’s examples](https://github.com/vmware-tanzu/cartographer/tree/main/examples). diff --git a/site/content/docs/v0.3.0/tutorials/runnable.md b/site/content/docs/v0.3.0/tutorials/runnable.md deleted file mode 100644 index 81f2dcc93..000000000 --- a/site/content/docs/v0.3.0/tutorials/runnable.md +++ /dev/null @@ -1,386 +0,0 @@ -# Runnable: Templating Objects That Cannot Update - -## Overview - -In this tutorial we’ll explore a new Cartographer resource: runnable. Runnables will enable us to choreograph resources -that do not support standard update behavior. We’ll see how we can wrap Runnables around tools useful for testing, like -Tekton, and how that will provide us easy updating behavior of our testing objects. - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer and Tekton installed. You can find -[Cartographer's installation instructions here](https://github.com/vmware-tanzu/cartographer#installation) and -[Tekton's installation instructions are here](https://github.com/pivotal/kpack/blob/main/docs/install.md). - -Alternatively, you may choose to use the -[./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script to install a kind cluster -with Cartographer and Tekton. _This script is meant for our end-to-end testing and while we rely on it working in that -role, no user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest example-dependencies -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -Our CTO is interested in putting quality controls in place; only code that passes certain checks should be built and -deployed. They want to start small: all source code repositories that are built must pass markdown linting. In order to -do this we’re going to leverage -[the markdown linting pipeline in the TektonCD catalog](https://github.com/tektoncd/catalog/tree/main/task/markdown-lint/0.1). - -In this tutorial we’ll see how to use Cartographer’s Runnable to give us easy updating behavior of Tekton (no need for -Tekton Triggers and Github Webhooks). In [the next tutorial](runnable-in-a-supply-chain.md) we’ll complete the scenario -by using Runnable in a supply chain. - -## Steps - -### Tekton Basics - -Before using Cartographer, let’s think about how we would use Tekton on its own to lint a repo. First we would define a -pipeline: - -{{< tutorial pipeline.yaml >}} - -We would apply this pipeline to the cluster, along with the tasks. Those tasks are in the TektonCD Catalog: - -```shell -$ kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/git-clone/0.3/git-clone.yaml -$ kubectl apply -f https://raw.githubusercontent.com/tektoncd/catalog/main/task/markdown-lint/0.1/markdown-lint.yaml -``` - -Finally, we need to create a pipeline-run object. This object provides the param and workspace values defined at the top -level `.spec` field of the pipeline. - -```yaml ---- -apiVersion: tekton.dev/v1beta1 -kind: PipelineRun -metadata: - name: linter-pipeline-run -spec: - pipelineRef: - name: linter-pipeline - params: - - name: repository - value: https://github.com/waciumawanjohi/demo-hello-world - - name: revision - value: main - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi -``` - -Importantly, this pipeline-run object will kick off a single run of the pipeline. The run will either succeed or fail. -The outcome will be written into the pipeline-run’s status. No later changes to the pipeline-run object will change -those outcomes; the run happens once. - -To see this in action, let’s apply the above pipeline-run. If we watch the object, we’ll soon see that it succeeds. - -```shell -$ watch 'kubectl get -o yaml pipelinerun linter-pipeline-run | yq .status.conditions' -``` - -Eventually yields the result: - -```yaml -- lastTransitionTime: ... - message: "Tasks Completed: 2 (Failed: 0, Cancelled 0), Skipped: 0" - reason: "Succeeded" - status: "True" - type: "Succeeded" -``` - -### Templating Pipeline Runs - -This seems like a very easy step to encode in a supply chain. All we would need to do is ensure that the Tekton tasks -and pipeline are created beforehand. Then a supply chain could stamp out a templated pipeline-run object. This template -will pull the repository and revision value from the workload. But there’s a problem... what happens if an app dev -changes one of these values on the workload? Our supply chain would not properly reflect the change, because the -pipeline-run object cannot be updated! - -Fortunately there’s an easy fix. We’re going to use a pair of new Cartographer resources: Runnable and -ClusterRunTemplate. - -It will be the responsibility of the ClusterRunTemplate to template our desired object (in this case, our Tekton -pipeline-run). The Runnable will be responsible for providing values to the ClusterRunTemplate, the values that we -expect to vary (in our example, the url and revision of the source code). When the set of values from the Runnable -changes, a new object will be created (rather than the old object updated). - -The Runnable will also expose results. Of course, multiple results will exist, a result for each of the objects created. -Runnable will only expose the results from the most recently submitted successful object. - -In this manner, we get a wrapper (Runnable) that is updateable and updates results in its status. This is similar to the -default behavior of kuberenetes objects. By wrapping Tekton pipeline-runs (or any immutable resource) in a Runnable, we -will be able to use the resource in a supply chain as if it were mutable. - -Let’s see the Runnable and the ClusterRunTemplate at work. Once we’re solid on those, we’ll use Runnable in a Supply -Chain in the next tutorial. - -#### ClusterRunTemplate - -Let’s start with the ClusterRunTemplate. As can be expected from the name, there’s a `.spec.template` field in it, where -we will write something very similar to our pipeline-run above. In fact, let’s write that exact pipeline-run in and then -look at the values that will need to change: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterRunTemplate -metadata: - name: md-linting-pipelinerun -spec: - template: - apiVersion: tekton.dev/v1beta1 - kind: PipelineRun - metadata: - name: linter-pipeline-run # <=== Can’t all have the same name - spec: - pipelineRef: - name: linter-pipeline - params: # <=== These param values will change - - name: repository - value: https://github.com/waciumawanjohi/demo-hello-world - - name: revision - value: main - workspaces: - - name: shared-workspace - volumeClaimTemplate: - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi -``` - -Most fields are fine. The name field is not. Why not? If we want to change the values for the pipeline-run, we’re not -going to update the templated object. We’re going to create an entirely new object. And of course that new object can’t -have the same hardcoded name. To handle this, every object templated in a ClusterRunTemplate specifies a `generateName` -rather than a `name`. We can use `linter-pipeline-run-` and kubernetes will handle putting a unique suffix on the name -of each pipeline-run. - - -```yaml - metadata: - generateName: linter-pipeline-run- -``` - - -The other change we want to make is to the values on the params. It doesn’t do much good to hardcode -`https://github.com/waciumawanjohi/demo-hello-world` into the repository param; this is the value we want to update. As -we said, we intend to update the Runnable and have the value in that update stamped out in a new pipeline-run object. So -we replace the hardcoded value with a Cartographer parameter. We’ll find the value that we want on the runnable. That -will look like `$(runnable.spec.inputs.repository)$`. This specifies that the value we want will be found in the -runnable spec, in a field named inputs, one of which will have the name `repository`. - -There’s only one more thing that we need to specify on the ClusterRunTemplate: what the outputs will be! We said that -the Runnable status will reflect results of a successful run. The ClusterRunTemplate specifies what results. For now -let’s simply report the lastTransition time that we saw on the conditions. We use jsonpath to indicate the location of -this value on the objects that are being stamped: - - -```yaml - outputs: - lastTransitionTime: .status.conditions[0].lastTransitionTime -``` - - -Let’s look at our complete ClusterRunTemplate: - -{{< tutorial cluster-run-template.yaml >}} - -#### Runnable - -Now let’s make the Runnable. First we’ll specify which ClusterRunTemplate our Runnable works with. We do this in the -Runnable's `.spec.runTemplateRef.` field and we refer to the name of the ClusterRunTemplate we just created. - - -```yaml - runTemplateRef: - name: md-linting-pipelinerun -``` - - -Next we’ll fill in the inputs. These are the paths that we templated into the ClusterRunTemplate param values, the -`runnable.spec.inputs.repository` and `runnable.spec.inputs.revision`. We’ll fill these with the values we previously -hardcoded in the pipelinerun. With runnable we’ll be able to update them later as we like. - - -```yaml - inputs: - repository: https://github.com/waciumawanjohi/demo-hello-world - revision: main -``` - - -Finally, we need a serviceAccountName. Just like the supply-chain, with Runnable Cartographer could be stamping out -_anything_. Using RBAC we expect a service account to provide permissions to Cartographer and limit it to creating only -the types of objects we expect. We'll create a service account named `pipeline-run-management-sa`. We’ll put that name -in our Runnable object. The full object looks like this: - -{{< tutorial runnable.yaml >}} - -Let’s quickly create the service account we referenced: - -{{< tutorial service-account.yaml >}} - -Great! Let’s deploy these objects. - -## Observe - -Let’s observe the pipeline-run objects in the cluster: - -```shell -$ kubectl get pipelineruns -``` - -We can see that a new pipelinerun has been created with the `linter-pipeline-run-` prefix: - -```console -NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME -linter-pipeline-run-123az True Succeeded 2m48s 2m35s -``` - -Examining the created object it’s a non-trivial 300 lines: - -```shell -$ kubectl get -o yaml pipelineruns linter-pipeline-run-123az -``` - -In the metadata we can see familiar labels indicating Carto objects used to create this templated object. We can also -see that the object is owned by the runnable. - -```yaml -apiVersion: tekton.dev/v1beta1 -kind: PipelineRun -metadata: - name: linter-pipeline-run-123az - generateName: linter-pipeline-run- - labels: - carto.run/run-template-name: md-linting-pipelinerun - carto.run/runnable-name: linter - tekton.dev/pipeline: linter-pipeline - ownerReferences: - - apiVersion: carto.run/v1alpha1 - blockOwnerDeletion: true - controller: true - kind: Runnable - name: linter - uid: ... - ... -``` - -The spec contains the spec that we templated out. Looks great. - -```yaml -spec: - params: - - name: repository - value: https://github.com/waciumawanjohi/demo-hello-world - - name: revision - value: main - pipelineRef: - name: linter-pipeline - serviceAccountName: default - timeout: 1h0m0s - workspaces: - - name: shared-workspace - volumeClaimTemplate: - metadata: - creationTimestamp: null - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 256Mi - status: {} -``` - -The status contains fields expected of Tekton: - -```yaml -status: - completionTime: ... - conditions: - - lastTransitionTime: "2022-03-07T19:24:35Z" - message: "Tasks Completed: 2 (Failed: 0, Cancelled 0), Skipped: 0" - reason: Succeeded - status: "True" - type: Succeeded - pipelineSpec: ... - startTime: ... - taskRuns: ... -``` - -To learn more about Tekton’s behavior, readers will want to refer to [Tekton documentation](https://tekton.dev/docs/). - -Now we examine the Cartographer Runnable object. We expect it to expose values from our successful object. - -```shell -$ kubectl get -o yaml runnable linter -``` - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Runnable -Metadata: ... -Spec: ... -status: - conditions: ... - observedGeneration: ... - outputs: - lastTransitionTime: "2022-03-07T19:24:35Z" -``` - -Wonderful! The value from the field we specified in the ClusterRunTemplate is now in the outputs of the Runnable. - -Finally, let's update our runnable with a new repository: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: Runnable -metadata: - name: linter -spec: - runTemplateRef: - name: md-linting-pipelinerun - inputs: - repository: https://github.com/kelseyhightower/nocode # <=== new repo - revision: master # <=== new revision - serviceAccountName: pipeline-run-management-sa -``` - -When we apply this to the cluster, we can observe: - -- The spec of our runnable is updated -- The runnable causes the creation of a new pipelinerun -- The new pipeline run fails because the new repo does not pass linting -- Since the result of the new pipeline run is failure, our runnable output remains the output of our previous - (successful) pipeline run - -## Wrap Up - -In this tutorial you learned: - -- Some useful kubernetes objects cannot be updated -- Runnable allows you to add updateable behavior to those objects -- How to write Runnables with input values for ClusterRunTemplates -- How to write ClusterRunTemplates that specify outputs for the Runnable -- How to read output values from the Runnable - -We’ve got an updateable object, Runnable, that can manage tekton pipelines and tasks. Our next step is going to be using -Runnable in a supply chain. diff --git a/site/content/docs/v0.3.0/tutorials/using-params.md b/site/content/docs/v0.3.0/tutorials/using-params.md deleted file mode 100644 index 0f821e2e2..000000000 --- a/site/content/docs/v0.3.0/tutorials/using-params.md +++ /dev/null @@ -1,231 +0,0 @@ -# Using Params - -## Overview - -In this tutorial we’ll explore how to use params to pass information that isn’t anticipated by the standard workload -fields. We’ll see how params can either be set or delegated to other objects in the supply chain. - -## Environment setup - -For this tutorial you will need a kubernetes cluster with Cartographer installed. You may follow -[the installation instructions here](https://github.com/vmware-tanzu/cartographer#installation). - -Alternatively, you may choose to use the -[./hack/setup.sh](https://github.com/vmware-tanzu/cartographer/blob/main/hack/setup.sh) script to install a kind cluster -with Cartographer. _This script is meant for our end-to-end testing and while we rely on it working in that role, no -user guarantees are made about the script._ - -Command to run from the Cartographer directory: - -```shell -$ ./hack/setup.sh cluster cartographer-latest -``` - -If you later wish to tear down this generated cluster, run - -```shell -$ ./hack/setup.sh teardown -``` - -## Scenario - -As in the tutorial ["Build Your First Supply Chain"](first-supply-chain.md), we will act as both the app dev and app -operator in a company creating hello world web applications. Our applications will again have been built and stored in a -registry. But now each image will be in some private registry and each app dev will need to provide the appropriate -service account with imagePullCredentials for our deployment. We will assume that the app devs have already created the -necessary service account in their namespace. We will see how to write our templates to accept a parameter with the -service account name as well as how to write a workload to supply that value. - -## Steps - -### App Operator Steps - -A new field must be added to our template of a deployment: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - name: app-deploy -spec: - template: - apiVersion: apps/v1 - kind: Deployment - metadata: - name: $(workload.metadata.name)$-deployment - labels: - app: $(workload.metadata.name)$ - spec: - replicas: 3 - selector: - matchLabels: - app: $(workload.metadata.name)$ - template: - metadata: - labels: - app: $(workload.metadata.name)$ - spec: - serviceAccountName: # <=== NEW FIELD - containers: - - name: $(workload.metadata.name)$ - image: $(workload.spec.image)$ -``` - -Let’s assume that the app operator has created an image registry in which they have expansive read credentials. The -operator can reasonably expect that many devs will use this registry. So the operator can be responsible for the -creation of a service account with the correct imagePullCredentials and can make sure this object is in the expected -namespaces with the expected name. Let’s set this expected name as "expected-service-account". - -While this will be the default value, we will allow the developer to override this choice. We’ll do this by setting the -name as a param for the ClusterTemplate: - -```yaml -apiVersion: carto.run/v1alpha1 -kind: ClusterTemplate -metadata: - ... -spec: - template: - ... - spec: - ... - template: - ... - spec: - serviceAccountName: $(params.image-pull-sa-name)$ - ... - params: - - name: image-pull-sa-name - default: expected-service-account -``` - -Here we see two changes to the ClusterTemplate’s spec: - -- The first is a field in the template. The field has been filled with a reference to a param: - `$(params.image-pull-sa-name)$` -- Second, we see that a new field has been introduced to the spec: `params`. This is a list of params, each of which - requires a name and a default value. Here, the app operator indicates that many devs will have a service account named - `expected-service-account` in their namespace. - -We can see here the full object we'll apply to the cluster: - -{{< tutorial app-deploy-template.yaml >}} - -We apply this template to the cluster along with the same supply chain from the -["Build Your First Supply Chain"](first-supply-chain.md) tutorial. - -### App Dev Steps - -As app devs, we’ve decided not to follow the app operator service account naming convention. We’ve created a service -account named "unconventionally-named-service-account" which has the imagePullSecrets to get our app image. In the -workload, we'll create a param. Params in workloads require two fields, a name and a value. We must give our param the -same name as the param in the template, `image-pull-sa-name`. And for the value, we'll provide our chosen service -account's name. - -```yaml -spec: - params: - - name: image-pull-sa-name - value: unconventionally-named-service-account -``` - -We can now apply this workload to the cluster: - -{{< tutorial workload.yaml >}} - -## Observe - -When we observe the created deployment, we can see that the value specified by the workload is present: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: hello-again-deployment - ... -spec: - template: - metadata: ... - spec: - Containers: ... - dnsPolicy: ... - restartPolicy: ... - schedulerName: ... - securityContext: {} - serviceAccount: unconventionally-named-service-account # <=== huzzah! - serviceAccountName: unconventionally-named-service-account - terminationGracePeriodSeconds: 30 - ... -status: ... -``` - -## Further information - -Params are created to allow delegation between different personas. The individual writing a template may be different -from the person writing the supply chain. Perhaps the template author is unsure of a parameter’s value, but the supply -chain author knows exactly the desired value and does not want the workload author to be able to override their choice. -The supply chain can be altered to specify a `value`. - -```yaml ---- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supply-chain -spec: - selector: - workload-type: pre-built - - resources: - - name: deploy - templateRef: - kind: ClusterTemplate - name: app-deploy - params: # <=== New field - - name: image-pull-sa-name - value: inevitable-service-account -``` - -If the supply chain is redeployed with this definition, we can observe that the deployment changes: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: hello-deployment - ... -spec: - template: - metadata: ... - spec: - Containers: ... - dnsPolicy: ... - restartPolicy: ... - schedulerName: ... - securityContext: {} - serviceAccount: inevitable-service-account - serviceAccountName: inevitable-service-account - terminationGracePeriodSeconds: 30 - ... -status: ... -``` - -Further information about params and the order of precedence can be found in the -["Parameter Heirarchy"](../architecture/#parameter-hierarchy) architecture documentation. - -In the Cartographer tests you can find an example of creating an object with numerous parameters which demonstrates the -precedence rules: - -- [A template with many param fields, providing default values for some](https://github.com/vmware-tanzu/cartographer/tree/main/tests/kuttl/supplychain/params-supply-chain/00-proper-templates.yaml) -- [A supply chain providing some defaults and some values for params](https://github.com/vmware-tanzu/cartographer/tree/main/tests/kuttl/supplychain/params-supply-chain/01-supply-chain.yaml) -- [A workload providing some values for params](https://github.com/vmware-tanzu/cartographer/tree/main/tests/kuttl/supplychain/params-supply-chain/02-workload.yaml) -- [The expected object which will be created when that trio is submitted to the cluster](https://github.com/vmware-tanzu/cartographer/tree/main/tests/kuttl/supplychain/params-supply-chain/02-assert.yaml) - -## Wrap Up - -Congratulations, you’ve used parameters in your supply chain! You’ve learned: - -- How a template requests information from a workload not available in the standard workload fields -- How to provide default values for params -- How the supply chain can provide mandatory values for params -- How to find more information on params diff --git a/site/content/posts/_index.md b/site/content/posts/_index.md deleted file mode 100644 index 5dfa548e6..000000000 --- a/site/content/posts/_index.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: "Blog" -id: blog -url: /blog -outputs: ["HTML", "RSS"] -layout: listß ---- diff --git a/site/content/posts/announcing-cartographer.md b/site/content/posts/announcing-cartographer.md deleted file mode 100644 index dd94eb9a3..000000000 --- a/site/content/posts/announcing-cartographer.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: "Announcing Cartographer" -slug: building-paths-to-prod -date: 2021-10-05 -author: Cartographer Team -authorLocation: https://github.com/vmware-tanzu/cartographer/blob/main/MAINTAINERS.md -image: /img/posts/announcing-carto/cover-image.png -excerpt: "Announcing Cartographer a Choreographer for Kubernetes" -tags: ["Path to Production"] ---- - -A path to production is a way of codifying an application’s value stream map as it makes its way from a developer’s -workstation to a production environment. - -![A Simple Path to Production](/img/posts/announcing-carto/path-to-prod.png) - -Although Kubernetes has a rich ecosystem of APIs and tools to do the work, managing the communication paths between -these resources can still be a big pain. - -This is why we’ve created and open-sourced Cartographer, a tightly scoped tool that can -[_choreograph_](https://tanzu.vmware.com/developer/guides/supply-chain-choreography/) events within the Kubernetes -ecosystem. Instead of building an entirely new platform to hide this complexity and offer convenience, we are building -on top of Kubernetes primitives to enable automation and encourage composability. You’ll find Cartographer on -[GitHub](https://github.com/vmware-tanzu/cartographer). - -## What is Cartographer? - -Cartographer allows users to configure Kubernetes resources into re-usable supply chains that can be used to define all -of the stages that an Application Workload must go through to get to an environment. We call these stages the path to -production. - -Cartographer separates controls between a user responsible for defining a Supply Chain (known as an App Operator) and a -user responsible for creating the application (the Developer). These roles are not necessarily mutually exclusive, but -provide the ability to create a separation concerns which means developers can focus on writing code, and platforms -teams can focus on smoothing and securing their path to production. - -### Want to learn more? - -- [Getting Started with Cartographer](https://github.com/vmware-tanzu/cartographer#getting-started) -- Your First Supply Chain: - [Source to Knative Service](https://github.com/vmware-tanzu/cartographer/blob/main/examples/source-to-knative-service/README.md) - -## How Does It Work? - -Cartographer allows users to define all of the steps that an application must go through to create an image and -Kubernetes configuration. Users achieve this with the -[**_Supply Chain_**](https://cartographer.sh/docs/latest/reference#clustersupplychain) abstraction. - -The supply chain consists of resources that are specified via Templates. Each template acts as a wrapper for existing -Kubernetes resources and allows them to be used with Cartographer. Cartographer supply chain templates include: - -- [**_Source Template_**](https://cartographer.sh/docs/latest/reference#clustersourcetemplate) -- [**_Image Template_**](https://cartographer.sh/docs/latest/reference#clusterimagetemplate) -- [**_Config Template_**](https://cartographer.sh/docs/latest/reference#clusterconfigtemplate) -- [**_Generic Template_**](https://cartographer.sh/docs/latest/reference#clustertemplate) - -Unlike many other existing Kubernetes native workflow tools, Cartographer does not “run” any of the objects themselves. -Instead, it monitors the execution of each resource and templates the following resource in the supply chain after a -given resource has completed execution and updated its status. - -The supply chain may also be extended to include integrations to existing CI/CD pipelines by using the Pipeline Service -(which is part of Cartographer Core). The Pipeline Service acts as a wrapper for existing CI and CD tooling (with -support for Tekton, and with plans to support more providers in the future) and provides a declarative way for pipelines -to be run inside of Cartographer. - -While the supply chain is operator facing, Cartographer also provides an abstraction for developers called -[**_Workloads_**](https://cartographer.sh/docs/latest/reference#workload). Workloads allow developers to create -application specifications such as the location of their repository, environment variables and service claims. - -By design, supply chains can be reused by many workloads. This allows an operator to specify the steps in the path to -production a single time, and for developers to specify their applications independently but for each to use the same -path to production. The intent is that developers are able to focus on providing value for their users and can reach -production quickly and easily, while providing peace of mind for app operators, who are ensured that each application -has passed through the steps of the path to production that they’ve defined. - -![Cartographer High Level Diagram](/img/posts/announcing-carto/ownership-flow.png) - -## It’s only just begun! - -The team here is excited to share Cartographer with the community! We’re looking forward to having you try it out, use -it, provide feedback, and to get involved if you’re interested. Whether it’s by automating the turning of source code -into a running app, or integrating security scans into every application that’s deployed onto your platform, our hope is -to help make Kubernetes app development and operations an absolute breeze. Get Involved - -We want Cartographer to be a project that embraces input from the community as it begins to find its place within the -Kubernetes ecosystem. From code contributions and documentation to sharing your usage in the field, there are many ways -to get involved. Try out the [latest release on GitHub](https://github.com/vmware-tanzu/cartographer/releases)! - -- [Propose or request new features](https://github.com/vmware-tanzu/cartographer/blob/main/rfc/README.md) -- [Easy first issues tag](https://github.com/vmware-tanzu/cartographer/labels/good%20first%20issue) - -## Join the Cartographer Community - -- Get updates on Twitter [@OssCartographer](https://twitter.com/OssCartographer) diff --git a/site/content/posts/benchmarking-cartographer.md b/site/content/posts/benchmarking-cartographer.md deleted file mode 100644 index 7b8e7d130..000000000 --- a/site/content/posts/benchmarking-cartographer.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -title: "Benchmarking Cartographer" -slug: benchmarking-cartographer -date: 2022-03-24 -author: Cartographer Team -authorLocation: https://github.com/vmware-tanzu/cartographer/blob/main/MAINTAINERS.md -image: /img/posts/benchmarking-cartographer/cover-image.png -excerpt: "Benchmarking CPU and memory usage of Cartographer" -tags: [""] ---- - -# Benchmarking Cartographer - -The Cartographer team has recently investigated resource consumption. The goal: to quantify CPU and memory consumption -to enable making better informed resource configuration recommendations. - -This article shares the approach, details of the initial implementation, results, and some final thoughts as well. The -implementation itself is fairly rudimentary but the problems and solutions outlined here may apply broadly. - -## High level approach - -The high level plan is as follows: - -1. Deploy a Cartographer release to be measured on a cluster; -2. Restart the pod; -3. Execute a run of a test plan with a given scale; -4. Sample and record memory and CPU consumption; -5. Repeat (2-4) with a different scale; -6. Plot some graphs and see results. - -Currently, steps 2-5 are automated. This can be seen in the file -[./hack/benchmark.sh](https://github.com/vmware-tanzu/cartographer/blob/9934a1468d694c5d87f06c864cfe3340328988d0/hack/benchmark.sh) -. Restarting the pod is necessary to avoid results clouded by caching or uncollected garbage. - -Identifying the relevant scales and exercising the test plan (steps 3 & 5) are very dependent on the behavior of the -controller, and so will be explained last. - -The more generic and broadly applicable aspects: deployment, sampling and recording consumption, are covered first. - -### Deployment - -The release to be measured is manually deployed. When the benchmark script is running, it deletes the controller pod -between test plan runs, and relies on the Deployment to restart it. - -An easily reproducible cluster is used, in this case, a GKE cluster running on 3 e2-standard-4 nodes. - -### Sampling and recording memory consumption - -Sampling of CPU and memory consumption is via the the [metrics api](https://github.com/kubernetes-sigs/metrics-server). -This provides an endpoint which can be used to retrieve metrics on pods and nodes. You can also query it via -`kubectl top`: - -```shell -kubectl top pod -n cartographer-system -``` - -Since each run involves restarting the pod, it can take a while for the metrics to appear. Polling with the above -snippet first to ensure metrics are available before executing the test plan addresses this. - -Access to this API (as well as the accumulation of samples during a run) is encapsulated in a simple abstraction, -[`PodMetricsSampler`]. - -``` -type PodMetricsSampler interface { - Reset() - SampleConsumption(label string) error - MaxCPU() *resource.Quantity - MaxMem() *resource.Quantity - MinCPU() *resource.Quantity - MinMem() *resource.Quantity -} -``` - -While the test plan runs, it's `SampleConsumption()` function is periodically invoked to record the current CPU and -memory metrics for the controller Pod. At the end of a test plan run, the maximum and minimum values can be obtained. - -With deployment, the metrics server, and this little utility, we have all the machinery needed to make measurements, all -we need is the test plan. - -## Test plan - -In order to capture measurements that account for typical processing by the controller, it must be exercised with input -that triggers this processing. - -To make it measure it at different scales, this input size needs to also be configurable. - -Creating the Cartographer plan begins with considering resources reconciled by the controller: Blueprints (SupplyChains -and Deliveries), their owners (Workloads and Deliverables, respectively) and Runnables. (See: -[Cartographer Architecture](../../docs/v0.2.0/architecture/)) - -Due to commonalities, we elect one of the Blueprint and owner pairs: SupplyChain and Workload. Runnables have a -considerably different reconciliation behavior, so we include this in the test plan as well. - -### SupplyChains and Workloads - -Digging deeper on SupplyChains and Workloads, we consider the controller's activity on these objects. SupplyChains -define a number of resources that are expected exist for a given Workload. Cartographer reconciles this by creating or -updating the desired resources. The content of desired resources is a result of evaluating templates defined in the -SupplyChain resource. - -So, if we have the following variables: - -- `s` the number of SupplyChains -- `c` the number of resource components in a SupplyChain -- `w` the number of Workloads - -Ultimately, to reconcile all workloads, Cartographer will evaluate and create `s * c * w` resources. Anticipated usage -patterns are for low values of `s` and `c` but potentially large values of `w`, so the plan uses a small set of trivial -SupplyChains with a single component, but allows for arbitrary large `w`. Checking the Workload reconciliation simply -requires ensuring all Workloads achieve the `Ready == True` condition, and the expected resources exist. - -### Runnables - -[Runnable](../../docs/v0.2.0/reference/runnable/) is trickier: it declares a resource to be created whenever its inputs -change. This input change stimuli is absent in a test, so it is necessary to simulate them so that we can discover what -happens as they scale. For a catchier name, we call this number Runnable Runs. - -We expect that the number of input changes over time will be large. To keep this in check, Cartographer has a mechanism -to cull older resources which are no longer relevant. We will look for evidence of this in the results. - -The processing for such resources created by Runnable also presents a testing problem. Such resources have a notion of -achieving success (surfaced in their Status), which is used to signal when Cartographer can extract output from them. We -have the test also simulate the status transition to Success. - -Given all of the above, for a given number of Runnables, `r` and Runnable Runs, `n`, our test plan: - -1. ensures the created resource exists; -2. simulates success by updating the resource status; -3. ensures the runnable is processed and surfaces the successful output; -4. trigger another run until `n` runs of this runnable is complete. - -### Test plan implementation - -The test plan described above is implemented with [Ginkgo](https://github.com/onsi/ginkgo) and can be -[found here](https://github.com/vmware-tanzu/cartographer/blob/da2a6a698f05b3bee246e2db81639122a9aa121b/benchmark/benchmark_test.go) -. Environment variables control the scale: - -``` -CARTO_BENCH_N_SUPPLY_CHAINS number of supply chain objects to create (s, c=1) -CARTO_BENCH_N_WORKLOADS number of workload objects to create (w) -CARTO_BENCH_N_RUNNABLES number of runnable objects to create (r) -CARTO_BENCH_N_RUNNABLE_RUNS number of times to simulate a change triggering another run on each runnable (n) -``` - -## Results, Interpretation, future directions - -Here's a rundown of the different datasets (there's a separate tab for each one in the google sheet), with a quick -explanation of their test plan configuration, what we know from the results, and where they may lead the team next... - -### Runnable runs consumption - -This dataset focuses on ensuring Runnable Runs memory consumption is bounded, so it does not create Workloads. Since we -expect runs to be culled by Cartographer, a relatively low value for `n` above the culling threshold can be used. - -![Runnable Runs consomption](/img/posts/benchmarking-cartographer/runnable-runs-results.png) - -The memory graph demonstrates memory consumption plateaus as expected. - -The CPU graph seems to indicate mostly flat usage. It's not clear if the controller is working hard enough, either -because the scale is not sufficiently large or because of the overhead of Runnable Run simulation. - -### Overall resource consumption @3 runs/runnable - -The aim of this dataset is to create increasing numbers of Workloads and Runnables with two goals: - -1. keeping the controller constantly working to find high watermark in CPU usage -2. identifying memory consumption trend as scale increases - -A token value of `n = 3` is selected, both for expediency and the fact that we test for higher values of `n` in the -Runnable runs consumption dataset. - -![Overall resource consumption @3 runs/runnable ](/img/posts/benchmarking-cartographer/three-runnable-per-run-results.png) - -The memory graph demonstrates that memory consumption has a linear, unbounded relationship to the number of Workloads -and Runnables. By current design, Cartographer has a non-expiring cache of these kinds of objects. This means planning -resource allocations would require reasoning about Workload and Runnable capacity to avoid out-of-memory situations, or -simply providing more than sufficient headroom for now, until this design is changed. - -The CPU graph demonstrates a mostly upward trend. We hypothesize that the dip at `w = r = 50` may be due to bottlenecks -in simulating transitions and retriggers of Runnable Runs. Cartographer does not process many resources concurrently, so -there is an expectation that CPU consumption should be bounded. As such, the unbounded trend on the graph suggests the -upper bounds on `w = r = 250` is not large enough. - -### Overall resource consumption @1 run/runnable - -The aim of this dataset is driven by the hypothesis that simulating runnable runs may introduce bottlenecks that prevent -discovering a ceiling in the controller's CPU consumption, so now, `n = 1`. Because this can run significantly faster, -we can exercise greater scale on other inputs, as seen with the upper limit on `w = r = 1500`. - -![Overall resource consumption @1 runs/runnable ](/img/posts/benchmarking-cartographer/one-runnable-per-run-results.png) - -The memory graph is unsurprisingly similar to Overall resource consumption @3 runs/runnable, and for the same reasons. - -The CPU graph demonstrates usage is bounded at around 81 millicores. We're currently working on a hypothesis on the -fluctuation between `w = r = 250` and `w = r = 1500`, but it may be in part due to the point-in-time sampling of the CPU -which fluctuates constantly compared to the memory measurements which are taken from the process heap size which does -not typically contract. - -## Final thoughts - -CPU consumption is bound at 91 millicores; This maximum sample was recorded from the dataset _Overall resource -consumption @3 runs/runnable_. This is 12% higher than the maximum recorded in any other dataset, so further -investigation may still be required. This seems plausible since the controller isn't highly concurrent - and that -becomes evident when running some of these tests: Reconciling 1500 workloads, 1500 runnables with 1 run each takes -nearly 3 hours to run. - -Memory consumption grows linearly. Whilst the consumption of Runnable Runs is bounded, this upper bound is directly tied -to configuration of each [Runnable's retentionPolicy](https://cartographer.sh/docs/development/reference/runnable/). - -Consumption per Workload and Runnables grows linearly, but is unbounded. This confounds attempts to determine meaningful -memory limits because safe configuration requires providing ample headroom to account for all Cartographer resources. It -will be hard to reason about the size of these resources in reality, as templates and blueprints may have varying sizes. - -The bounds of the benchmark are limited in scope, but can always be expanded. They do not measure the impact of -different sized templates and blueprints which could account for increased CPU and Memory usage, for example. - -If you're curious, you can take a look at the measurements for -[release 0.3.0-build3](https://docs.google.com/spreadsheets/d/1du5kbN2PZUa_eABbAwa_kX_gc9n51Dk_wwlGXzqBCWQ/edit?usp=sharing) -. diff --git a/site/content/posts/contributor-of-the-month.md b/site/content/posts/contributor-of-the-month.md deleted file mode 100644 index 2967ae700..000000000 --- a/site/content/posts/contributor-of-the-month.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: "Introducing the Contributor of the Month initiative" -slug: contributor-of-the-month -date: 2022-03-01 -author: Cartographer Team -authorLocation: https://github.com/vmware-tanzu/cartographer/blob/main/MAINTAINERS.md -image: /img/posts/contributor-of-the-month/Contributor-of-the-month-v3.png -excerpt: "A monthly program to reward contributions" -tags: ["community"] ---- - -Since October 2021, when the Cartographer project was made public, we have been very fortunate to count on individual -contributors who have helped improve the codebase and docs while also telling the Cartographer story at conferences, in -live streams and other forms of content. All of them have done this out of an intrinsic motivation, without expecting -any reward or public recognition. We are forever grateful to them for this. - -Nevertheless, we would like to fill in the -[extrinsic motivation](https://www.rochester.edu/emerging-leaders/understanding-intrinsic-and-extrinsic-motivation/#:~:text=Intrinsic%20motivation%20involves%20performing%20a,punishment%20or%20receiving%20a%20reward) -void by rolling out a small initiative called **Contributor of the Month** - -**How does it work?** - -We plan to recognize contributors in three different categories: - -- Code contributor (merged PRs) -- Content creator (tweets/blog posts/screencasts/presentations/podcasts) -- Community advocate (participation on community meetings/providing user feedback/creating or commenting Slack - interactions,Github discussions or issues) - -Code contributions will be tracked using the `contributor shoutouter` program located in -[this repo](https://github.com/vmware-tanzu/community-engagement/tree/main/shoutouter) while content and community -support will be tracked by the Cartographer community team. - -As a little token of appreciation, contributors will receive Cartographer branded, sustainable swag that we hope you -find useful. - -Public shoutouts will be done at the first -[Community Meeting](https://docs.google.com/document/d/1HwsjzxpsNI0l1sVAUia4A65lhrkfSF-_XfKoZUHI120/edit?usp=sharing) of -the following month and on the [@OssCartographer](https://twitter.com/OssCartographer) Twitter account. - -The list of top contributors for each month will be published on -[this wiki page](https://github.com/vmware-tanzu/cartographer/wiki/Contributors-of-the-month). - -## Let's build together! - -Every contribution in every form will count, so make sure to check out the following resources for opportunities to help -build the Cartographer project: - -- [Good first issues](https://github.com/vmware-tanzu/cartographer/labels/good%20first%20issue) -- [Contributing guide](https://github.com/vmware-tanzu/cartographer/blob/main/CONTRIBUTING.md) -- [Getting started with Cartographer by using examples](https://github.com/vmware-tanzu/cartographer/tree/main/examples) - -## Join the Cartographer Community - -- Join [Slack channel](https://kubernetes.slack.com/archives/C02HKPSEKV1) in the Kubernetes workspace -- Get updates on Twitter [@OssCartographer](https://twitter.com/OssCartographer) diff --git a/site/content/posts/live-editor.md b/site/content/posts/live-editor.md deleted file mode 100644 index df681a0f1..000000000 --- a/site/content/posts/live-editor.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: "A live editor for Supply Chains" -slug: live-editor -date: 2022-02-10 -author: Rasheed Abdul-Aziz -authorLocation: https://github.com/squeedee -image: /img/posts/live-editor/cover-image.png -excerpt: "A scratchpad for editing Supply Chains" -tags: ["Live editor", "Supply Chains"] ---- - -# >> [Click to Launch editor](/live-editor/index.html) << - -## What is this? - -I recently decided I wanted JSON Schemas for all of Cartographer's CRDs. That way I'd be less likely to make mistakes -and need to wait until I had done a `kubectl apply` and waited for a **workload** failure to discover that I had -forgotten something important. - -I wrote a little bit of code to generate JSON Schemas from -[Cartographer CRD manifests](https://github.com/vmware-tanzu/cartographer/tree/main/config/crd/bases). I plan on -releasing it as a formal utility that folks can use to create JSON Schemas for any OpenAPIV3 CRD Schemas, but I realised -**schema validation is not enough**. - -So I've created the [Live Editor](/live-editor/index.html). - -Today the editor: - -- Only supports SupplyChains. -- Visualises the supply chain. -- AutoSuggests based on schema. -- Validates based on schema. -- AutoSuggests inputs from existing resources. -- Let's you copy the URL to share your yaml with others. - -In the future I'd like to add: - -- Support for all the CRDs -- Syntax checking for invalid references (coming soon!) -- Display `options` selected by a workload (part of a new set of RFCs to support multiple paths in a supply chain) -- Instances of the editor inline in the docs -- Links in example CRs to editable/visualized versions of the same CR -- Read/Write GitHub Gists to support loading and editing templates + blueprints + owners -- Much more! - -I want to know what you think! Please let us know if this is something that's valuable to you. - -Please provide feedback by -[commenting or upvoting in this issue](https://github.com/vmware-tanzu/cartographer/issues/566)! diff --git a/site/content/resources/_index.md b/site/content/resources/_index.md deleted file mode 100644 index 6406fbe51..000000000 --- a/site/content/resources/_index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Resources" -id: resources -url: /resources -layout: common ---- - -## Blog Posts and Articles - -- [What is Cartographer and how it helps in secure software supply chain?](https://mappslearning.com/2021/10/10/what-is-cartographer-and-how-it-helps-in-secure-software-supply-chain-quick-introduction/) - by Dinesh Tripathi -- [Try Cartographer 0.0.6 with kind](https://ik.am/entries/668) by Toshiaki Maki - -## Presentations - -- CNCF Live webinar covering Supply Chain choreography with Cartographer {{< yt id="YowcLPRYh7o" start="5" >}} -- Tanzu Tuesdays episode introducing choreography (including demos) {{< yt id="Qr-DO0E9R1Y" start="1129" >}} -- Cartographer featured on Thank Goodness its Kubernetes (TGIK) {{< yt id="TJPGn0-hpPY" start="738" >}} -- Tanzu Code (live coding) episode on Cartographer {{< yt id="694soIproYE" start="5010" >}} - -## Community Meetings Playlist - -{{< ytlist id="PL7bmigfV0EqSZA5OLwrqKsAYXA1GqPtu8" >}} - -## Office Hours Playlist - -{{< ytlist id="PL7bmigfV0EqSkIcCBTr3nQq04hh_EFK2a" >}} diff --git a/site/data/docs/development-toc.yml b/site/data/docs/development-toc.yml deleted file mode 100644 index 1d7ddc712..000000000 --- a/site/data/docs/development-toc.yml +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -toc: - - title: Introduction - subfolderitems: - - page: About - url: / - - page: Architecture - url: /architecture - - page: Authentication - url: /authentication - - page: Install - url: /install - - page: Templating - url: /templating - - title: CR Reference - subfolderitems: - - page: GVK - url: /reference/gvk - - page: Workload & Supply Chain - url: /reference/workload - - page: Deliverable & Delivery - url: /reference/deliverable - - page: Templates - url: /reference/template - - page: Runnable - url: /reference/runnable - - title: Tutorials - subfolderitems: - - page: First Supply Chain - url: /tutorials/first-supply-chain - - page: Using Params - url: /tutorials/using-params - - page: Extending a Supply Chain - url: /tutorials/extending-a-supply-chain - - page: Runnable - url: /tutorials/runnable - - page: Runnable in a Supply Chain - url: /tutorials/runnable-in-a-supply-chain - - title: Examples - subfolderitems: - - page: Multi-Cluster - url: /multi-cluster - - page: Examples - url: /examples - - title: Support - subfolderitems: - - page: Troubleshooting - url: /troubleshooting - - title: Runnable - subfolderitems: - - page: Architecture - url: /runnable/architecture - - title: Documentation Style Guide - subfolderitems: - - page: Style Guide - url: /style-guide - diff --git a/site/data/docs/toc-mapping.yml b/site/data/docs/toc-mapping.yml deleted file mode 100644 index 4339a07cb..000000000 --- a/site/data/docs/toc-mapping.yml +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -# This file can be used to explicitly map a release to a specific table-of-contents -# (TOC). You'll want to use this after any revamps to information architecture, to ensure -# that the navigation for older versions still work. -development: development-toc -v0.3.0: v0-3-0-toc -v0.2.0: v0-2-0-toc -v0.1.0: v0-1-0-toc -v0.0.7: v0-0-7-toc -v0.0.6: v0-0-6-toc - diff --git a/site/data/docs/v0-0-6-toc.yml b/site/data/docs/v0-0-6-toc.yml deleted file mode 100644 index 95cb3ea61..000000000 --- a/site/data/docs/v0-0-6-toc.yml +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -toc: - - title: About Cartographer - subfolderitems: - - page: About - url: / - - title: Install/Uninstall - subfolderitems: - - page: Installing Cartographer - url: /install - - page: Uninstalling Cartographer - url: /uninstall - - title: Reference - subfolderitems: - - page: CRD Reference - url: /reference - - title: Examples - subfolderitems: - - page: Examples - url: /examples - - title: Documentation Style Guide - subfolderitems: - - page: Style Guide - url: /style-guide - diff --git a/site/data/docs/v0-0-7-toc.yml b/site/data/docs/v0-0-7-toc.yml deleted file mode 100644 index 95cb3ea61..000000000 --- a/site/data/docs/v0-0-7-toc.yml +++ /dev/null @@ -1,38 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -toc: - - title: About Cartographer - subfolderitems: - - page: About - url: / - - title: Install/Uninstall - subfolderitems: - - page: Installing Cartographer - url: /install - - page: Uninstalling Cartographer - url: /uninstall - - title: Reference - subfolderitems: - - page: CRD Reference - url: /reference - - title: Examples - subfolderitems: - - page: Examples - url: /examples - - title: Documentation Style Guide - subfolderitems: - - page: Style Guide - url: /style-guide - diff --git a/site/data/docs/v0-1-0-toc.yml b/site/data/docs/v0-1-0-toc.yml deleted file mode 100644 index fe71438f4..000000000 --- a/site/data/docs/v0-1-0-toc.yml +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -toc: - - title: Introduction - subfolderitems: - - page: About - url: / - - page: Architecture - url: /architecture - - page: Authentication - url: /authentication - - page: Install - url: /install - - page: Templating - url: /templating - - title: CR Reference - subfolderitems: - - page: GVK - url: /reference/gvk - - page: Workload & Supply Chain - url: /reference/workload - - page: Deliverable & Delivery - url: /reference/deliverable - - page: Templates - url: /reference/template - - page: Runnable - url: /reference/runnable - - title: Examples - subfolderitems: - - page: Examples - url: /examples - - title: Support - subfolderitems: - - page: Troubleshooting - url: /troubleshooting - - title: Runnable - subfolderitems: - - page: Architecture - url: /runnable/architecture - - title: Documentation Style Guide - subfolderitems: - - page: Style Guide - url: /style-guide - diff --git a/site/data/docs/v0-2-0-toc.yml b/site/data/docs/v0-2-0-toc.yml deleted file mode 100644 index fe71438f4..000000000 --- a/site/data/docs/v0-2-0-toc.yml +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -toc: - - title: Introduction - subfolderitems: - - page: About - url: / - - page: Architecture - url: /architecture - - page: Authentication - url: /authentication - - page: Install - url: /install - - page: Templating - url: /templating - - title: CR Reference - subfolderitems: - - page: GVK - url: /reference/gvk - - page: Workload & Supply Chain - url: /reference/workload - - page: Deliverable & Delivery - url: /reference/deliverable - - page: Templates - url: /reference/template - - page: Runnable - url: /reference/runnable - - title: Examples - subfolderitems: - - page: Examples - url: /examples - - title: Support - subfolderitems: - - page: Troubleshooting - url: /troubleshooting - - title: Runnable - subfolderitems: - - page: Architecture - url: /runnable/architecture - - title: Documentation Style Guide - subfolderitems: - - page: Style Guide - url: /style-guide - diff --git a/site/data/docs/v0-3-0-toc.yml b/site/data/docs/v0-3-0-toc.yml deleted file mode 100644 index 1d7ddc712..000000000 --- a/site/data/docs/v0-3-0-toc.yml +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -toc: - - title: Introduction - subfolderitems: - - page: About - url: / - - page: Architecture - url: /architecture - - page: Authentication - url: /authentication - - page: Install - url: /install - - page: Templating - url: /templating - - title: CR Reference - subfolderitems: - - page: GVK - url: /reference/gvk - - page: Workload & Supply Chain - url: /reference/workload - - page: Deliverable & Delivery - url: /reference/deliverable - - page: Templates - url: /reference/template - - page: Runnable - url: /reference/runnable - - title: Tutorials - subfolderitems: - - page: First Supply Chain - url: /tutorials/first-supply-chain - - page: Using Params - url: /tutorials/using-params - - page: Extending a Supply Chain - url: /tutorials/extending-a-supply-chain - - page: Runnable - url: /tutorials/runnable - - page: Runnable in a Supply Chain - url: /tutorials/runnable-in-a-supply-chain - - title: Examples - subfolderitems: - - page: Multi-Cluster - url: /multi-cluster - - page: Examples - url: /examples - - title: Support - subfolderitems: - - page: Troubleshooting - url: /troubleshooting - - title: Runnable - subfolderitems: - - page: Architecture - url: /runnable/architecture - - title: Documentation Style Guide - subfolderitems: - - page: Style Guide - url: /style-guide - diff --git a/site/hack/crd_lib/config.rb b/site/hack/crd_lib/config.rb deleted file mode 100644 index 6cf886e49..000000000 --- a/site/hack/crd_lib/config.rb +++ /dev/null @@ -1,122 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -class Config - class Fields - attr_reader :force_hide_descriptions, - :max_depth - - def initialize(fields_hash, force_hide_descriptions = false, max_depth = 99) - @fields_hash = fields_hash - @fields_memo = {} - @force_hide_descriptions = force_hide_descriptions - @max_depth = max_depth - end - - def [](field_name) - @fields_memo[field_name] ||= Field.new(field_name, @fields_hash[field_name] || {}, force_hide_descriptions, max_depth) - end - end - - class Field - attr_accessor :name, - :fields, - :append_description, - :max_depth - - def initialize(field_name, field_hash, force_hide_descriptions = false, max_depth = 99) - @max_depth = [max_depth, (field_hash["maxDepth"] || 99)].min - @name = field_name - @hide = field_hash["hide"] || (max_depth < 0) - @append_description = field_hash["appendDescription"] - @hide_description = force_hide_descriptions || field_hash["hideDescription"] - - fields_hash = field_hash["fields"] || {} - hide_children = force_hide_descriptions || field_hash["hideChildDescriptions"] - @fields = Fields.new(fields_hash, hide_children, @max_depth - 1) - end - - def hide? - @hide - end - - def append_description? - !@append_description.nil? - end - - def hide_description? - @hide_description - end - - def hide_child_descriptions? - @hide_child_descriptions - end - end - - attr_reader :version, :fields, :comment_wrap_at - - def initialize(config_hash) - @version = config_hash.dig("version") || "v1" - @comment_wrap_at = (config_hash.dig("commentWrapAt") || 64).to_i - @fields = Fields.new(config_hash["fields"]) if config_hash.has_key?("fields") - end - - def apply!(crd) - schema_versions = crd["spec"]["versions"] - schema_version = schema_versions.find { |v| v["name"] == version } - schema = schema_version["schema"]["openAPIV3Schema"] - apply_object(fields, schema) - end - - private - - def apply_field(field, obj) - property = obj["properties"][field.name] - - if field.append_description? - property["description"] ||= "" - property["description"] += "\n#{field.append_description}" - elsif field.hide_description? - property.delete("description") - end - - if property - if field.hide? - obj["properties"].delete(field.name) - else - case property["type"] - when "object" - apply_object(field.fields, property) - when "array" - apply_array(field.fields, property) - end - end - else - puts "Error: Config field `#{field.name}` not found" - end - end - - def apply_object(fields, obj) - (obj["properties"] || {}).each do |name, property| - apply_field(fields[name], obj) - end - end - - def apply_array(fields, obj) - (obj["items"]["properties"] || {}).each do |name, property| - apply_field(fields[name], obj["items"]) - end - end - -end diff --git a/site/hack/crd_lib/spec.rb b/site/hack/crd_lib/spec.rb deleted file mode 100644 index e5e057302..000000000 --- a/site/hack/crd_lib/spec.rb +++ /dev/null @@ -1,223 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require_relative 'writer' - -class Spec - - class Versions - def initialize(versions_hash, group, kind) - @group = group - @kind = kind - @versions_hash = versions_hash - @versions_memo = {} - end - - def [](name) - @versions_memo[name] ||= Version.new(@group, name, @kind, @versions_hash[name]) - end - end - - class Version - def self.node_factory(node_hash, name = "", required = false) - case node_hash["type"] - when "object" - ObjectNode.new(node_hash, name, required) - when "array" - ArrayNode.new(node_hash, name, required) - else - ScalarNode.new(node_hash, name, required) - end - end - - class ItemsNode - def initialize(items) - @items = ObjectNode.new(items) - end - - def to_y(writer) - writer.indent(true) { @items.to_y(writer) } - end - end - - class PropertiesNode - include Enumerable - - def initialize(properties_hash, required_hash) - @properties_hash = properties_hash || {} - @required_hash = required_hash || {} - @properties_memo = {} - end - - def required?(property_name) - @required_hash.include?(property_name) - end - - def [](name) - @properties_memo[name] ||= Version.node_factory(@properties_hash[name], name, required?(name)) - end - - def each(&block) - if block_given? - @properties_hash.each do |key, value| - block.call(self[key]) - end - else - to_enum(:each) - end - end - - def empty? - @properties_hash.length == 0 - end - end - - class ScalarNode - attr_reader :name, :description - - def initialize(node_hash, name = "", required = false) - @name = name - @required = required - @description = node_hash["description"] - @node_hash = node_hash - end - - def required? - @required - end - - def to_y(writer) - writer.comment(description, !required?) - value = @node_hash.dig("value") || "<#{type_string}>" - writer.puts "#{name}: #{value}" - end - - private - - def any_of_type_string - any_of = @node_hash["anyOf"] || [] - return nil if any_of.empty? - "[" + any_of.map { |of| of.dig("type") }.join("|") + "]" - end - - def enum_type_string - return unless @node_hash.has_key?("enum") - "[#{@node_hash["enum"].join("|")}]" - end - - def type_string - enum_type_string || @node_hash["type"] || any_of_type_string || "any" - end - - end - - class ObjectNode - attr_reader :name, - :properties, - :description - - def initialize(node_hash, name = "", required = false) - @name = name - @required = required - @description = node_hash["description"] - @properties = PropertiesNode.new(node_hash.dig("properties"), node_hash.dig("required")) - end - - def required? - @required - end - - def named? - name != "" - end - - def to_y(writer) - writer.comment(description, !required?) - if named? && properties.empty? - writer.puts "#{name}: {}" - return - end - - if named? - writer.puts "#{name}:" - writer.indent - end - properties.each do |property| - property.to_y(writer) - end - if named? - writer.outdent - end - end - end - - class ArrayNode - attr_reader :name, :items, :description, :scalar_item_type - - def initialize(node_hash, name = "", required = false) - @name = name - @description = node_hash["description"] - @required = required - - if node_hash["items"]["type"] == "object" - @items = ItemsNode.new(node_hash.dig("items")) - else - @scalar_item_type = node_hash["items"]["type"] - end - end - - def required? - @required - end - - def to_y(writer) - writer.comment(description, !required?) - if @items - writer.puts "#{name}:" - writer.indent { @items.to_y(writer) } - elsif @scalar_item_type - writer.puts "#{name}: [ <#{scalar_item_type}> ]" - end - end - end - - attr_reader :group, :version, :kind, :schema - - def initialize(group, version, kind, version_hash) - @group = group - @version = version - @kind = kind - schema_hash = version_hash.dig("schema", "openAPIV3Schema") || {} - schema_hash["properties"]["apiVersion"]["value"] = "#{group}/#{version}" - schema_hash["properties"]["kind"]["value"] = kind - @schema = Version.node_factory(schema_hash) - end - - def to_y(writer) - writer.puts "---" - @schema.to_y(writer) - end - - end - - attr_reader :versions - - def initialize(spec_hash) - @group = spec_hash.dig("group") - @kind = spec_hash.dig("names", "kind") - versions_array = spec_hash.dig("versions") - versions_hash = versions_array.inject({}) { |hash, version| hash[version["name"]] = version; hash } - @versions = Versions.new(versions_hash, @group, @kind) - end -end \ No newline at end of file diff --git a/site/hack/crd_lib/string.rb b/site/hack/crd_lib/string.rb deleted file mode 100644 index 2ab2498a7..000000000 --- a/site/hack/crd_lib/string.rb +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -class String - def word_wrap(col_width = 80) - self.dup.word_wrap!(col_width) - end - - def word_wrap!(col_width = 80) - self.gsub!(/(.{1,#{col_width}})(?:\s+|$)/, "\\1\n") - self - end -end diff --git a/site/hack/crd_lib/writer.rb b/site/hack/crd_lib/writer.rb deleted file mode 100644 index b9f12df72..000000000 --- a/site/hack/crd_lib/writer.rb +++ /dev/null @@ -1,68 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require_relative './string' - -OPTIONAL_STRING = "+optional" - -class Writer - attr_accessor :out - attr_accessor :wrap - - def initialize(out = $stdout, wrap = 64, optional_comment = OPTIONAL_STRING) - @indent = 0 - @out = out - @wrap = wrap - @array_mode = false - @optional_comment = optional_comment - end - - def indent(array_mode = false, &block) - @array_mode = array_mode - if block_given? - @indent += 1 - block.call(self) - @indent -= 1 - else - @indent += 1 - end - end - - def outdent(&block) - @array_mode = false # always - @indent -= 1 - end - - def puts(msg = "") - @out.puts("#{gen_indent}#{msg}") - end - - def comment(comment, optional) - return if comment.nil? - @out.puts unless @array_mode - comment_lines = comment.word_wrap(@wrap - (@indent * 2)) - comment_lines.split("\n").each do |line| - @out.puts("#{gen_indent}# #{line}") - end - @out.puts("#{gen_indent}# #{@optional_comment}") if optional - end - - private - - def gen_indent - return " " * @indent unless @array_mode - @array_mode = false - (" " * (@indent - 1)) + "- " - end -end diff --git a/site/hack/crds.rb b/site/hack/crds.rb deleted file mode 100755 index 281b1cab0..000000000 --- a/site/hack/crds.rb +++ /dev/null @@ -1,60 +0,0 @@ -#! /usr/bin/env ruby -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -require 'yaml' -require 'fileutils' -require_relative 'crd_lib/config' -require_relative 'crd_lib/spec' - -CONFIG_DIR = File.join(__dir__, "crds") -CRD_DIR = File.join(__dir__, "..", "..", "config", "crd", "bases") -OUT_DIR = File.join(__dir__, "..", "content", "docs", "development", "crds") - -def main - FileUtils.mkdir_p OUT_DIR - config_files = Dir.glob(File.join(CONFIG_DIR, '*.yaml')) - - config_files.each do |filename| - puts "Processing: #{filename}" - - # Load Config - config_object = YAML.load_file(filename) - config = Config.new(config_object) - - # Load Input CRD Spec - input_filename = File.join(CRD_DIR, File.basename(filename)) - puts "\tSource CRD: #{File.absolute_path(input_filename)}" - - crd = YAML.load_file(input_filename) - - config.apply!(crd) - - spec = Spec.new(crd["spec"]) - - # Create/Open Target Spec Yaml - output_filename = File.join(OUT_DIR, File.basename(filename)) - puts "\tTarget Resource Spec: #{File.absolute_path(output_filename)}" - - output_file = File.open(output_filename, "w") - - writer = Writer.new(output_file, config.comment_wrap_at) - spec.versions[config.version].to_y(writer) - - output_file.close - - end -end - -main \ No newline at end of file diff --git a/site/hack/crds/carto.run_clusterconfigtemplates.yaml b/site/hack/crds/carto.run_clusterconfigtemplates.yaml deleted file mode 100644 index 26dd72176..000000000 --- a/site/hack/crds/carto.run_clusterconfigtemplates.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -metadata: - hide: true -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true diff --git a/site/hack/crds/carto.run_clusterdeliveries.yaml b/site/hack/crds/carto.run_clusterdeliveries.yaml deleted file mode 100644 index 81356c8e2..000000000 --- a/site/hack/crds/carto.run_clusterdeliveries.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -metadata: - hide: true -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true - status: - hide: true diff --git a/site/hack/crds/carto.run_clusterdeploymenttemplates.yaml b/site/hack/crds/carto.run_clusterdeploymenttemplates.yaml deleted file mode 100644 index 26dd72176..000000000 --- a/site/hack/crds/carto.run_clusterdeploymenttemplates.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -metadata: - hide: true -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true diff --git a/site/hack/crds/carto.run_clusterimagetemplates.yaml b/site/hack/crds/carto.run_clusterimagetemplates.yaml deleted file mode 100644 index 26dd72176..000000000 --- a/site/hack/crds/carto.run_clusterimagetemplates.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -metadata: - hide: true -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true diff --git a/site/hack/crds/carto.run_clusterruntemplates.yaml b/site/hack/crds/carto.run_clusterruntemplates.yaml deleted file mode 100644 index 26dd72176..000000000 --- a/site/hack/crds/carto.run_clusterruntemplates.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -metadata: - hide: true -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true diff --git a/site/hack/crds/carto.run_clustersourcetemplates.yaml b/site/hack/crds/carto.run_clustersourcetemplates.yaml deleted file mode 100644 index 26dd72176..000000000 --- a/site/hack/crds/carto.run_clustersourcetemplates.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -metadata: - hide: true -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true diff --git a/site/hack/crds/carto.run_clustersupplychains.yaml b/site/hack/crds/carto.run_clustersupplychains.yaml deleted file mode 100644 index 81356c8e2..000000000 --- a/site/hack/crds/carto.run_clustersupplychains.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -metadata: - hide: true -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true - status: - hide: true diff --git a/site/hack/crds/carto.run_clustertemplates.yaml b/site/hack/crds/carto.run_clustertemplates.yaml deleted file mode 100644 index 26dd72176..000000000 --- a/site/hack/crds/carto.run_clustertemplates.yaml +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -metadata: - hide: true -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true diff --git a/site/hack/crds/carto.run_deliverables.yaml b/site/hack/crds/carto.run_deliverables.yaml deleted file mode 100644 index eea9f48c3..000000000 --- a/site/hack/crds/carto.run_deliverables.yaml +++ /dev/null @@ -1,25 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true - diff --git a/site/hack/crds/carto.run_runnables.yaml b/site/hack/crds/carto.run_runnables.yaml deleted file mode 100644 index 0c9ad3c1f..000000000 --- a/site/hack/crds/carto.run_runnables.yaml +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -metadata: - hide: true -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true - status: - hide: true \ No newline at end of file diff --git a/site/hack/crds/carto.run_workloads.yaml b/site/hack/crds/carto.run_workloads.yaml deleted file mode 100644 index 3b28ee098..000000000 --- a/site/hack/crds/carto.run_workloads.yaml +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -commentWrapAt: 64 -version: v1alpha1 -fields: - apiVersion: - hideDescription: true - kind: - hideDescription: true - spec: - hideDescription: true - fields: - build: - fields: - env: - hideChildDescriptions: true - maxDepth: 1 - env: - hideChildDescriptions: true - maxDepth: 1 - resources: - hideChildDescriptions: true - maxDepth: 1 diff --git a/site/hack/new-release.sh b/site/hack/new-release.sh deleted file mode 100755 index 375e1c221..000000000 --- a/site/hack/new-release.sh +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/bash -# Copyright 2021 VMware -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -set -o errexit -set -o nounset -set -o pipefail - -NEW_DOCS_VERSION=${1:-} -if [[ -z $NEW_DOCS_VERSION ]]; then - echo "ERROR: new version not supplied" - exit 1 -fi - -DOCS_DIRECTORY=content/docs -DATA_DOCS_DIRECTORY=data/docs -CONFIG_FILE=config.yaml -DEV_VERSION=development - -# don't run if there's already a directory for the target docs version -if [[ -d $DOCS_DIRECTORY/$NEW_DOCS_VERSION ]]; then - echo "ERROR: $DOCS_DIRECTORY/$NEW_DOCS_VERSION already exists" - exit 1 -fi - -# make a copy of the previous versioned docs dir -echo "Creating copy of docs directory $DOCS_DIRECTORY/$DEV_VERSION in $DOCS_DIRECTORY/$NEW_DOCS_VERSION" -cp -r $DOCS_DIRECTORY/${DEV_VERSION}/ $DOCS_DIRECTORY/${NEW_DOCS_VERSION}/ - -# 'git add' the previous version's docs as-is so we get a useful diff when we copy the $DEV_VERSION docs in -echo "Running 'git add' for previous version's doc contents to use as a base for diff" -git add -f $DOCS_DIRECTORY/${NEW_DOCS_VERSION} - -# now copy the contents of $DOCS_DIRECTORY/$DEV_VERSION into the same directory so we can get a nice -# git diff of what changed since previous version -echo "Copying $DOCS_DIRECTORY/$DEV_VERSION/ to $DOCS_DIRECTORY/${NEW_DOCS_VERSION}/" -rm -rf $DOCS_DIRECTORY/${NEW_DOCS_VERSION}/ && cp -r $DOCS_DIRECTORY/$DEV_VERSION/ $DOCS_DIRECTORY/${NEW_DOCS_VERSION}/ - -# make a copy of the previous versioned ToC -NEW_DOCS_TOC="$(echo ${NEW_DOCS_VERSION} | tr . -)-toc" -PREVIOUS_DOCS_TOC="$(echo ${DEV_VERSION} | tr . -)-toc" - -echo "Creating copy of $DATA_DOCS_DIRECTORY/$PREVIOUS_DOCS_TOC.yml at $DATA_DOCS_DIRECTORY/$NEW_DOCS_TOC.yml" -cp $DATA_DOCS_DIRECTORY/$PREVIOUS_DOCS_TOC.yml $DATA_DOCS_DIRECTORY/$NEW_DOCS_TOC.yml - -# 'git add' the previous version's ToC content as-is so we get a useful diff when we copy the $DEV_VERSION ToC in -echo "Running 'git add' for previous version's ToC to use as a base for diff" -git add $DATA_DOCS_DIRECTORY/$NEW_DOCS_TOC.yml - -# now copy the $DEV_VERSION ToC so we can get a nice git diff of what changed since previous version -echo "Copying $DATA_DOCS_DIRECTORY/$DEV_VERSION-toc.yml to $DATA_DOCS_DIRECTORY/$NEW_DOCS_TOC.yml" -rm $DATA_DOCS_DIRECTORY/$NEW_DOCS_TOC.yml && cp $DATA_DOCS_DIRECTORY/$DEV_VERSION-toc.yml $DATA_DOCS_DIRECTORY/$NEW_DOCS_TOC.yml - -# replace known version-specific links -- the sed syntax is slightly different in OS X and Linux, -# so check which OS we're running on. -if [[ $(uname) == "Darwin" ]]; then - echo "[OS X] updating version-specific links" - find $DOCS_DIRECTORY/${NEW_DOCS_VERSION} -type f -name "*.md" | xargs sed -i '' "s|https://github.com/vmware-tanzu/cartographer/releases/latest/download|https://github.com/vmware-tanzu/cartographer/releases/download/$NEW_DOCS_VERSION|g" - find $DOCS_DIRECTORY/${NEW_DOCS_VERSION} -type f -name "*.md" | xargs sed -i '' "s|https://github.com/vmware-tanzu/cartographer/releases/latest|https://github.com/vmware-tanzu/cartographer/releases/tag/$NEW_DOCS_VERSION|g" - find $DOCS_DIRECTORY/${NEW_DOCS_VERSION} -type f -name "_index.md" | xargs sed -i '' "s|version: $DEV_VERSION|version: $NEW_DOCS_VERSION|g" - - echo "[OS X] Updating latest version in $CONFIG_FILE" - sed -i '' "s/docs_latest: .*/docs_latest: ${NEW_DOCS_VERSION}/" $CONFIG_FILE - - # newlines and lack of indentation are requirements for this sed syntax - # which is doing an append - echo "[OS X] Adding latest version to versions list in $CONFIG_FILE" - sed -i '' "/- $DEV_VERSION/a\\ -\ \ \ \ - ${NEW_DOCS_VERSION} -" $CONFIG_FILE - - echo "[OS X] Adding ToC mapping entry" - sed -i '' "/$DEV_VERSION: $DEV_VERSION-toc/a\\ -${NEW_DOCS_VERSION}: ${NEW_DOCS_TOC} -" $DATA_DOCS_DIRECTORY/toc-mapping.yml - -else - echo "[Linux] updating version-specific links" - find $DOCS_DIRECTORY/${NEW_DOCS_VERSION} -type f -name "*.md" | xargs sed -i'' "s|https://github.com/vmware-tanzu/cartographer/releases/latest/download|https://github.com/vmware-tanzu/cartographer/releases/download/$NEW_DOCS_VERSION|g" - find $DOCS_DIRECTORY/${NEW_DOCS_VERSION} -type f -name "*.md" | xargs sed -i'' "s|https://github.com/vmware-tanzu/cartographer/releases/latest|https://github.com/vmware-tanzu/cartographer/releases/tag/$NEW_DOCS_VERSION|g" - find $DOCS_DIRECTORY/${NEW_DOCS_VERSION} -type f -name "_index.md" | xargs sed -i'' "s|version: $DEV_VERSION|version: $NEW_DOCS_VERSION|g" - - echo "[Linux] Updating latest version in $CONFIG_FILE" - sed -i'' "s/docs_latest: .*/docs_latest: ${NEW_DOCS_VERSION}/" $CONFIG_FILE - - echo "[Linux] Adding latest version to versions list in $CONFIG_FILE" - sed -i'' "/- $DEV_VERSION/a \ \ \ \ - ${NEW_DOCS_VERSION}" $CONFIG_FILE - - echo "[Linux] Adding ToC mapping entry" - sed -i'' "/$DEV_VERSION: $DEV_VERSION-toc/a ${NEW_DOCS_VERSION}: ${NEW_DOCS_TOC}" $DATA_DOCS_DIRECTORY/toc-mapping.yml -fi - -echo "Success! $DOCS_DIRECTORY/$NEW_DOCS_VERSION has been created." diff --git a/site/netlify.toml b/site/netlify.toml deleted file mode 100644 index 37a19729f..000000000 --- a/site/netlify.toml +++ /dev/null @@ -1,36 +0,0 @@ -[build] -publish = "public" -command = "hugo --gc --minify" - -[context.production.environment] -HUGO_VERSION = "0.89.4" -HUGO_ENV = "production" -HUGO_ENABLEGITINFO = "true" - -[context.split1] -command = "hugo --gc --minify --enableGitInfo" - -[context.split1.environment] -HUGO_VERSION = "0.89.4" -HUGO_ENV = "production" - -[context.deploy-preview] -command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" - -[context.deploy-preview.environment] -HUGO_VERSION = "0.89.4" - -[context.branch-deploy] -command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" - -[context.branch-deploy.environment] -HUGO_VERSION = "0.89.4" - -[context.next.environment] -HUGO_ENABLEGITINFO = "true" - -[[redirects]] - from = "/docs/:version/*" - to = "/docs/:version" - status = 307 - force = false diff --git a/site/package.json b/site/package.json deleted file mode 100644 index 0ef0a4440..000000000 --- a/site/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "scripts": { - "lint": "yarn run prettier --parser markdown --write --print-width 120 --prose-wrap always \"**/*.md\"" - }, - "dependencies": { - "prettier": "^2.6.2" - } -} diff --git a/site/themes/template/archetypes/default.md b/site/themes/template/archetypes/default.md deleted file mode 100644 index ef75f7667..000000000 --- a/site/themes/template/archetypes/default.md +++ /dev/null @@ -1,4 +0,0 @@ -+++ -title = "{{ replace .Name "-" " " | title }}" -date = {{ .Date }} -+++ diff --git a/site/themes/template/assets/scss/_base.scss b/site/themes/template/assets/scss/_base.scss deleted file mode 100644 index 05901d3f1..000000000 --- a/site/themes/template/assets/scss/_base.scss +++ /dev/null @@ -1,272 +0,0 @@ -@import 'variables'; -@import 'mixins'; - -$font-family-base: "Metropolis-Light", Helvetica, sans-serif; -$metropolis-light: $font-family-base; -$metropolis-light-italic: "Metropolis-LightItalic", Helvetica, sans-serif; -$metropolis-regular: "Metropolis-Regular", Helvetica, sans-serif; -$metropolis-regular-italic: "Metropolis-RegularItalic", Helvetica, sans-serif; -$metropolis-medium: "Metropolis-Medium", Helvetica, sans-serif; -$metropolis-medium-italic: "Metropolis-MediumItalic", Helvetica, sans-serif; -$metropolis-bold: "Metropolis-Bold", Helvetica, sans-serif; -$metropolis-bold-italic: "Metropolis-BoldItalic", Helvetica, sans-serif; -$metropolis-semibold: "Metropolis-SemiBold", Helvetica, sans-serif; -$metropolis-semibold-italic: "Metropolis-SemiBoldItalic", Helvetica, sans-serif; - -body { - font-family: $font-family-base; - margin: 0px; - line-height: 1.25; -} -.wrapper { - max-width: 980px; - margin: 0px auto; - padding: 20px; - @include breakpoint(small) { - max-width: 100%; - } - @include breakpoint(medium) { - } - &.docs { - @include breakpoint(extra-large) { - max-width: 80%; - } - } -} -.clearfix { - *zoom: 1; - &:before, &:after { - display: table; - content: ""; - line-height: 0; - } - &:after { - clear: both; - } -} -h1, h2, h3, h4, h5, h6 { - font-weight: 300; -} -h1 { - font-size: 28px; -} -h2 { - font-size: 22px; - color: #333; -} -h3 { - font-size: 20px; -} -h4 { - font-size: 18px; -} -li { - list-style-type: none; - display: inline; - padding-right: 25px; - font-size: 14px; - line-height: 1.7em; - &:last-of-type { - padding-right: 0px; - } -} -p { - line-height: 1.7em; - font-weight: 300; - font-size: 16px; - color: $darkgrey; - &.intro { - font-size: 18px; - } -} -a { - font-size: 16px; - text-decoration: none; - color: $blue; - font-family: $metropolis-medium -} -button { - background-color: unset; - border: none; -} -.button { - color: $blue; - font-size: 12px; - font-weight: 600; - background-color: $white; - border-radius: 3px; - padding: 14px 10px; - min-width: 200px; - text-transform: uppercase; - border: 1px solid $white; - &.secondary { - background-color: $mainblue; - color: $white; - } - &.tertiary { - border: 1px solid $blue; - } -} -.buttons { - margin-top: 40px; - .button:first-of-type { - margin-right: 30px; - @include breakpoint(small) { - margin: 0px 0px 20px 0px; - } - } -} -strong { - font-family: $metropolis-medium; -} -.bg-grey { - background-color: $lightgrey; -} - -.grid.three { - display: grid; - grid-template-columns: 1fr 1fr 1fr; - row-gap: 20px; - column-gap: 20px; - @include breakpoint(small) { - grid-template-columns: 1fr; - } -} - -.grid.two { - display: grid; - grid-template-columns: 1fr 1fr; - @include breakpoint(small) { - grid-template-columns: 1fr; - } -} - -.rounded-circle { - border-radius: 50% !important; -} - -noscript { - background-color: rgba(red, .25); - display: block; - font-size: 14px; - font-weight: bold; - padding: 10px; - margin: 0 20px 20px 0; -} -table { - font-size: 16px; - border-collapse: collapse; - th { - background-color: #a09f9f; - padding: 4px 10px 4px 10px; - border: 1px solid #ddd; - } - tr:nth-child(even) { - background-color: #f2f2f2; - } - td{ - border: 1px solid #ddd; - padding: 4px 10px 4px 10px; - } -} - -// Metropolis -@font-face { - font-family: "Metropolis-Bold"; - src:url("/fonts/Metropolis-Bold.eot"); - src:url("/fonts/Metropolis-Bold.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-Bold.woff2") format("woff2"), - url("/fonts/Metropolis-Bold.woff") format("woff"); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: "Metropolis-BoldItalic"; - src:url("/fonts/Metropolis-BoldItalic.eot"); - src:url("/fonts/Metropolis-BoldItalic.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-BoldItalic.woff2") format("woff2"), - url("/fonts/Metropolis-BoldItalic.woff") format("woff"); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: "Metropolis-Light"; - src:url("/fonts/Metropolis-Light.eot"); - src:url("/fonts/Metropolis-Light.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-Light.woff2") format("woff2"), - url("/fonts/Metropolis-Light.woff") format("woff"); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: "Metropolis-LightItalic"; - src:url("/fonts/Metropolis-LightItalic.eot"); - src:url("/fonts/Metropolis-LightItalic.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-LightItalic.woff2") format("woff2"), - url("/fonts/Metropolis-LightItalic.woff") format("woff"); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: "Metropolis-Regular"; - src:url("/fonts/Metropolis-Regular.eot"); - src:url("/fonts/Metropolis-Regular.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-Regular.woff2") format("woff2"), - url("/fonts/Metropolis-Regular.woff") format("woff"); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: "Metropolis-RegularItalic"; - src:url("/fonts/Metropolis-RegularItalic.eot"); - src:url("/fonts/Metropolis-RegularItalic.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-RegularItalic.woff2") format("woff2"), - url("/fonts/Metropolis-RegularItalic.woff") format("woff"); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: "Metropolis-Medium"; - src:url("/fonts/Metropolis-Medium.eot"); - src:url("/fonts/Metropolis-Medium.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-Medium.woff2") format("woff2"), - url("/fonts/Metropolis-Medium.woff") format("woff"); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: "Metropolis-MediumItalic"; - src:url("/fonts/Metropolis-MediumItalic.eot"); - src:url("/fonts/Metropolis-MediumItalic.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-MediumItalic.woff2") format("woff2"), - url("/fonts/Metropolis-MediumItalic.woff") format("woff"); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: "Metropolis-SemiBold"; - src:url("/fonts/Metropolis-SemiBold.eot"); - src:url("/fonts/Metropolis-SemiBold.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-SemiBold.woff2") format("woff2"), - url("/fonts/Metropolis-SemiBold.woff") format("woff"); - font-weight: normal; - font-style: normal; - } - - @font-face { - font-family: "Metropolis-SemiBoldItalic"; - src:url("/fonts/Metropolis-SemiBoldItalic.eot"); - src:url("/fonts/Metropolis-SemiBoldItalic.eot?#iefix") format("embedded-opentype"), - url("/fonts/Metropolis-SemiBoldItalic.woff2") format("woff2"), - url("/fonts/Metropolis-SemiBoldItalic.woff") format("woff"); - font-weight: normal; - font-style: normal; - } \ No newline at end of file diff --git a/site/themes/template/assets/scss/_components.scss b/site/themes/template/assets/scss/_components.scss deleted file mode 100644 index b4261a36a..000000000 --- a/site/themes/template/assets/scss/_components.scss +++ /dev/null @@ -1,766 +0,0 @@ -@import 'variables'; -@import 'mixins'; - -/* Homepage Hero */ -.hero { - background-color: $mainblue; - color: $white; - .text-block { - max-width: 700px; - padding: 0px 0px 10px 0px; - p { - margin-bottom: 20px; - font-size: 18px; - color: $white; - } - h2 { - font-size: 36px; - } - } - &.homepage { - //background-image: url(/img/hero-image.png); - background-position: center center; - background-repeat: no-repeat; - background-size: cover; - padding-bottom: 80px; - h1 { - font-size: 36px; - } - } - @include breakpoint(small) { - .text-block { - max-width: unset; - margin-right: 0px; - } - .button { - display: block; - text-align: center; - } - &.homepage { - background-image: none; - } - } -} - -.grid-container { - margin-top: -80px; - .grid.three { - padding-bottom: 20px; - .card { - position: relative; - padding: 30px 20px; - background-color: $white; - text-align: center; - box-shadow: 0px 2px 10px rgba(0,0,0,0.2); - h3 { - color: $darkgrey; - font-size: 22px; - } - p { - color: $darkgrey; - } - } - } -} - -.introduction { - .grid.two { - column-gap: 140px; - padding: 35px 20px; - p { - margin: 0px; - font-size: 16px; - &.strong { - color: $darkgrey; - } - } - } - @include breakpoint(small) { - padding: 0px 20px; - .col:first-of-type { - padding-bottom: 50px; - } - } -} - -.use-cases { - .grid { - grid-template-columns: 220px 1fr; - margin-bottom: 30px; - grid-template-areas: - "image text"; - .image { - background-color: $mainblue; - text-align: center; - display: flex; - align-items: center; - justify-content: center; - grid-area: image; - img { - justify-self: center; - } - } - .text { - border: 1px solid $lightgrey; - padding: 30px; - grid-area: text; - a.button { - display: block; - max-width: 138px; - text-align: center; - padding: 5px 10px; - min-width: unset; - } - } - &.image-right { - grid-template-columns: 1fr 220px; - grid-template-areas: - "text image"; - @include breakpoint(small) { - grid-template-columns: 1fr; - grid-template-areas: - "image" - "text"; - } - } - @include breakpoint(small) { - grid-template-columns: 1fr; - grid-template-rows: minmax(160px, 1fr); - grid-template-areas: - "image" - "text"; - } - } - h2 { - color: $black; - } - p.strong { - color: #1B3951; - font-size: 16px; - } -} - -.team { - background-color: $navyblue; - h2, h3, p { - color: $white; - } - p { - font-size: 16px; - } - a { - color: $white; - font-weight: 300; - text-decoration: underline; - } - .grid.three { - row-gap: 40px; - margin: 40px 0px; - } - .bio { - display: grid; - grid-template-columns: 120px 1fr; - column-gap: 20px; - .image img { - height: 120px; - width: 120px; - } - .info { - align-self: center; - p { - margin: 0px; - &.name { - font-size: 16px; - font-family: $metropolis-medium; - } - &.position { - font-size: 14px; - } - } - } - } -} - -.hero.subpage-hero { - //background-image: url(/img/blog-hero-image.png); - background-position: center center; - background-repeat: no-repeat; - background-size: cover; - padding-bottom: 90px; - - h1 { - font-size: 46px; - text-align: center; - @include breakpoint(small) { - font-size: 26px; - } - } -} - -.experimental { - .grid.three .col { - padding: 0px; - } - .icon { - background-color: $mainblue; - padding: 25px; - min-height: 95px; - display: flex; - align-items: center; - justify-content: center; - } - .content { - padding: 25px; - .example { - background-color: $lightgrey; - } - } -} - -.blog { - padding-bottom: 50px; - .col { - border: 1px solid $lightgrey; - img { - width: 100%; - } - .content { - padding: 0px 20px; - } - } - &.landing { - background-color: #fff; - margin-top: -90px; - h3 a { - font-size: 16px; - } - .pagination { - margin: 30px auto 50px auto; - ul { - padding: 0px; - text-align: center; - li { - padding: 0px; - a { - padding: 5px 10px; - &.active { - background-color: $lightgrey; - border-radius: 50%; - } - } - &.left-arrow { - margin-right: 15px; - } - &.right-arrow { - margin-left: 15px; - } - } - } - } - } - .blog-post { - background-color: #fff; - margin: -110px 0px 0px -30px; - padding: 30px 90px 30px 30px; - .author { - color: $blue; - margin: 0px; - } - .date { - color: $black; - margin: 0px; - font-weight: 600; - } - .header, h4 { - color: $black; - font-weight: 600; - } - a { - font-size: 16px; - } - ul { - list-style-type: disc; - padding-left: 20px; - li { - list-style-type: unset; - display: list-item; - margin-bottom: 10px; - font-size: 14px; - color: $darkgrey; - line-height: 1.6em; - list-style-image: url(/img/arrow.svg); - &:first-child { - margin-top: 10px; - } - } - } - ol { - li { - list-style-type: decimal; - display: list-item; - margin-bottom: 10px; - font-size: 16px; - color: $darkgrey; - &:first-child { - margin-top: 10px; - } - } - } - img { - max-width: 100%; - } - strong { - font-family: $metropolis-medium; - } - } -} - -.getting-started { - background-color: $lightgrey; - color: $black; - p { - color: $black; - font-size: 16px; - } - .left-side { - width: 50%; - float: left; - } - .right-side { - width: 25%; - float: right; - } - h2 { - font-size: 30px; - margin-bottom: 0px; - } - a { - display: block; - max-width: 138px; - text-align: center; - padding: 10px; - min-width: unset; - } - .button { - margin-top: 50px; - border: 1px solid $blue; - } - @include breakpoint(small) { - .wrapper { - padding-bottom: 40px; - } - .left-side { - width: 100%; - float: none; - } - .right-side { - width: 100%; - float: none; - } - .button { - display: block; - text-align: center; - max-width: unset; - margin-top: 20px; - } - } -} - -.subpage { - background-color: #fff; - margin-top: -90px; - padding: 30px 30px 50px 30px; - .section-header { - margin-top: 3rem; - font-weight: 600; - font-size: 20px; - } - .embed-responsive { - position: relative; - &:before { - padding-top: 56.25%; - display: block; - content: ""; - } - .embed-responsive-item { - position: absolute; - top: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; - } - } - .grid { - margin-bottom: 20px; - .col { - border: 1px solid #F2F2F2; - .icon { - display: flex; - align-items: center; - justify-content: center; - min-height: 140px; - } - .content { - padding: 0px 20px 20px 20px; - &.plugins { - padding-top: 20px; - img { - display: block; - margin: 0px auto 5px auto; - } - } - h3 { - margin-top: 0px; - text-align: center; - - a { - font-size: 20px; - } - } - ul { - padding-left: 20px; - li { - margin-bottom: 10px; - color: $darkgrey; - line-height: 1.6em; - list-style-image: url(/img/arrow.svg); - } - } - } - } - } -} - -.docs { - background-color: #fff; - margin-top: -90px; - padding: 30px 30px 50px 30px; - display: flex; - .side-nav { - max-width: 230px; - width: 25%; - float: left; - position: relative; - border-right: 1px solid $lightgrey; - .dropdown { - font-size: 14px; - font-family: $metropolis-medium; - margin-bottom: 10px; - button { - background-image: url(/img/down-arrow.svg); - background-repeat: no-repeat; - background-position: 90% center; - border-radius: 5px; - display: inline; - padding: 10px 30px 10px 10px; - border: 1px solid $blue; - color: $black; - font-size: 14px; - font-family: $metropolis-medium; - margin-bottom: 10px; - &:focus { - background-color: $lightgrey; - } - } - } - .dropdown-menu { - position: absolute; - border: 1px solid $grey; - border-radius: 5px; - top: 30px; - left: 0px; - background-color: $white; - padding: 10px 20px; - min-width: 100px; - display: none; - a { - display: block; - margin: 7px 0px; - } - &.dropdown-menu-visible { - display: block; - } - } - .form-control { - display: block; - width: 90%; - height: 40px; - padding: .375rem .75rem; - font-size: 1.125rem; - line-height: 1.5; - color: $grey; - background-color: #fff; - border: 1px solid #cecece; - background-image: url(/img/search-icon.svg); - background-repeat: no-repeat; - background-position: 95% center; - &:focus { - outline: none; - } - &::-webkit-search-cancel-button { - -webkit-appearance: none; - } - } - .ds-dataset-1 { - padding: 5px; - } - .ds-dropdown-menu { - background-color: #fff; - border: 1px solid #cecece; - } - a.active { - background: $lightgrey; - padding: 5px 7px; - margin-left: -7px; - } - h3 { - font-size: 18px; - font-family: $metropolis-medium; - margin-bottom: 10px; - } - ul { - padding-left: 0px; - margin-top: 0; - margin-bottom: 35px; - list-style-type: none; - li { - display: block; - a { - font-size: 14px; - font-weight: 300; - } - &.heading { - color: $black; - font-size: 14px; - } - } - } - } - .docs-content { - width: 75%; - float: right; - padding-left: 20px; - - &.full { - width: 100%; - } - a { - font-size: 16px; - } - ul { - list-style-type: disc; - padding-left: 20px; - li { - list-style-type: unset; - display: list-item; - margin-bottom: 10px; - font-size: 16px; - color: $darkgrey; - line-height: 1.6em; - list-style-image: url(/img/arrow.svg); - &:first-child { - margin-top: 10px; - } - } - } - ol { - li { - list-style-type: decimal; - display: list-item; - margin-bottom: 10px; - font-size: 16px; - color: $darkgrey; - &:first-child { - margin-top: 10px; - } - } - } - img { - max-width: 100%; - } - @include breakpoint(large) { - width: 58%; - padding-right: 20px; - padding-left: 20px; - } - @include breakpoint(extra-large) { - width: 75%; - padding-left: 20px; - padding-right: 20px; - } - } - .right-nav { - width: 20%; - float: right; - margin: -30px -30px 0px 0px; - .right-nav-content { - background-color: #EFEFEF; - padding: 30px 30px 30px 20px; - margin-right: -20px; - position: sticky; - top: 0; - } - .buttons { - margin-top: 0px; - li { - margin-bottom: 0px; - padding: 8px 0px; - display: inline-block; - &:first-of-type { - border-right: 1px solid #ddd; - padding-right: 5px; - } - a { - text-transform: uppercase; - font-size: 14px; - img { - vertical-align: middle; - width: 22px; - } - } - } - } - h4 { - font-size: 16px; - } - ul { - padding-left: 0px; - margin-bottom: 0px; - li { - display: block; - padding-right: 0px; - margin-bottom: 7px; - a { - font-family: $metropolis-light; - font-size: 14px; - } - ul { - margin-top: 7px; - padding-inline-start: 14px; - } - } - } - .sticky { - position: fixed; - top: 0; - } - @include breakpoint(small-medium) { - display: none; - } - } -} - -.community-logo{ - width: 75px; -} - -.common { - background-color: #fff; - margin-top: -90px; - padding: 30px 30px 50px 30px; - display: flex; - - .content { - width: 100%; - float: right; - padding-left: 20px; - - a { - font-size: 16px; - } - ul { - list-style-type: disc; - padding-left: 20px; - li { - list-style-type: unset; - display: list-item; - margin-bottom: 10px; - font-size: 16px; - color: $darkgrey; - line-height: 1.6em; - list-style-image: url(/img/arrow.svg); - &:first-child { - margin-top: 10px; - } - } - } - ol { - li { - list-style-type: decimal; - display: list-item; - margin-bottom: 10px; - font-size: 16px; - color: $darkgrey; - &:first-child { - margin-top: 10px; - } - } - } - img { - max-width: 100%; - } - @include breakpoint(large) { - width: 80%; - padding-right: 20px; - padding-left: 20px; - } - } - .right-nav { - width: 20%; - float: right; - margin: -30px -30px 0px 0px; - .right-nav-content { - background-color: #EFEFEF; - padding: 30px 30px 30px 20px; - position: sticky; - top: 0; - } - h4 { - font-size: 16px; - } - ul { - padding-left: 0px; - margin-bottom: 0px; - li { - display: block; - padding-right: 0px; - margin-bottom: 7px; - a { - font-family: $metropolis-light; - font-size: 14px; - } - ul { - margin-top: 7px; - padding-inline-start: 14px; - } - } - } - .sticky { - position: fixed; - top: 0; - } - @include breakpoint(small-medium) { - display: none; - } - } -} - - -.embed { - position: relative; - padding-bottom: 56.25%; - margin-bottom: 36px; - height: 0; - overflow: hidden; - - iframe { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - border: 0; - } -} \ No newline at end of file diff --git a/site/themes/template/assets/scss/_footer.scss b/site/themes/template/assets/scss/_footer.scss deleted file mode 100644 index 6b64ca226..000000000 --- a/site/themes/template/assets/scss/_footer.scss +++ /dev/null @@ -1,97 +0,0 @@ -@import 'variables'; -@import 'mixins'; -@import 'base'; - -footer { - .top-links { - min-height: 52px; - display: flex; - align-items: center; - justify-content: space-between; - } - .left-links { - padding: 0px; - li { - img { - vertical-align: bottom; - margin-right: 10px; - } - a { - color: $darkgrey; - font-weight: 300; - font-size: 12px; - font-family: $metropolis-light; - } - } - .mobile { - display: none; - } - } - .right-links { - p { - margin: 0px; - } - .copywrite { - font-size: 12px; - padding-right: 10px; - a { - font-size: 12px; - color: $darkgrey; - font-family: $metropolis-light; - } - } - a { - vertical-align: middle; - } - img{ - height: 50px; - } - } - .bottom-links { - margin: 10px 0px 30px 0px; - float: right; - p { - font-size: 12px; - } - a { - font-size: 12px; - font-family: $metropolis-light; - } - img { - max-width: 75px; - vertical-align: middle; - margin-left: 30px; - } - } - @include breakpoint(small) { - .footer-links { - display: block; - .right-links { - display: none; - } - .left-links { - float: none; - margin: 10px 0px; - .desktop { - display: none; - } - .mobile { - display: inline; - } - .copywrite { - display: block; - margin-top:20px; - } - } - } - .bottom-links { - margin: 10px 0px 20px 0px; - float: none; - img { - margin-left: 0px; - display: block; - margin-top: 10px; - } - } - } -} \ No newline at end of file diff --git a/site/themes/template/assets/scss/_header.scss b/site/themes/template/assets/scss/_header.scss deleted file mode 100644 index 84026b845..000000000 --- a/site/themes/template/assets/scss/_header.scss +++ /dev/null @@ -1,106 +0,0 @@ -@import 'variables'; -@import 'mixins'; -@import 'base'; - -header { - .wrapper { - padding: 10px 20px; - min-height: 52px; - display: flex; - align-items: center; - justify-content: space-between; - } - .desktop-links { - padding-left: 0px; - } - .image{ - height: 75px; - } - a { - color: $darkgrey; - font-family: $metropolis-light; - &.active { - font-family: $metropolis-medium; - } - } - li img { - vertical-align: bottom; - margin-right: 10px; - } - .mobile { - display: none; - } - @include breakpoint(medium) { - .desktop-links li { - padding-right: 10px; - } - } - @include breakpoint(small) { - .expanded-icon { - display: none; - padding: 11px 3px 0px 0px; - } - .collapsed-icon { - padding-top: 12px; - } - .mobile-menu-visible { - .mobile { - display: block; - .collapsed-icon { - display: none; - } - .expanded-icon { - display: block; - } - } - } - position: relative; - .desktop-links { - display: none; - } - .mobile { - display: block; - } - button { - float: right; - &:focus { - outline: none; - } - } - ul { - padding-left: 0px; - li { - display: block; - margin: 20px 0px; - } - } - .mobile-menu { - position: absolute; - background-color: #fff; - width: 100%; - top: 70px; - left: 0px; - padding-bottom: 20px; - display: none; - z-index: 10; - .header-links { - margin: 0px 20px; - } - .social { - margin: 0px 20px; - padding-top: 20px; - img { - vertical-align: middle; - padding-right: 10px; - } - a { - font-size: 14px; - padding-right: 35px; - &:last-of-type { - padding-right: 0px; - } - } - } - } - } -} \ No newline at end of file diff --git a/site/themes/template/assets/scss/_mixins.scss b/site/themes/template/assets/scss/_mixins.scss deleted file mode 100644 index 49380a36e..000000000 --- a/site/themes/template/assets/scss/_mixins.scss +++ /dev/null @@ -1,36 +0,0 @@ -@mixin breakpoint($point) { - $small: 767px; // Up to 767px - $medium: 1279px; // Up to 1279px - $large: 1439px; // Up to 1439px - $extra-large: 1800px; // Up to 1800px - @if $point == extra-large { - @media only screen and (min-width : $large+1) { @content; } - } - @else if $point == large { - @media only screen and (min-width : $medium+1) and (max-width: $large) { @content; } - } - @else if $point == medium-large { - @media only screen and (min-width: $medium+1) { @content; } - } - @else if $point == medium { - @media only screen and (min-width: $small+1) and (max-width: $medium) { @content; } - } - @else if $point == small-medium { - @media only screen and (max-width: $medium) { @content; } - } - @else if $point == small { - @media only screen and (max-width: $small) { @content; } - } -} - -@mixin clearfix { - *zoom: 1; - &:before, &:after { - display: table; - content: ""; - line-height: 0; - } - &:after { - clear: both; - } -} \ No newline at end of file diff --git a/site/themes/template/assets/scss/_syntax.scss b/site/themes/template/assets/scss/_syntax.scss deleted file mode 100644 index 03efae490..000000000 --- a/site/themes/template/assets/scss/_syntax.scss +++ /dev/null @@ -1,195 +0,0 @@ -/* Grab styles with: hugo gen chromastyles --style=pygments */ - -pre { - code { - display: block; - padding: 15px; - overflow-x: auto; - font-size: 10pt; - font-family: "SFMono-Regular", monospace; /* kubernetes doc uses this and it looks so much better */ - border: 1px solid rgba(0,0,0,.125); - border-radius: 0.25rem; - &.language-bash, &.language-console { - border: none; - } - } -} - -.chroma { - /* ********************************** - style=pygments - Used for most code blocks. - ********************************** */ - background-color: #f8f8f8; - /* Other */ .x { } - /* Error */ .err { } - /* LineTableTD */ .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } - /* LineTable */ .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } - /* LineHighlight */ .hl { display: block; width: 100%;background-color: #ffffcc } - /* LineNumbersTable */ .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } - /* LineNumbers */ .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } - /* Keyword */ .k { color: #008000; font-weight: bold } - /* KeywordConstant */ .kc { color: #008000; font-weight: bold } - /* KeywordDeclaration */ .kd { color: #008000; font-weight: bold } - /* KeywordNamespace */ .kn { color: #008000; font-weight: bold } - /* KeywordPseudo */ .kp { color: #008000 } - /* KeywordReserved */ .kr { color: #008000; font-weight: bold } - /* KeywordType */ .kt { color: #b00040 } - /* Name */ .n { } - /* NameAttribute */ .na { color: #7d9029 } - /* NameBuiltin */ .nb { color: #008000 } - /* NameBuiltinPseudo */ .bp { } - /* NameClass */ .nc { color: #0000ff; font-weight: bold } - /* NameConstant */ .no { color: #880000 } - /* NameDecorator */ .nd { color: #aa22ff } - /* NameEntity */ .ni { color: #999999; font-weight: bold } - /* NameException */ .ne { color: #d2413a; font-weight: bold } - /* NameFunction */ .nf { color: #0000ff } - /* NameFunctionMagic */ .fm { } - /* NameLabel */ .nl { color: #a0a000 } - /* NameNamespace */ .nn { color: #0000ff; font-weight: bold } - /* NameOther */ .nx { } - /* NameProperty */ .py { } - /* NameTag */ .nt { color: #008000; font-weight: bold } - /* NameVariable */ .nv { color: #19177c } - /* NameVariableClass */ .vc { } - /* NameVariableGlobal */ .vg { } - /* NameVariableInstance */ .vi { } - /* NameVariableMagic */ .vm { } - /* Literal */ .l { } - /* LiteralDate */ .ld { } - /* LiteralString */ .s { color: #ba2121 } - /* LiteralStringAffix */ .sa { color: #ba2121 } - /* LiteralStringBacktick */ .sb { color: #ba2121 } - /* LiteralStringChar */ .sc { color: #ba2121 } - /* LiteralStringDelimiter */ .dl { color: #ba2121 } - /* LiteralStringDoc */ .sd { color: #ba2121; font-style: italic } - /* LiteralStringDouble */ .s2 { color: #ba2121 } - /* LiteralStringEscape */ .se { color: #bb6622; font-weight: bold } - /* LiteralStringHeredoc */ .sh { color: #ba2121 } - /* LiteralStringInterpol */ .si { color: #bb6688; font-weight: bold } - /* LiteralStringOther */ .sx { color: #008000 } - /* LiteralStringRegex */ .sr { color: #bb6688 } - /* LiteralStringSingle */ .s1 { color: #ba2121 } - /* LiteralStringSymbol */ .ss { color: #19177c } - /* LiteralNumber */ .m { color: #666666 } - /* LiteralNumberBin */ .mb { color: #666666 } - /* LiteralNumberFloat */ .mf { color: #666666 } - /* LiteralNumberHex */ .mh { color: #666666 } - /* LiteralNumberInteger */ .mi { color: #666666 } - /* LiteralNumberIntegerLong */ .il { color: #666666 } - /* LiteralNumberOct */ .mo { color: #666666 } - /* Operator */ .o { color: #666666 } - /* OperatorWord */ .ow { color: #aa22ff; font-weight: bold } - /* Punctuation */ .p { } - /* Comment */ .c { color: #408080; font-style: italic } - /* CommentHashbang */ .ch { color: #408080; font-style: italic } - /* CommentMultiline */ .cm { color: #408080; font-style: italic } - /* CommentSingle */ .c1 { color: #408080; font-style: italic } - /* CommentSpecial */ .cs { color: #408080; font-style: italic } - /* CommentPreproc */ .cp { color: #bc7a00 } - /* CommentPreprocFile */ .cpf { color: #bc7a00 } - /* Generic */ .g { } - /* GenericDeleted */ .gd { color: #a00000 } - /* GenericEmph */ .ge { font-style: italic } - /* GenericError */ .gr { color: #ff0000 } - /* GenericHeading */ .gh { color: #000080; font-weight: bold } - /* GenericInserted */ .gi { color: #00a000 } - /* GenericOutput */ .go { color: #888888 } - /* GenericPrompt */ .gp { color: #000080; font-weight: bold } - /* GenericStrong */ .gs { font-weight: bold } - /* GenericSubheading */ .gu { color: #800080; font-weight: bold } - /* GenericTraceback */ .gt { color: #0044dd } - /* GenericUnderline */ .gl { text-decoration: underline } - /* TextWhitespace */ .w { color: #bbbbbb } - - .language-bash,.language-console { - /* ********************************** - style=native - Used for bash - ********************************** */ - color: #d0d0d0; - background-color: #202020; - .x { } - .err { color: #a61717; background-color: #e3d2d2 } - .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } - .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } - .hl { display: block; width: 100%;background-color: #ffffcc } - .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #686868 } - .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #686868 } - .k { color: #6ab825; font-weight: bold } - .kc { color: #6ab825; font-weight: bold } - .kd { color: #6ab825; font-weight: bold } - .kn { color: #6ab825; font-weight: bold } - .kp { color: #6ab825 } - .kr { color: #6ab825; font-weight: bold } - .kt { color: #6ab825; font-weight: bold } - .n { } - .na { color: #bbbbbb } - .nb { color: #24909d } - .bp { } - .nc { color: #447fcf; text-decoration: underline } - .no { color: #40ffff } - .nd { color: #ffa500 } - .ni { } - .ne { color: #bbbbbb } - .nf { color: #447fcf } - .fm { } - .nl { } - .nn { color: #447fcf; text-decoration: underline } - .nx { } - .py { } - .nt { color: #6ab825; font-weight: bold } - .nv { color: #40ffff } - .vc { } - .vg { } - .vi { } - .vm { } - .l { } - .ld { } - .s { color: #ed9d13 } - .sa { color: #ed9d13 } - .sb { color: #ed9d13 } - .sc { color: #ed9d13 } - .dl { color: #ed9d13 } - .sd { color: #ed9d13 } - .s2 { color: #ed9d13 } - .se { color: #ed9d13 } - .sh { color: #ed9d13 } - .si { color: #ed9d13 } - .sx { color: #ffa500 } - .sr { color: #ed9d13 } - .s1 { color: #ed9d13 } - .ss { color: #ed9d13 } - .m { color: #3677a9 } - .mb { color: #3677a9 } - .mf { color: #3677a9 } - .mh { color: #3677a9 } - .mi { color: #3677a9 } - .il { color: #3677a9 } - .mo { color: #3677a9 } - .o { } - .ow { color: #6ab825; font-weight: bold } - .p { } - .c { color: #999999; font-style: italic } - .ch { color: #999999; font-style: italic } - .cm { color: #999999; font-style: italic } - .c1 { color: #999999; font-style: italic } - .cs { color: #e50808; background-color: #520000; font-weight: bold } - .cp { color: #cd2828; font-weight: bold } - .cpf { color: #cd2828; font-weight: bold } - .g { } - .gd { color: #d22323 } - .ge { font-style: italic } - .gr { color: #d22323 } - .gh { color: #ffffff; font-weight: bold } - .gi { color: #589819 } - .go { color: #cccccc } - .gp { color: #aaaaaa } - .gs { font-weight: bold } - .gu { color: #ffffff; text-decoration: underline } - .gt { color: #d22323 } - .gl { text-decoration: underline } - .w { color: #666666 } - } -} \ No newline at end of file diff --git a/site/themes/template/assets/scss/_variables.scss b/site/themes/template/assets/scss/_variables.scss deleted file mode 100644 index b437897fc..000000000 --- a/site/themes/template/assets/scss/_variables.scss +++ /dev/null @@ -1,13 +0,0 @@ -$white: #ffffff; -$blue: #0095D3; -$darkgrey: #333333; -$grey: #777777; -$lightgrey: #F2F2F2; -$darkblue: #002538; -$purple: #7F35B2; -$black: #111111; -$mainblue: #0091DA; -$navyblue: #1D428A; -$brightblue: #1D428A; -$green: #78BE20; -$teal: #00C0D5; \ No newline at end of file diff --git a/site/themes/template/assets/scss/site.scss b/site/themes/template/assets/scss/site.scss deleted file mode 100644 index 353f1a330..000000000 --- a/site/themes/template/assets/scss/site.scss +++ /dev/null @@ -1,7 +0,0 @@ -@import 'header'; -@import 'footer'; -@import 'base'; -@import 'variables'; -@import 'components'; -@import 'syntax'; -@import 'mixins'; \ No newline at end of file diff --git a/site/themes/template/layouts/_default/_markup/render-image.html b/site/themes/template/layouts/_default/_markup/render-image.html deleted file mode 100644 index 41bf8b52e..000000000 --- a/site/themes/template/layouts/_default/_markup/render-image.html +++ /dev/null @@ -1,11 +0,0 @@ -{{ $link := .Destination }} -{{ if not (strings.HasPrefix $link "http") }} - {{ if strings.HasSuffix .Page.Parent.RelPermalink "docs/" }} - {{ $link = printf "%s%s" .Page.RelPermalink .Destination }} - {{ else }} - {{ $link = printf "%s%s" .Page.Parent.RelPermalink .Destination }} - {{ end }} -{{ end }} -

- {{ .Text }} -

\ No newline at end of file diff --git a/site/themes/template/layouts/_default/_markup/render-link.html b/site/themes/template/layouts/_default/_markup/render-link.html deleted file mode 100644 index e552f143b..000000000 --- a/site/themes/template/layouts/_default/_markup/render-link.html +++ /dev/null @@ -1,10 +0,0 @@ -{{ $link := .Destination }} -{{ $isRemote := strings.HasPrefix $link "http" }} -{{- if not $isRemote -}} -{{ $url := urls.Parse .Destination }} -{{- if $url.Path -}} -{{ $fragment := "" }} -{{- with $url.Fragment }}{{ $fragment = printf "#%s" . }}{{ end -}} -{{- with .Page.GetPage $url.Path }}{{ $link = printf "%s%s" .RelPermalink $fragment }}{{ end }}{{ end -}} -{{- end -}} -{{ .Text | safeHTML }} \ No newline at end of file diff --git a/site/themes/template/layouts/_default/baseof.html b/site/themes/template/layouts/_default/baseof.html deleted file mode 100644 index ef5f0e093..000000000 --- a/site/themes/template/layouts/_default/baseof.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - {{ if .Title }}{{ .Title }}{{ else }}Documentation{{ end }} - {{ with .Site.Params.description }}{{ end }} - {{ with .Site.Params.author }}{{ end }} - {{ $options := (dict "targetPath" "css/style.css" "outputStyle" "compressed" "enableSourceMap" true "includePaths" (slice "node_modules/myscss")) }} - {{ $style := resources.Get "scss/site.scss" | resources.ToCSS $options }} - - - - {{ with .OutputFormats.Get "RSS" -}} - {{ printf `` .Rel .MediaType.Type .RelPermalink $.Site.Title | safeHTML }} - {{- end }} - - - {{ partial "header" . }} - {{ block "main" . }}{{ end }} - {{ if not (eq .Section "docs") }} - {{ partial "getting-started" . }} - {{ end }} - {{ partial "footer" . }} - {{ if .Site.Params.docs_search }} - - - {{ end }} - - diff --git a/site/themes/template/layouts/_default/common.html b/site/themes/template/layouts/_default/common.html deleted file mode 100644 index 1ccf0fd2b..000000000 --- a/site/themes/template/layouts/_default/common.html +++ /dev/null @@ -1,27 +0,0 @@ -{{ define "main" }} -
-
-
-

{{ .Page.Title }}

-
-
- -
-
- {{ .Content }} -
- - {{ if ne .TableOfContents "" }} -
-
-

On this page:

- {{ .TableOfContents }} - -
-
- {{ end }} - -
- -
-{{ end }} diff --git a/site/themes/template/layouts/_default/docs.html b/site/themes/template/layouts/_default/docs.html deleted file mode 100644 index dabf3765b..000000000 --- a/site/themes/template/layouts/_default/docs.html +++ /dev/null @@ -1,17 +0,0 @@ -{{ define "main" }} -
-
-
-

Documentation

-
-
-
- {{ partial "docs-sidebar.html" . }} -
- {{ partial "version-warning.html" . }} - {{ .Content }} -
- {{ partial "docs-right-bar.html" . }} -
-
-{{ end }} \ No newline at end of file diff --git a/site/themes/template/layouts/_default/list.html b/site/themes/template/layouts/_default/list.html deleted file mode 100644 index fe3cc0e4a..000000000 --- a/site/themes/template/layouts/_default/list.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ define "main" }} -
- {{ if or .Title .Content }} -
- {{ with .Title }}

{{ . }}

{{ end }} - {{ with .Content }}
{{ . }}
{{ end }} -
- {{ end }} - - {{ range .Paginator.Pages }} - {{ .Render "summary" }} - {{ end }} -
-{{ end }} diff --git a/site/themes/template/layouts/_default/posts.html b/site/themes/template/layouts/_default/posts.html deleted file mode 100644 index 299a8726a..000000000 --- a/site/themes/template/layouts/_default/posts.html +++ /dev/null @@ -1,17 +0,0 @@ -{{ define "main" }} -
-
-
-

Blog

-
-
-
-
- {{ range (.Paginator 9).Pages.ByDate }} - {{ partial "blog-post-card.html" . }} - {{ end }} -
- {{ partial "pagination.html" . }} -
-
-{{ end }} diff --git a/site/themes/template/layouts/_default/search.html b/site/themes/template/layouts/_default/search.html deleted file mode 100644 index a9e29821a..000000000 --- a/site/themes/template/layouts/_default/search.html +++ /dev/null @@ -1,10 +0,0 @@ -{{ if .Site.Params.docs_search }} -
- - - -
-{{ end }} \ No newline at end of file diff --git a/site/themes/template/layouts/_default/section.html b/site/themes/template/layouts/_default/section.html deleted file mode 100644 index 560a0253a..000000000 --- a/site/themes/template/layouts/_default/section.html +++ /dev/null @@ -1,8 +0,0 @@ -{{ define "main" }} -
- {{ .Content }} -
-{{ end }} - - - diff --git a/site/themes/template/layouts/_default/single.html b/site/themes/template/layouts/_default/single.html deleted file mode 100644 index c66ca2b62..000000000 --- a/site/themes/template/layouts/_default/single.html +++ /dev/null @@ -1,34 +0,0 @@ -{{ define "main" }} -
-
-
-
-

Blog

-
-
-
-
-

{{ .Title }}

-

- - {{ .Params.author }} -

-

{{ dateFormat "Jan 2, 2006" .Date }}

- {{ .Content }} -
-

Related Content

-
- {{ $related := (where (.Site.RegularPages.Related .) "Type" "posts") | first 3 }} - {{ with $related }} - {{ range . }} - {{ partial "blog-post-card.html" . }} - {{ end }} - {{ end }} -
-
-
-
-{{ end }} - - - diff --git a/site/themes/template/layouts/_default/summary.html b/site/themes/template/layouts/_default/summary.html deleted file mode 100644 index 9acf43418..000000000 --- a/site/themes/template/layouts/_default/summary.html +++ /dev/null @@ -1,13 +0,0 @@ -
-

{{ .Title }}

- - {{ range .Params.tags }} - {{ . }} - {{ end }} -
- {{ .Summary }} - {{ if .Truncated }} - Read more... - {{ end }} -
-
diff --git a/site/themes/template/layouts/_default/tag.html b/site/themes/template/layouts/_default/tag.html deleted file mode 100644 index 6d6c931f3..000000000 --- a/site/themes/template/layouts/_default/tag.html +++ /dev/null @@ -1,16 +0,0 @@ -{{ define "main" }} -
-
-
-

Blog Posts by {{ .Title }}

-
-
-
-
- {{ range .Pages.ByDate }} - {{ partial "blog-post-card.html" . }} - {{ end }} -
-
-
-{{ end }} \ No newline at end of file diff --git a/site/themes/template/layouts/_default/versions.html b/site/themes/template/layouts/_default/versions.html deleted file mode 100644 index 8df453fe5..000000000 --- a/site/themes/template/layouts/_default/versions.html +++ /dev/null @@ -1,22 +0,0 @@ -{{ if .Site.Params.Use_advanced_docs }} - -{{ end }} \ No newline at end of file diff --git a/site/themes/template/layouts/index.html b/site/themes/template/layouts/index.html deleted file mode 100644 index 316a578c0..000000000 --- a/site/themes/template/layouts/index.html +++ /dev/null @@ -1,21 +0,0 @@ -{{ define "main" }} -{{ $latest := (cond (.Site.Params.docs_versioning) .Site.Params.docs_latest "") }} -
- {{ partial "hero.html" . }} - {{ partial "homepage-grid.html" . }} -
-
-
-

Learn More About Cartographer

-

Learn more about Cartographer and how to create supply chains

-
-
-

Choreography vs. Orchestration

-

Cartographer is a choreographer, see how this paradigm differs from orchestration

-
-
-
- {{ partial "use-cases.html" . }} - -
-{{ end }} diff --git a/site/themes/template/layouts/index.redirects b/site/themes/template/layouts/index.redirects deleted file mode 100644 index fe0bd138e..000000000 --- a/site/themes/template/layouts/index.redirects +++ /dev/null @@ -1,4 +0,0 @@ -{{ $latest := (cond (.Site.Params.docs_versioning) .Site.Params.docs_latest "") }} -/docs /docs/{{ $latest }} 301! -/docs/latest /docs/{{ $latest }} -/docs/latest/* /docs/{{ $latest }}/:splat \ No newline at end of file diff --git a/site/themes/template/layouts/partials/blog-post-card.html b/site/themes/template/layouts/partials/blog-post-card.html deleted file mode 100644 index bdda6613d..000000000 --- a/site/themes/template/layouts/partials/blog-post-card.html +++ /dev/null @@ -1,9 +0,0 @@ -
-
- {{ .Title }} -
-
-

{{ .Title }}

-

{{ .Params.Excerpt }}

-
-
\ No newline at end of file diff --git a/site/themes/template/layouts/partials/contributors.html b/site/themes/template/layouts/partials/contributors.html deleted file mode 100644 index 720b551e1..000000000 --- a/site/themes/template/layouts/partials/contributors.html +++ /dev/null @@ -1,19 +0,0 @@ -
-
-

Imperdiet sed euismod nisi:

-
- {{ $contributors := .Site.GetPage "/contributors" }} - {{ range $contributors.Resources }} - - {{ end }} -
-

Lorem Ipsum:

-

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

-
-
\ No newline at end of file diff --git a/site/themes/template/layouts/partials/docs-right-bar.html b/site/themes/template/layouts/partials/docs-right-bar.html deleted file mode 100644 index 5cdc93aff..000000000 --- a/site/themes/template/layouts/partials/docs-right-bar.html +++ /dev/null @@ -1,19 +0,0 @@ -{{ if .Site.Params.docs_right_sidebar }} -
-
-
    - {{ if (or .IsNode .IsPage) }} - {{ $issueBody := printf "**On Page:** [%s](%s)" .Title .Permalink | htmlEscape }} - {{ $issueQuery := (querify "body" $issueBody) }} -
  • Report Issues
  • - {{ $editQuery := (querify "description" "Signed-off-by: NAME \n\n") }} -
  • Edit
  • - {{ end }} -
- {{ if ne .TableOfContents "" }} -

On this page:

- {{ .TableOfContents }} - {{ end }} -
-
-{{ end }} \ No newline at end of file diff --git a/site/themes/template/layouts/partials/docs-sidebar.html b/site/themes/template/layouts/partials/docs-sidebar.html deleted file mode 100644 index 85a7f510b..000000000 --- a/site/themes/template/layouts/partials/docs-sidebar.html +++ /dev/null @@ -1,35 +0,0 @@ -
- -
\ No newline at end of file diff --git a/site/themes/template/layouts/partials/footer.html b/site/themes/template/layouts/partials/footer.html deleted file mode 100644 index 157910321..000000000 --- a/site/themes/template/layouts/partials/footer.html +++ /dev/null @@ -1,17 +0,0 @@ - diff --git a/site/themes/template/layouts/partials/getting-started.html b/site/themes/template/layouts/partials/getting-started.html deleted file mode 100644 index 9a17521f9..000000000 --- a/site/themes/template/layouts/partials/getting-started.html +++ /dev/null @@ -1,12 +0,0 @@ -{{ $latest := (cond (.Site.Params.docs_versioning) .Site.Params.docs_latest "") }} -
-
-
-

Getting Started

-

To help you get started, see the documentation.

-
- -
-
\ No newline at end of file diff --git a/site/themes/template/layouts/partials/header.html b/site/themes/template/layouts/partials/header.html deleted file mode 100644 index 571ccf3c0..000000000 --- a/site/themes/template/layouts/partials/header.html +++ /dev/null @@ -1,35 +0,0 @@ -{{ $latest := (cond (.Site.Params.docs_versioning) .Site.Params.docs_latest "") }} -
-
- Logo - - -
- - -
-
-
\ No newline at end of file diff --git a/site/themes/template/layouts/partials/hero.html b/site/themes/template/layouts/partials/hero.html deleted file mode 100644 index 50494910a..000000000 --- a/site/themes/template/layouts/partials/hero.html +++ /dev/null @@ -1,13 +0,0 @@ -{{ $latest := (cond (.Site.Params.docs_versioning) .Site.Params.docs_latest "") }} -
-
-
-

Easily Build Cloud Native Supply Chains

-

Cartographer allows you to create secure and reusable supply chains that define all of your application CI and CD in one place, in cluster.

- -
-
-
\ No newline at end of file diff --git a/site/themes/template/layouts/partials/homepage-grid.html b/site/themes/template/layouts/partials/homepage-grid.html deleted file mode 100644 index 9e694d90e..000000000 --- a/site/themes/template/layouts/partials/homepage-grid.html +++ /dev/null @@ -1,21 +0,0 @@ -
-
-
-
- -

Reusable CI/CD

-

Create templated Supply Chains that provide a path to production for any type of application

-
-
- -

Separation of Concerns

-

Allow DevOps and Platform teams to define the steps of the path to production while providing an accessible abstraction layer for developers

-
-
- -

Kubernetes Resource Interoperability

-

Choreograph both Kubernetes and non-Kubernetes resources within the same supply chain

-
-
-
-
\ No newline at end of file diff --git a/site/themes/template/layouts/partials/pagination.html b/site/themes/template/layouts/partials/pagination.html deleted file mode 100644 index 9c90baf2f..000000000 --- a/site/themes/template/layouts/partials/pagination.html +++ /dev/null @@ -1,16 +0,0 @@ -{{ $paginator := .Paginator }} -{{ if gt $paginator.TotalPages 1 }} - -{{ end }} \ No newline at end of file diff --git a/site/themes/template/layouts/partials/use-cases.html b/site/themes/template/layouts/partials/use-cases.html deleted file mode 100644 index d5d5714b3..000000000 --- a/site/themes/template/layouts/partials/use-cases.html +++ /dev/null @@ -1,42 +0,0 @@ -
-

Features

-
-
- -
-
-

Create Reusable Supply Chains

-

Templating is built into the core of Cartographer - allowing the user to write Kubernetes resource definitions once and re-use them in any supply chain. Supply chains are also templated by default and can be re-used for many types of applications.

- -

The end result is a minimum amount of YAML configuration necessary for platform teams and developers.

- -
-
-
-
-

Defined Interface for Each Role

-

Supply chains are independent of workloads and define all and any of the steps that are necessary for an application to reach production - CI, integration & performance tests, Security (SAST & DAST), Compliance, etc.

- -

Updating supply chains on a cluster makes Day 2 operations easy. Applying a new supply chain means that any team using it will get the updates as soon as they've been applied. -

- -

Workloads provide an abstraction layer allowing developers to focus on their application and the application configuration parameters that they care about.

- -
-
- -
-
-
-
- -
-
-

Works with Existing Tools

-

Cartographer was designed to work with any Kubernetes object. As long as they are applied to a cluster they can be used in a supply chain. Cartographer allows you to wrap and template each of the objects that you would normally apply to a cluster and use them within a supply chain.

- -

The choreography engine lets a Cartographer user define sharp tools for each part of a path to production and allows the tool to do what it was designed to do. When each tool completes, Cartographer passes any output from a previous tool to the next one in the supply chain.

- -
-
-
\ No newline at end of file diff --git a/site/themes/template/layouts/partials/version-warning.html b/site/themes/template/layouts/partials/version-warning.html deleted file mode 100644 index 0f555ca1b..000000000 --- a/site/themes/template/layouts/partials/version-warning.html +++ /dev/null @@ -1,9 +0,0 @@ -{{ if eq .CurrentSection.Params.version "development" }} -{{ $latest_url := replace .Permalink .CurrentSection.Params.version .Site.Params.docs_latest | relURL }} -
-

- This is the documentation for the latest development version of Cartographer. Both code and docs may be unstable - and these docs are not guaranteed to be up to date or correct. See the latest version. -

-
-{{ end }} \ No newline at end of file diff --git a/site/themes/template/layouts/shortcodes/crd.html b/site/themes/template/layouts/shortcodes/crd.html deleted file mode 100644 index 723841f75..000000000 --- a/site/themes/template/layouts/shortcodes/crd.html +++ /dev/null @@ -1,4 +0,0 @@ -{{ $version := .Page.CurrentSection.Params.version }} -{{ $filename := (path.Join "/content/docs" $version "crds" (.Get 0)) }} -{{ $file := $filename | readFile }} -{{ (print "```yaml\n" $file "\n```") | markdownify }} diff --git a/site/themes/template/layouts/shortcodes/table.html b/site/themes/template/layouts/shortcodes/table.html deleted file mode 100644 index f48500ace..000000000 --- a/site/themes/template/layouts/shortcodes/table.html +++ /dev/null @@ -1,10 +0,0 @@ - -{{ $hasCaption := isset .Params "caption" }} -{{ $caption := .Get "caption" }} -{{ $captionEl := printf "" $caption }} -{{ $table := .Inner | .Page.RenderString }} -{{ $html := cond $hasCaption ($table | replaceRE "
%s
" $captionEl) $table | safeHTML }} -{{ $html }} \ No newline at end of file diff --git a/site/themes/template/layouts/shortcodes/tutorial.html b/site/themes/template/layouts/shortcodes/tutorial.html deleted file mode 100644 index 367b7b108..000000000 --- a/site/themes/template/layouts/shortcodes/tutorial.html +++ /dev/null @@ -1,5 +0,0 @@ -{{ $version := .Page.CurrentSection.Params.version }} -{{ $tutorialTitle := .Page.File.TranslationBaseName }} -{{ $filename := (path.Join "/content/docs" $version "tutorials/files" $tutorialTitle (.Get 0)) }} -{{ $file := $filename | readFile }} -{{ (print "```yaml\n" $file "\n```") | markdownify }} \ No newline at end of file diff --git a/site/themes/template/layouts/shortcodes/yt.html b/site/themes/template/layouts/shortcodes/yt.html deleted file mode 100644 index 10cfc8666..000000000 --- a/site/themes/template/layouts/shortcodes/yt.html +++ /dev/null @@ -1,3 +0,0 @@ -
- -
\ No newline at end of file diff --git a/site/themes/template/layouts/shortcodes/ytlist.html b/site/themes/template/layouts/shortcodes/ytlist.html deleted file mode 100644 index ddd659bae..000000000 --- a/site/themes/template/layouts/shortcodes/ytlist.html +++ /dev/null @@ -1,3 +0,0 @@ -
- -
\ No newline at end of file diff --git a/site/themes/template/static/fonts/Metropolis-Bold.eot b/site/themes/template/static/fonts/Metropolis-Bold.eot deleted file mode 100644 index 47329bfe2..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Bold.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Bold.woff b/site/themes/template/static/fonts/Metropolis-Bold.woff deleted file mode 100644 index b9eb25136..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Bold.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Bold.woff2 b/site/themes/template/static/fonts/Metropolis-Bold.woff2 deleted file mode 100644 index 13202b0e7..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Bold.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-BoldItalic.eot b/site/themes/template/static/fonts/Metropolis-BoldItalic.eot deleted file mode 100644 index b1ce9a112..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-BoldItalic.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-BoldItalic.woff b/site/themes/template/static/fonts/Metropolis-BoldItalic.woff deleted file mode 100644 index 3d0d67d86..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-BoldItalic.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-BoldItalic.woff2 b/site/themes/template/static/fonts/Metropolis-BoldItalic.woff2 deleted file mode 100644 index 00e85e5ff..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-BoldItalic.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Light.eot b/site/themes/template/static/fonts/Metropolis-Light.eot deleted file mode 100644 index 2e56960aa..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Light.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Light.woff b/site/themes/template/static/fonts/Metropolis-Light.woff deleted file mode 100644 index 7bdd5d9ff..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Light.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Light.woff2 b/site/themes/template/static/fonts/Metropolis-Light.woff2 deleted file mode 100644 index 20be7d16b..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Light.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-LightItalic.eot b/site/themes/template/static/fonts/Metropolis-LightItalic.eot deleted file mode 100644 index ab38319f3..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-LightItalic.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-LightItalic.woff b/site/themes/template/static/fonts/Metropolis-LightItalic.woff deleted file mode 100644 index 9dbe57082..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-LightItalic.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-LightItalic.woff2 b/site/themes/template/static/fonts/Metropolis-LightItalic.woff2 deleted file mode 100644 index b3f93365b..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-LightItalic.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Medium.eot b/site/themes/template/static/fonts/Metropolis-Medium.eot deleted file mode 100644 index 9cd399d29..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Medium.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Medium.woff b/site/themes/template/static/fonts/Metropolis-Medium.woff deleted file mode 100644 index 90cb752a5..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Medium.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Medium.woff2 b/site/themes/template/static/fonts/Metropolis-Medium.woff2 deleted file mode 100644 index 27e44d78f..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Medium.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-MediumItalic.eot b/site/themes/template/static/fonts/Metropolis-MediumItalic.eot deleted file mode 100644 index b1cc6b03c..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-MediumItalic.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-MediumItalic.woff b/site/themes/template/static/fonts/Metropolis-MediumItalic.woff deleted file mode 100644 index 34335d647..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-MediumItalic.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-MediumItalic.woff2 b/site/themes/template/static/fonts/Metropolis-MediumItalic.woff2 deleted file mode 100644 index 4f2c65dab..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-MediumItalic.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Regular.eot b/site/themes/template/static/fonts/Metropolis-Regular.eot deleted file mode 100644 index bc0423973..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Regular.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Regular.woff b/site/themes/template/static/fonts/Metropolis-Regular.woff deleted file mode 100644 index 312202cf1..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Regular.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-Regular.woff2 b/site/themes/template/static/fonts/Metropolis-Regular.woff2 deleted file mode 100644 index 489413a67..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-Regular.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-RegularItalic.eot b/site/themes/template/static/fonts/Metropolis-RegularItalic.eot deleted file mode 100644 index 624252379..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-RegularItalic.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-RegularItalic.woff b/site/themes/template/static/fonts/Metropolis-RegularItalic.woff deleted file mode 100644 index 63846f94e..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-RegularItalic.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-RegularItalic.woff2 b/site/themes/template/static/fonts/Metropolis-RegularItalic.woff2 deleted file mode 100644 index 062cf169f..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-RegularItalic.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-SemiBold.eot b/site/themes/template/static/fonts/Metropolis-SemiBold.eot deleted file mode 100644 index 56ec45a95..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-SemiBold.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-SemiBold.woff b/site/themes/template/static/fonts/Metropolis-SemiBold.woff deleted file mode 100644 index c41071185..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-SemiBold.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-SemiBold.woff2 b/site/themes/template/static/fonts/Metropolis-SemiBold.woff2 deleted file mode 100644 index a2f41d6d1..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-SemiBold.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-SemiBoldItalic.eot b/site/themes/template/static/fonts/Metropolis-SemiBoldItalic.eot deleted file mode 100644 index 3d9e09350..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-SemiBoldItalic.eot and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-SemiBoldItalic.woff b/site/themes/template/static/fonts/Metropolis-SemiBoldItalic.woff deleted file mode 100644 index 522f97da2..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-SemiBoldItalic.woff and /dev/null differ diff --git a/site/themes/template/static/fonts/Metropolis-SemiBoldItalic.woff2 b/site/themes/template/static/fonts/Metropolis-SemiBoldItalic.woff2 deleted file mode 100644 index 8d6010864..000000000 Binary files a/site/themes/template/static/fonts/Metropolis-SemiBoldItalic.woff2 and /dev/null differ diff --git a/site/themes/template/static/fonts/Open Font License.md b/site/themes/template/static/fonts/Open Font License.md deleted file mode 100644 index d12f2ae04..000000000 --- a/site/themes/template/static/fonts/Open Font License.md +++ /dev/null @@ -1,78 +0,0 @@ - Copyright (c) 2015, Chris Simpson , with Reserved Font Name: "Metropolis". - - This Font Software is licensed under the SIL Open Font License, Version 1.1. - This license is copied below, and is also available with a FAQ at: - http://scripts.sil.org/OFL - - Version 2.0 - 18 March 2012 - -# SIL Open Font License - -## Preamble - -The goals of the Open Font License (OFL) are to stimulate worldwide development of collaborative font projects, to -support the font creation efforts of academic and linguistic communities, and to provide a free and open framework in -which fonts may be shared and improved in partnership with others. - -The OFL allows the licensed fonts to be used, studied, modified and redistributed freely as long as they are not sold by -themselves. The fonts, including any derivative works, can be bundled, embedded, redistributed and/or sold with any -software provided that any reserved names are not used by derivative works. The fonts and derivatives, however, cannot -be released under any other type of license. The requirement for fonts to remain under this license does not apply to -any document created using the fonts or their derivatives. - -## Definitions - -`"Font Software"` refers to the set of files released by the Copyright Holder(s) under this license and clearly marked -as such. This may include source files, build scripts and documentation. - -`"Reserved Font Name"` refers to any names specified as such after the copyright statement(s). - -`"Original Version"` refers to the collection of Font Software components as distributed by the Copyright Holder(s). - -`"Modified Version"` refers to any derivative made by adding to, deleting, or substituting -- in part or in whole -- any -of the components of the Original Version, by changing formats or by porting the Font Software to a new environment. - -`"Author"` refers to any designer, engineer, programmer, technical writer or other person who contributed to the Font -Software. - -## Permission & Conditions - -Permission is hereby granted, free of charge, to any person obtaining a copy of the Font Software, to use, study, copy, -merge, embed, modify, redistribute, and sell modified and unmodified copies of the Font Software, subject to the -following conditions: - -1. Neither the Font Software nor any of its individual components, in Original or Modified Versions, may be sold by - itself. - -2. Original or Modified Versions of the Font Software may be bundled, redistributed and/or sold with any software, - provided that each copy contains the above copyright notice and this license. These can be included either as - stand-alone text files, human-readable headers or in the appropriate machine-readable metadata fields within text or - binary files as long as those fields can be easily viewed by the user. - -3. No Modified Version of the Font Software may use the Reserved Font Name(s) unless explicit written permission is - granted by the corresponding Copyright Holder. This restriction only applies to the primary font name as presented to - the users. - -4. The name(s) of the Copyright Holder(s) or the Author(s) of the Font Software shall not be used to promote, endorse or - advertise any Modified Version, except to acknowledge the contribution(s) of the Copyright Holder(s) and the - Author(s) or with their explicit written permission. - -5. The Font Software, modified or unmodified, in part or in whole, must be distributed entirely under this license, and - must not be distributed under any other license. The requirement for fonts to remain under this license does not - apply to any document created using the Font Software. - -## Termination - -This license becomes null and void if any of the above conditions are not met. - - DISCLAIMER - - THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT - OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE - COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL - DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM - OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/site/themes/template/static/fonts/README.md b/site/themes/template/static/fonts/README.md deleted file mode 100644 index b08f9461f..000000000 --- a/site/themes/template/static/fonts/README.md +++ /dev/null @@ -1,27 +0,0 @@ -![Metropolis](https://github.com/chrismsimpson/Metropolis/blob/master/Images/metropolis-1.png) - -# The Metropolis Typeface - -## The Vision - -To create a modern, geometric typeface. Open sourced, and openly available. Influenced by other popular geometric, -minimalist sans-serif typefaces of the new millenium. Designed for optimal readability at small point sizes while -beautiful at large point sizes. - -## December 2017 update - -Currently working on greatly improving spacing and kerning of the base typeface. Once this is done, work on other -variations (e.g. rounded or slab) can begin in earnest. - -## The License - -Licensed under Open Font License (OFL). Available to anyone and everyone. Contributions welcome. - -## Contact - -Contact me via chris.m.simpson@icloud.com or http://twitter.com/ChrisMSimpson for any questions, requests or -improvements (or just submit a pull request). - -## Support - -You can now support work on Metropolis via Patreon at https://www.patreon.com/metropolis. diff --git a/site/themes/template/static/img/Carto-install-yaml-v2.gif b/site/themes/template/static/img/Carto-install-yaml-v2.gif deleted file mode 100644 index 0798d0127..000000000 Binary files a/site/themes/template/static/img/Carto-install-yaml-v2.gif and /dev/null differ diff --git a/site/themes/template/static/img/administration.svg b/site/themes/template/static/img/administration.svg deleted file mode 100644 index 26dad4d7c..000000000 --- a/site/themes/template/static/img/administration.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - icon - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/arrow.svg b/site/themes/template/static/img/arrow.svg deleted file mode 100644 index 40e0444fe..000000000 --- a/site/themes/template/static/img/arrow.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - Combined Shape - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/authentication.svg b/site/themes/template/static/img/authentication.svg deleted file mode 100644 index 7a7442ed5..000000000 --- a/site/themes/template/static/img/authentication.svg +++ /dev/null @@ -1,36 +0,0 @@ - - - iocn - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/blog-placeholder.png b/site/themes/template/static/img/blog-placeholder.png deleted file mode 100644 index beae62c19..000000000 Binary files a/site/themes/template/static/img/blog-placeholder.png and /dev/null differ diff --git a/site/themes/template/static/img/calendar.svg b/site/themes/template/static/img/calendar.svg deleted file mode 100644 index 2416fe3f6..000000000 --- a/site/themes/template/static/img/calendar.svg +++ /dev/null @@ -1,34 +0,0 @@ - - - icon - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/cartographer-logo-favicon.svg b/site/themes/template/static/img/cartographer-logo-favicon.svg deleted file mode 100644 index c08ec9f6b..000000000 --- a/site/themes/template/static/img/cartographer-logo-favicon.svg +++ /dev/null @@ -1,76 +0,0 @@ -Cartographer Open Source Identity - - - - - - - open source identity - open source identity|cartographer - open source identity|Pinniped - open source identity|1083952 - - - - - open source identity - cartographer - 1083952 - - - - - Cartographer Open Source Identity - - - 2021-09-27T17:57:45-07:00 - xmp.iid:61afd939-8cdf-40b4-929b-32930351d9c5 - xmp.did:c26870f0-7a5e-4b4d-a41f-30bdada1d611 - xmp.did:c26870f0-7a5e-4b4d-a41f-30bdada1d611 - - - - - saved - xmp.iid:c26870f0-7a5e-4b4d-a41f-30bdada1d611 - 2021-09-27T17:18:06-07:00 - Adobe Bridge 2021 (Macintosh) - /metadata - - - - - saved - xmp.iid:61afd939-8cdf-40b4-929b-32930351d9c5 - 2021-09-27T17:57:45-07:00 - Adobe Bridge 2021 (Macintosh) - /metadata - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/cartographer-logo.png b/site/themes/template/static/img/cartographer-logo.png deleted file mode 100644 index b7266d669..000000000 Binary files a/site/themes/template/static/img/cartographer-logo.png and /dev/null differ diff --git a/site/themes/template/static/img/cartographer-logo.svg b/site/themes/template/static/img/cartographer-logo.svg deleted file mode 100644 index c022bb5dc..000000000 --- a/site/themes/template/static/img/cartographer-logo.svg +++ /dev/null @@ -1,72 +0,0 @@ -Cartographer Open Source Identity - - - - - - - open source identity - open source identity|cartographer - open source identity|Pinniped - open source identity|1083952 - - - - - open source identity - cartographer - 1083952 - - - - - Cartographer Open Source Identity - - - 2021-09-27T17:57:45-07:00 - xmp.iid:61afd939-8cdf-40b4-929b-32930351d9c5 - xmp.did:c26870f0-7a5e-4b4d-a41f-30bdada1d611 - xmp.did:c26870f0-7a5e-4b4d-a41f-30bdada1d611 - - - - - saved - xmp.iid:c26870f0-7a5e-4b4d-a41f-30bdada1d611 - 2021-09-27T17:18:06-07:00 - Adobe Bridge 2021 (Macintosh) - /metadata - - - - - saved - xmp.iid:61afd939-8cdf-40b4-929b-32930351d9c5 - 2021-09-27T17:57:45-07:00 - Adobe Bridge 2021 (Macintosh) - /metadata - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/close.svg b/site/themes/template/static/img/close.svg deleted file mode 100644 index 290e92014..000000000 --- a/site/themes/template/static/img/close.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - icon - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/cloud.svg b/site/themes/template/static/img/cloud.svg deleted file mode 100644 index 1f20797e1..000000000 --- a/site/themes/template/static/img/cloud.svg +++ /dev/null @@ -1,48 +0,0 @@ - - - Group 26 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/docs-placeholder.png b/site/themes/template/static/img/docs-placeholder.png deleted file mode 100644 index 469d1596d..000000000 Binary files a/site/themes/template/static/img/docs-placeholder.png and /dev/null differ diff --git a/site/themes/template/static/img/down-arrow.svg b/site/themes/template/static/img/down-arrow.svg deleted file mode 100644 index c32d093a9..000000000 --- a/site/themes/template/static/img/down-arrow.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - Shape Copy 4 - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/favicon.png b/site/themes/template/static/img/favicon.png deleted file mode 100644 index dc367db5b..000000000 Binary files a/site/themes/template/static/img/favicon.png and /dev/null differ diff --git a/site/themes/template/static/img/frictionless.svg b/site/themes/template/static/img/frictionless.svg deleted file mode 100644 index 4adc6ae99..000000000 --- a/site/themes/template/static/img/frictionless.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - icon - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/github-blue.svg b/site/themes/template/static/img/github-blue.svg deleted file mode 100644 index 535c13cae..000000000 --- a/site/themes/template/static/img/github-blue.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - github icon - - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/github-image.svg b/site/themes/template/static/img/github-image.svg deleted file mode 100644 index 45b511026..000000000 --- a/site/themes/template/static/img/github-image.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - Bitmap - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/github.svg b/site/themes/template/static/img/github.svg deleted file mode 100644 index 17704a43a..000000000 --- a/site/themes/template/static/img/github.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - Clip 2 - - - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/google-groups.png b/site/themes/template/static/img/google-groups.png deleted file mode 100644 index ce818de15..000000000 Binary files a/site/themes/template/static/img/google-groups.png and /dev/null differ diff --git a/site/themes/template/static/img/hamburger.svg b/site/themes/template/static/img/hamburger.svg deleted file mode 100644 index 92824a783..000000000 --- a/site/themes/template/static/img/hamburger.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - icon - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/left-arrow.svg b/site/themes/template/static/img/left-arrow.svg deleted file mode 100644 index 4b0599fea..000000000 --- a/site/themes/template/static/img/left-arrow.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - arrow copy - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/ownership-flow.png b/site/themes/template/static/img/ownership-flow.png deleted file mode 100644 index f74cb3cfa..000000000 Binary files a/site/themes/template/static/img/ownership-flow.png and /dev/null differ diff --git a/site/themes/template/static/img/passing.svg b/site/themes/template/static/img/passing.svg deleted file mode 100644 index 18e93a659..000000000 --- a/site/themes/template/static/img/passing.svg +++ /dev/null @@ -1 +0,0 @@ -openssf best practices: passingopenssf best practicespassing \ No newline at end of file diff --git a/site/themes/template/static/img/posts/announcing-carto/cover-image.png b/site/themes/template/static/img/posts/announcing-carto/cover-image.png deleted file mode 100644 index 2dcc06f4e..000000000 Binary files a/site/themes/template/static/img/posts/announcing-carto/cover-image.png and /dev/null differ diff --git a/site/themes/template/static/img/posts/announcing-carto/ownership-flow.png b/site/themes/template/static/img/posts/announcing-carto/ownership-flow.png deleted file mode 100644 index f74cb3cfa..000000000 Binary files a/site/themes/template/static/img/posts/announcing-carto/ownership-flow.png and /dev/null differ diff --git a/site/themes/template/static/img/posts/announcing-carto/path-to-prod.png b/site/themes/template/static/img/posts/announcing-carto/path-to-prod.png deleted file mode 100644 index 8e399cbc4..000000000 Binary files a/site/themes/template/static/img/posts/announcing-carto/path-to-prod.png and /dev/null differ diff --git a/site/themes/template/static/img/posts/benchmarking-cartographer/cover-image.png b/site/themes/template/static/img/posts/benchmarking-cartographer/cover-image.png deleted file mode 100644 index 478f85ed3..000000000 Binary files a/site/themes/template/static/img/posts/benchmarking-cartographer/cover-image.png and /dev/null differ diff --git a/site/themes/template/static/img/posts/benchmarking-cartographer/one-runnable-per-run-results.png b/site/themes/template/static/img/posts/benchmarking-cartographer/one-runnable-per-run-results.png deleted file mode 100644 index 9766a37c6..000000000 Binary files a/site/themes/template/static/img/posts/benchmarking-cartographer/one-runnable-per-run-results.png and /dev/null differ diff --git a/site/themes/template/static/img/posts/benchmarking-cartographer/runnable-runs-results.png b/site/themes/template/static/img/posts/benchmarking-cartographer/runnable-runs-results.png deleted file mode 100644 index 8c31f5bce..000000000 Binary files a/site/themes/template/static/img/posts/benchmarking-cartographer/runnable-runs-results.png and /dev/null differ diff --git a/site/themes/template/static/img/posts/benchmarking-cartographer/three-runnable-per-run-results.png b/site/themes/template/static/img/posts/benchmarking-cartographer/three-runnable-per-run-results.png deleted file mode 100644 index cba673277..000000000 Binary files a/site/themes/template/static/img/posts/benchmarking-cartographer/three-runnable-per-run-results.png and /dev/null differ diff --git a/site/themes/template/static/img/posts/contributor-of-the-month/Contributor-of-the-month-v3.png b/site/themes/template/static/img/posts/contributor-of-the-month/Contributor-of-the-month-v3.png deleted file mode 100644 index bac6a505c..000000000 Binary files a/site/themes/template/static/img/posts/contributor-of-the-month/Contributor-of-the-month-v3.png and /dev/null differ diff --git a/site/themes/template/static/img/posts/live-editor/cover-image.png b/site/themes/template/static/img/posts/live-editor/cover-image.png deleted file mode 100644 index 2c8bbb9a8..000000000 Binary files a/site/themes/template/static/img/posts/live-editor/cover-image.png and /dev/null differ diff --git a/site/themes/template/static/img/right-arrow.svg b/site/themes/template/static/img/right-arrow.svg deleted file mode 100644 index 72f77e72a..000000000 --- a/site/themes/template/static/img/right-arrow.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - arrow copy - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/seamless.svg b/site/themes/template/static/img/seamless.svg deleted file mode 100644 index 0c158ddf7..000000000 --- a/site/themes/template/static/img/seamless.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - iocn - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/search-icon.svg b/site/themes/template/static/img/search-icon.svg deleted file mode 100644 index 273b61def..000000000 --- a/site/themes/template/static/img/search-icon.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - Fill 1 - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/security.svg b/site/themes/template/static/img/security.svg deleted file mode 100644 index b41bf3522..000000000 --- a/site/themes/template/static/img/security.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - icon - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/simple.svg b/site/themes/template/static/img/simple.svg deleted file mode 100644 index 050633cb2..000000000 --- a/site/themes/template/static/img/simple.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - icon - - - - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/slack.png b/site/themes/template/static/img/slack.png deleted file mode 100644 index f7f731f21..000000000 Binary files a/site/themes/template/static/img/slack.png and /dev/null differ diff --git a/site/themes/template/static/img/slack.svg b/site/themes/template/static/img/slack.svg deleted file mode 100644 index cb5eb7850..000000000 --- a/site/themes/template/static/img/slack.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - Bitmap - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/team-placeholder.png b/site/themes/template/static/img/team-placeholder.png deleted file mode 100644 index 69261bca7..000000000 Binary files a/site/themes/template/static/img/team-placeholder.png and /dev/null differ diff --git a/site/themes/template/static/img/twitter.png b/site/themes/template/static/img/twitter.png deleted file mode 100644 index 0848b4e3d..000000000 Binary files a/site/themes/template/static/img/twitter.png and /dev/null differ diff --git a/site/themes/template/static/img/twitter.svg b/site/themes/template/static/img/twitter.svg deleted file mode 100644 index adce49c91..000000000 --- a/site/themes/template/static/img/twitter.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - Group - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/img/vmware-logo.svg b/site/themes/template/static/img/vmware-logo.svg deleted file mode 100644 index 6d9eefe55..000000000 --- a/site/themes/template/static/img/vmware-logo.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - logo - - - - - - - - - \ No newline at end of file diff --git a/site/themes/template/static/js/main.js b/site/themes/template/static/js/main.js deleted file mode 100644 index 0aa89a7c2..000000000 --- a/site/themes/template/static/js/main.js +++ /dev/null @@ -1,22 +0,0 @@ -"use strict"; - -function mobileNavToggle() { - var menu = document.getElementById('mobile-menu').parentElement; - menu.classList.toggle('mobile-menu-visible'); -} - -function docsVersionToggle() { - var menu = document.getElementById('dropdown-menu'); - menu.classList.toggle('dropdown-menu-visible'); -} - -window.onclick = function(event) { - var - target = event.target, - menu = document.getElementById('dropdown-menu') - ; - - if(!target.classList.contains('dropdown-toggle')) { - menu.classList.remove('dropdown-menu-visible'); - } -} \ No newline at end of file diff --git a/site/themes/template/static/live-editor/assets/abap.bb0b6326.js b/site/themes/template/static/live-editor/assets/abap.bb0b6326.js deleted file mode 100644 index 1a53ef6ca..000000000 --- a/site/themes/template/static/live-editor/assets/abap.bb0b6326.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"*"},brackets:[["[","]"],["(",")"]]},t={defaultToken:"invalid",ignoreCase:!0,tokenPostfix:".abap",keywords:["abap-source","abbreviated","abstract","accept","accepting","according","activation","actual","add","add-corresponding","adjacent","after","alias","aliases","align","all","allocate","alpha","analysis","analyzer","and","append","appendage","appending","application","archive","area","arithmetic","as","ascending","aspect","assert","assign","assigned","assigning","association","asynchronous","at","attributes","authority","authority-check","avg","back","background","backup","backward","badi","base","before","begin","between","big","binary","bintohex","bit","black","blank","blanks","blob","block","blocks","blue","bound","boundaries","bounds","boxed","break-point","buffer","by","bypassing","byte","byte-order","call","calling","case","cast","casting","catch","center","centered","chain","chain-input","chain-request","change","changing","channels","character","char-to-hex","check","checkbox","ci_","circular","class","class-coding","class-data","class-events","class-methods","class-pool","cleanup","clear","client","clob","clock","close","coalesce","code","coding","col_background","col_group","col_heading","col_key","col_negative","col_normal","col_positive","col_total","collect","color","column","columns","comment","comments","commit","common","communication","comparing","component","components","compression","compute","concat","concat_with_space","concatenate","cond","condense","condition","connect","connection","constants","context","contexts","continue","control","controls","conv","conversion","convert","copies","copy","corresponding","country","cover","cpi","create","creating","critical","currency","currency_conversion","current","cursor","cursor-selection","customer","customer-function","dangerous","data","database","datainfo","dataset","date","dats_add_days","dats_add_months","dats_days_between","dats_is_valid","daylight","dd/mm/yy","dd/mm/yyyy","ddmmyy","deallocate","decimal_shift","decimals","declarations","deep","default","deferred","define","defining","definition","delete","deleting","demand","department","descending","describe","destination","detail","dialog","directory","disconnect","display","display-mode","distinct","divide","divide-corresponding","division","do","dummy","duplicate","duplicates","duration","during","dynamic","dynpro","edit","editor-call","else","elseif","empty","enabled","enabling","encoding","end","endat","endcase","endcatch","endchain","endclass","enddo","endenhancement","end-enhancement-section","endexec","endform","endfunction","endian","endif","ending","endinterface","end-lines","endloop","endmethod","endmodule","end-of-definition","end-of-editing","end-of-file","end-of-page","end-of-selection","endon","endprovide","endselect","end-test-injection","end-test-seam","endtry","endwhile","endwith","engineering","enhancement","enhancement-point","enhancements","enhancement-section","entries","entry","enum","environment","equiv","errormessage","errors","escaping","event","events","exact","except","exception","exceptions","exception-table","exclude","excluding","exec","execute","exists","exit","exit-command","expand","expanding","expiration","explicit","exponent","export","exporting","extend","extended","extension","extract","fail","fetch","field","field-groups","fields","field-symbol","field-symbols","file","filter","filters","filter-table","final","find","first","first-line","fixed-point","fkeq","fkge","flush","font","for","form","format","forward","found","frame","frames","free","friends","from","function","functionality","function-pool","further","gaps","generate","get","giving","gkeq","gkge","global","grant","green","group","groups","handle","handler","harmless","hashed","having","hdb","header","headers","heading","head-lines","help-id","help-request","hextobin","hide","high","hint","hold","hotspot","icon","id","identification","identifier","ids","if","ignore","ignoring","immediately","implementation","implementations","implemented","implicit","import","importing","in","inactive","incl","include","includes","including","increment","index","index-line","infotypes","inheriting","init","initial","initialization","inner","inout","input","insert","instance","instances","instr","intensified","interface","interface-pool","interfaces","internal","intervals","into","inverse","inverted-date","is","iso","job","join","keep","keeping","kernel","key","keys","keywords","kind","language","last","late","layout","leading","leave","left","left-justified","leftplus","leftspace","legacy","length","let","level","levels","like","line","lines","line-count","linefeed","line-selection","line-size","list","listbox","list-processing","little","llang","load","load-of-program","lob","local","locale","locator","logfile","logical","log-point","long","loop","low","lower","lpad","lpi","ltrim","mail","main","major-id","mapping","margin","mark","mask","match","matchcode","max","maximum","medium","members","memory","mesh","message","message-id","messages","messaging","method","methods","min","minimum","minor-id","mm/dd/yy","mm/dd/yyyy","mmddyy","mode","modif","modifier","modify","module","move","move-corresponding","multiply","multiply-corresponding","name","nametab","native","nested","nesting","new","new-line","new-page","new-section","next","no","no-display","no-extension","no-gap","no-gaps","no-grouping","no-heading","no-scrolling","no-sign","no-title","no-topofpage","no-zero","node","nodes","non-unicode","non-unique","not","null","number","object","objects","obligatory","occurrence","occurrences","occurs","of","off","offset","ole","on","only","open","option","optional","options","or","order","other","others","out","outer","output","output-length","overflow","overlay","pack","package","pad","padding","page","pages","parameter","parameters","parameter-table","part","partially","pattern","percentage","perform","performing","person","pf1","pf10","pf11","pf12","pf13","pf14","pf15","pf2","pf3","pf4","pf5","pf6","pf7","pf8","pf9","pf-status","pink","places","pool","pos_high","pos_low","position","pragmas","precompiled","preferred","preserving","primary","print","print-control","priority","private","procedure","process","program","property","protected","provide","public","push","pushbutton","put","queue-only","quickinfo","radiobutton","raise","raising","range","ranges","read","reader","read-only","receive","received","receiver","receiving","red","redefinition","reduce","reduced","ref","reference","refresh","regex","reject","remote","renaming","replace","replacement","replacing","report","request","requested","reserve","reset","resolution","respecting","responsible","result","results","resumable","resume","retry","return","returncode","returning","returns","right","right-justified","rightplus","rightspace","risk","rmc_communication_failure","rmc_invalid_status","rmc_system_failure","role","rollback","rows","rpad","rtrim","run","sap","sap-spool","saving","scale_preserving","scale_preserving_scientific","scan","scientific","scientific_with_leading_zero","scroll","scroll-boundary","scrolling","search","secondary","seconds","section","select","selection","selections","selection-screen","selection-set","selection-sets","selection-table","select-options","send","separate","separated","set","shared","shift","short","shortdump-id","sign_as_postfix","single","size","skip","skipping","smart","some","sort","sortable","sorted","source","specified","split","spool","spots","sql","sqlscript","stable","stamp","standard","starting","start-of-editing","start-of-selection","state","statement","statements","static","statics","statusinfo","step-loop","stop","structure","structures","style","subkey","submatches","submit","subroutine","subscreen","subtract","subtract-corresponding","suffix","sum","summary","summing","supplied","supply","suppress","switch","switchstates","symbol","syncpoints","syntax","syntax-check","syntax-trace","system-call","system-exceptions","system-exit","tab","tabbed","table","tables","tableview","tabstrip","target","task","tasks","test","testing","test-injection","test-seam","text","textpool","then","throw","time","times","timestamp","timezone","tims_is_valid","title","titlebar","title-lines","to","tokenization","tokens","top-lines","top-of-page","trace-file","trace-table","trailing","transaction","transfer","transformation","translate","transporting","trmac","truncate","truncation","try","tstmp_add_seconds","tstmp_current_utctimestamp","tstmp_is_valid","tstmp_seconds_between","type","type-pool","type-pools","types","uline","unassign","under","unicode","union","unique","unit_conversion","unix","unpack","until","unwind","up","update","upper","user","user-command","using","utf-8","valid","value","value-request","values","vary","varying","verification-message","version","via","view","visible","wait","warning","when","whenever","where","while","width","window","windows","with","with-heading","without","with-title","word","work","write","writer","xml","xsd","yellow","yes","yymmdd","zero","zone","abap_system_timezone","abap_user_timezone","access","action","adabas","adjust_numbers","allow_precision_loss","allowed","amdp","applicationuser","as_geo_json","as400","associations","balance","behavior","breakup","bulk","cds","cds_client","check_before_save","child","clients","corr","corr_spearman","cross","cycles","datn_add_days","datn_add_months","datn_days_between","dats_from_datn","dats_tims_to_tstmp","dats_to_datn","db2","db6","ddl","dense_rank","depth","deterministic","discarding","entities","entity","error","failed","finalize","first_value","fltp_to_dec","following","fractional","full","graph","grouping","hierarchy","hierarchy_ancestors","hierarchy_ancestors_aggregate","hierarchy_descendants","hierarchy_descendants_aggregate","hierarchy_siblings","incremental","indicators","lag","last_value","lead","leaves","like_regexpr","link","locale_sap","lock","locks","many","mapped","matched","measures","median","mssqlnt","multiple","nodetype","ntile","nulls","occurrences_regexpr","one","operations","oracle","orphans","over","parent","parents","partition","pcre","period","pfcg_mapping","preceding","privileged","product","projection","rank","redirected","replace_regexpr","reported","response","responses","root","row","row_number","sap_system_date","save","schema","session","sets","shortdump","siblings","spantree","start","stddev","string_agg","subtotal","sybase","tims_from_timn","tims_to_timn","to_blob","to_clob","total","trace-entry","tstmp_to_dats","tstmp_to_dst","tstmp_to_tims","tstmpl_from_utcl","tstmpl_to_utcl","unbounded","utcl_add_seconds","utcl_current","utcl_seconds_between","uuid","var","verbatim"],builtinFunctions:["abs","acos","asin","atan","bit-set","boolc","boolx","ceil","char_off","charlen","cmax","cmin","concat_lines_of","contains","contains_any_not_of","contains_any_of","cos","cosh","count","count_any_not_of","count_any_of","dbmaxlen","distance","escape","exp","find_any_not_of","find_any_of","find_end","floor","frac","from_mixed","ipow","line_exists","line_index","log","log10","matches","nmax","nmin","numofchar","repeat","rescale","reverse","round","segment","shift_left","shift_right","sign","sin","sinh","sqrt","strlen","substring","substring_after","substring_before","substring_from","substring_to","tan","tanh","to_lower","to_mixed","to_upper","trunc","utclong_add","utclong_current","utclong_diff","xsdbool","xstrlen"],typeKeywords:["b","c","d","decfloat16","decfloat34","f","i","int8","n","p","s","string","t","utclong","x","xstring","any","clike","csequence","decfloat","numeric","simple","xsequence","accp","char","clnt","cuky","curr","datn","dats","d16d","d16n","d16r","d34d","d34n","d34r","dec","df16_dec","df16_raw","df34_dec","df34_raw","fltp","geom_ewkb","int1","int2","int4","lang","lchr","lraw","numc","quan","raw","rawstring","sstring","timn","tims","unit","utcl","df16_scl","df34_scl","prec","varc","abap_bool","abap_false","abap_true","abap_undefined","me","screen","space","super","sy","syst","table_line","*sys*"],builtinMethods:["class_constructor","constructor"],derivedTypes:["%CID","%CID_REF","%CONTROL","%DATA","%ELEMENT","%FAIL","%KEY","%MSG","%PARAM","%PID","%PID_ASSOC","%PID_PARENT","%_HINTS"],cdsLanguage:["@AbapAnnotation","@AbapCatalog","@AccessControl","@API","@ClientDependent","@ClientHandling","@CompatibilityContract","@DataAging","@EndUserText","@Environment","@LanguageDependency","@MappingRole","@Metadata","@MetadataExtension","@ObjectModel","@Scope","@Semantics","$EXTENSION","$SELF"],selectors:["->","->*","=>","~","~*"],operators:[" +"," -","/","*","**","div","mod","=","#","@","+=","-=","*=","/=","**=","&&=","?=","&","&&","bit-and","bit-not","bit-or","bit-xor","m","o","z","<"," >","<=",">=","<>","><","=<","=>","bt","byte-ca","byte-cn","byte-co","byte-cs","byte-na","byte-ns","ca","cn","co","cp","cs","eq","ge","gt","le","lt","na","nb","ne","np","ns","*/","*:","--","/*","//"],symbols:/[=>))*/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@cdsLanguage":"annotation","@derivedTypes":"type","@builtinFunctions":"type","@builtinMethods":"type","@operators":"key","@default":"identifier"}}],[/<[\w]+>/,"identifier"],[/##[\w|_]+/,"comment"],{include:"@whitespace"},[/[:,.]/,"delimiter"],[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@selectors":"tag","@operators":"key","@default":""}}],[/'/,{token:"string",bracket:"@open",next:"@stringquote"}],[/`/,{token:"string",bracket:"@open",next:"@stringping"}],[/\|/,{token:"string",bracket:"@open",next:"@stringtemplate"}],[/\d+/,"number"]],stringtemplate:[[/[^\\\|]+/,"string"],[/\\\|/,"string"],[/\|/,{token:"string",bracket:"@close",next:"@pop"}]],stringping:[[/[^\\`]+/,"string"],[/`/,{token:"string",bracket:"@close",next:"@pop"}]],stringquote:[[/[^\\']+/,"string"],[/'/,{token:"string",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/^\*.*$/,"comment"],[/\".*$/,"comment"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/apex.1cf1d441.js b/site/themes/template/static/live-editor/assets/apex.1cf1d441.js deleted file mode 100644 index ea70a6bff..000000000 --- a/site/themes/template/static/live-editor/assets/apex.1cf1d441.js +++ /dev/null @@ -1 +0,0 @@ -var n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},s=["abstract","activate","and","any","array","as","asc","assert","autonomous","begin","bigdecimal","blob","boolean","break","bulk","by","case","cast","catch","char","class","collect","commit","const","continue","convertcurrency","decimal","default","delete","desc","do","double","else","end","enum","exception","exit","export","extends","false","final","finally","float","for","from","future","get","global","goto","group","having","hint","if","implements","import","in","inner","insert","instanceof","int","interface","into","join","last_90_days","last_month","last_n_days","last_week","like","limit","list","long","loop","map","merge","native","new","next_90_days","next_month","next_n_days","next_week","not","null","nulls","number","object","of","on","or","outer","override","package","parallel","pragma","private","protected","public","retrieve","return","returning","rollback","savepoint","search","select","set","short","sort","stat","static","strictfp","super","switch","synchronized","system","testmethod","then","this","this_month","this_week","throw","throws","today","tolabel","tomorrow","transaction","transient","trigger","true","try","type","undelete","update","upsert","using","virtual","void","volatile","webservice","when","where","while","yesterday"],o=function(e){return e.charAt(0).toUpperCase()+e.substr(1)},t=[];s.forEach(function(e){t.push(e),t.push(e.toUpperCase()),t.push(o(e))});var i={defaultToken:"",tokenPostfix:".apex",keywords:t,operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@apexdoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],apexdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};export{n as conf,i as language}; diff --git a/site/themes/template/static/live-editor/assets/azcli.41697d95.js b/site/themes/template/static/live-editor/assets/azcli.41697d95.js deleted file mode 100644 index dd4f4987b..000000000 --- a/site/themes/template/static/live-editor/assets/azcli.41697d95.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"#"}},t={defaultToken:"keyword",ignoreCase:!0,tokenPostfix:".azcli",str:/[^#\s]/,tokenizer:{root:[{include:"@comment"},[/\s-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}],[/^-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":{token:"key.identifier",next:"@type"}}}]],type:[{include:"@comment"},[/-+@str*\s*/,{cases:{"@eos":{token:"key.identifier",next:"@popall"},"@default":"key.identifier"}}],[/@str+\s*/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}]],comment:[[/#.*$/,{cases:{"@eos":{token:"comment",next:"@popall"}}}]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/bat.4287dcf5.js b/site/themes/template/static/live-editor/assets/bat.4287dcf5.js deleted file mode 100644 index 0869f4928..000000000 --- a/site/themes/template/static/live-editor/assets/bat.4287dcf5.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"REM"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|REM\\s+)#region"),end:new RegExp("^\\s*(::\\s*|REM\\s+)#endregion")}}},s={defaultToken:"",ignoreCase:!0,tokenPostfix:".bat",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:/call|defined|echo|errorlevel|exist|for|goto|if|pause|set|shift|start|title|not|pushd|popd/,symbols:/[=>"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'},{open:"(*",close:"*)"}]},o={defaultToken:"",tokenPostfix:".cameligo",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["abs","assert","block","Bytes","case","Crypto","Current","else","failwith","false","for","fun","if","in","let","let%entry","let%init","List","list","Map","map","match","match%nat","mod","not","operation","Operation","of","record","Set","set","sender","skip","source","String","then","to","true","type","with"],typeKeywords:["int","unit","string","tz","nat","bool"],operators:["=",">","<","<=",">=","<>",":",":=","and","mod","or","+","-","*","/","@","&","^","%","->","<-","&&","||"],symbols:/[=><:@\^&|+\-*\/\^%]+/,tokenizer:{root:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\$[0-9a-fA-F]{1,16}/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/'/,"string","@string"],[/'[^\\']'/,"string"],[/'/,"string.invalid"],[/\#\d+/,"string"]],comment:[[/[^\(\*]+/,"comment"],[/\*\)/,"comment","@pop"],[/\(\*/,"comment"]],string:[[/[^\\']+/,"string"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,o as language}; diff --git a/site/themes/template/static/live-editor/assets/clojure.ba2aa9d2.js b/site/themes/template/static/live-editor/assets/clojure.ba2aa9d2.js deleted file mode 100644 index 4e57cae02..000000000 --- a/site/themes/template/static/live-editor/assets/clojure.ba2aa9d2.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:";;"},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}],surroundingPairs:[{open:"[",close:"]"},{open:'"',close:'"'},{open:"(",close:")"},{open:"{",close:"}"}]},t={defaultToken:"",ignoreCase:!0,tokenPostfix:".clj",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"}],constants:["true","false","nil"],numbers:/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,characters:/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,escapes:/^\\(?:["'\\bfnrt]|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,qualifiedSymbols:/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/,specialForms:[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],coreSymbols:["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],tokenizer:{root:[{include:"@whitespace"},[/@numbers/,"number"],[/@characters/,"string"],{include:"@string"},[/[()\[\]{}]/,"@brackets"],[/\/#"(?:\.|(?:")|[^"\n])*"\/g/,"regexp"],[/[#'@^`~]/,"meta"],[/@qualifiedSymbols/,{cases:{"^:.+$":"constant","@specialForms":"keyword","@coreSymbols":"keyword","@constants":"constant","@default":"identifier"}}]],whitespace:[[/[\s,]+/,"white"],[/;.*$/,"comment"],[/\(comment\b/,"comment","@comment"]],comment:[[/\(/,"comment","@push"],[/\)/,"comment","@pop"],[/[^()]/,"comment"]],string:[[/"/,"string","@multiLineString"]],multiLineString:[[/"/,"string","@popall"],[/@escapes/,"string.escape"],[/./,"string"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/codicon.ff6b888d.ttf b/site/themes/template/static/live-editor/assets/codicon.ff6b888d.ttf deleted file mode 100644 index 2bca0f7b4..000000000 Binary files a/site/themes/template/static/live-editor/assets/codicon.ff6b888d.ttf and /dev/null differ diff --git a/site/themes/template/static/live-editor/assets/coffee.d5ad7236.js b/site/themes/template/static/live-editor/assets/coffee.d5ad7236.js deleted file mode 100644 index 6b1eeaa4e..000000000 --- a/site/themes/template/static/live-editor/assets/coffee.d5ad7236.js +++ /dev/null @@ -1 +0,0 @@ -var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\$\-\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{blockComment:["###","###"],lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},r={defaultToken:"",ignoreCase:!0,tokenPostfix:".coffee",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],regEx:/\/(?!\/\/)(?:[^\/\\]|\\.)*\/[igm]*/,keywords:["and","or","is","isnt","not","on","yes","@","no","off","true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","if","else","switch","for","while","do","try","catch","finally","class","extends","super","undefined","then","unless","until","loop","of","by","when"],symbols:/[=>"}],keywords:["abstract","amp","array","auto","bool","break","case","catch","char","class","const","constexpr","const_cast","continue","cpu","decltype","default","delegate","delete","do","double","dynamic_cast","each","else","enum","event","explicit","export","extern","false","final","finally","float","for","friend","gcnew","generic","goto","if","in","initonly","inline","int","interface","interior_ptr","internal","literal","long","mutable","namespace","new","noexcept","nullptr","__nullptr","operator","override","partial","pascal","pin_ptr","private","property","protected","public","ref","register","reinterpret_cast","restrict","return","safe_cast","sealed","short","signed","sizeof","static","static_assert","static_cast","struct","switch","template","this","thread_local","throw","tile_static","true","try","typedef","typeid","typename","union","unsigned","using","virtual","void","volatile","wchar_t","where","while","_asm","_based","_cdecl","_declspec","_fastcall","_if_exists","_if_not_exists","_inline","_multiple_inheritance","_pascal","_single_inheritance","_stdcall","_virtual_inheritance","_w64","__abstract","__alignof","__asm","__assume","__based","__box","__builtin_alignof","__cdecl","__clrcall","__declspec","__delegate","__event","__except","__fastcall","__finally","__forceinline","__gc","__hook","__identifier","__if_exists","__if_not_exists","__inline","__int128","__int16","__int32","__int64","__int8","__interface","__leave","__m128","__m128d","__m128i","__m256","__m256d","__m256i","__m64","__multiple_inheritance","__newslot","__nogc","__noop","__nounwind","__novtordisp","__pascal","__pin","__pragma","__property","__ptr32","__ptr64","__raise","__restrict","__resume","__sealed","__single_inheritance","__stdcall","__super","__thiscall","__try","__try_cast","__typeof","__unaligned","__unhook","__uuidof","__value","__virtual_inheritance","__w64","__wchar_t"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*\\$/,"comment","@linecomment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],linecomment:[[/.*[^\\]$/,"comment","@pop"],[/[^]+/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],raw:[[/(.*)(\))(?:([^ ()\\\t"]*))(\")/,{cases:{"$3==$S2":["string.raw","string.raw.end","string.raw.end",{token:"string.raw.end",next:"@pop"}],"@default":["string.raw","string.raw","string.raw","string.raw"]}}],[/.*/,"string.raw"]],annotation:[{include:"@whitespace"},[/using|alignas/,"keyword"],[/[a-zA-Z0-9_]+/,"annotation"],[/[,:]/,"delimiter"],[/[()]/,"@brackets"],[/\]\s*\]/,{token:"annotation",next:"@pop"}]],include:[[/(\s*)(<)([^<>]*)(>)/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]],[/(\s*)(")([^"]*)(")/,["","keyword.directive.include.begin","string.include.identifier",{token:"keyword.directive.include.end",next:"@pop"}]]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/csharp.37f3e26b.js b/site/themes/template/static/live-editor/assets/csharp.37f3e26b.js deleted file mode 100644 index 651aca864..000000000 --- a/site/themes/template/static/live-editor/assets/csharp.37f3e26b.js +++ /dev/null @@ -1 +0,0 @@ -var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},t={defaultToken:"",tokenPostfix:".cs",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],keywords:["extern","alias","using","bool","decimal","sbyte","byte","short","ushort","int","uint","long","ulong","char","float","double","object","dynamic","string","assembly","is","as","ref","out","this","base","new","typeof","void","checked","unchecked","default","delegate","var","const","if","else","switch","case","while","do","for","foreach","in","break","continue","goto","return","throw","try","catch","finally","lock","yield","from","let","where","join","on","equals","into","orderby","ascending","descending","select","group","by","namespace","partial","class","field","event","method","param","public","protected","internal","private","abstract","sealed","static","struct","readonly","volatile","virtual","override","params","get","set","add","remove","operator","true","false","implicit","explicit","interface","enum","null","async","await","fixed","sizeof","stackalloc","unsafe","nameof","when"],namespaceFollows:["namespace","using"],parenFollows:["if","for","while","switch","foreach","using","catch","when"],operators:["=","??","||","&&","|","^","&","==","!=","<=",">=","<<","+","-","*","/","%","!","~","++","--","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=",">>","=>"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?[fFdD]?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01_]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",next:"@string"}],[/\$\@"/,{token:"string.quote",next:"@litinterpstring"}],[/\@"/,{token:"string.quote",next:"@litstring"}],[/\$"/,{token:"string.quote",next:"@interpolatedstring"}],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],qualified:[[/[a-zA-Z_][\w]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}],[/\./,"delimiter"],["","","@pop"]],namespace:[{include:"@whitespace"},[/[A-Z]\w*/,"namespace"],[/[\.=]/,"delimiter"],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]],litinterpstring:[[/[^"{]+/,"string"],[/""/,"string.escape"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.litinterpstring"}],[/"/,{token:"string.quote",next:"@pop"}]],interpolatedstring:[[/[^\\"{]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/{{/,"string.escape"],[/}}/,"string.escape"],[/{/,{token:"string.quote",next:"root.interpolatedstring"}],[/"/,{token:"string.quote",next:"@pop"}]],whitespace:[[/^[ \t\v\f]*#((r)|(load))(?=\s)/,"directive.csx"],[/^[ \t\v\f]*#\w.*$/,"namespace.cpp"],[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/csp.fd6f4e1e.js b/site/themes/template/static/live-editor/assets/csp.fd6f4e1e.js deleted file mode 100644 index dd0bbef25..000000000 --- a/site/themes/template/static/live-editor/assets/csp.fd6f4e1e.js +++ /dev/null @@ -1 +0,0 @@ -var t={brackets:[],autoClosingPairs:[],surroundingPairs:[]},r={keywords:[],typeKeywords:[],tokenPostfix:".csp",operators:[],symbols:/[=>",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@strings"},["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@selectorname"},["[\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.bracket",next:"@selectorbody"}]],selectorbody:[{include:"@comments"},["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],["}",{token:"delimiter.bracket",next:"@pop"}]],selectorname:[["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["(url-prefix)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],["(url)(\\()",["attribute.value",{token:"delimiter.parenthesis",next:"@urldeclaration"}]],{include:"@functioninvocation"},{include:"@numbers"},{include:"@name"},{include:"@strings"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","delimiter"],[",","delimiter"]],rulevalue:[{include:"@comments"},{include:"@strings"},{include:"@term"},["!important","keyword"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],urldeclaration:[{include:"@strings"},[`[^)\r -]+`,"string"],["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[/[^*/]+/,"comment"],[/./,"comment"]],name:[["@identifier","attribute.value"]],numbers:[["-?(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],keyframedeclaration:[["@identifier","attribute.value"],["{",{token:"delimiter.bracket",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.bracket",next:"@selectorbody"}],["}",{token:"delimiter.bracket",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"attribute.value",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"attribute.value",next:"@pop"}]],strings:[['~?"',{token:"string",next:"@stringenddoublequote"}],["~?'",{token:"string",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string",next:"@pop"}],[/[^\\"]+/,"string"],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string",next:"@pop"}],[/[^\\']+/,"string"],[".","string"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/cssMode.549b7ba1.js b/site/themes/template/static/live-editor/assets/cssMode.549b7ba1.js deleted file mode 100644 index aed91c59d..000000000 --- a/site/themes/template/static/live-editor/assets/cssMode.549b7ba1.js +++ /dev/null @@ -1,4 +0,0 @@ -import{K as x,V as Z,T as l,_ as T,U as K}from"./vendor.394d6d4c.js";var Fe=2*60*1e3,je=function(){function n(t){var a=this;this._defaults=t,this._worker=null,this._idleCheckInterval=window.setInterval(function(){return a._checkIfIdle()},30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(function(){return a._stopWorker()})}return n.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},n.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},n.prototype._checkIfIdle=function(){if(!!this._worker){var t=Date.now()-this._lastUsedTime;t>Fe&&this._stopWorker()}},n.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=x.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client},n.prototype.getLanguageServiceWorker=function(){for(var t=this,a=[],r=0;r0&&(s.arguments=i),s}n.create=t;function a(r){var e=r;return u.defined(e)&&u.string(e.title)&&u.string(e.command)}n.is=a})(M||(M={}));var E;(function(n){function t(i,o){return{range:i,newText:o}}n.replace=t;function a(i,o){return{range:{start:i,end:i},newText:o}}n.insert=a;function r(i){return{range:i,newText:""}}n.del=r;function e(i){var o=i;return u.objectLiteral(o)&&u.string(o.newText)&&m.is(o.range)}n.is=e})(E||(E={}));var R;(function(n){function t(r,e,i){var o={label:r};return e!==void 0&&(o.needsConfirmation=e),i!==void 0&&(o.description=i),o}n.create=t;function a(r){var e=r;return e!==void 0&&u.objectLiteral(e)&&u.string(e.label)&&(u.boolean(e.needsConfirmation)||e.needsConfirmation===void 0)&&(u.string(e.description)||e.description===void 0)}n.is=a})(R||(R={}));var _;(function(n){function t(a){var r=a;return typeof r=="string"}n.is=t})(_||(_={}));var A;(function(n){function t(i,o,s){return{range:i,newText:o,annotationId:s}}n.replace=t;function a(i,o,s){return{range:{start:i,end:i},newText:o,annotationId:s}}n.insert=a;function r(i,o){return{range:i,newText:"",annotationId:o}}n.del=r;function e(i){var o=i;return E.is(o)&&(R.is(o.annotationId)||_.is(o.annotationId))}n.is=e})(A||(A={}));var V;(function(n){function t(r,e){return{textDocument:r,edits:e}}n.create=t;function a(r){var e=r;return u.defined(e)&&O.is(e.textDocument)&&Array.isArray(e.edits)}n.is=a})(V||(V={}));var P;(function(n){function t(r,e,i){var o={kind:"create",uri:r};return e!==void 0&&(e.overwrite!==void 0||e.ignoreIfExists!==void 0)&&(o.options=e),i!==void 0&&(o.annotationId=i),o}n.create=t;function a(r){var e=r;return e&&e.kind==="create"&&u.string(e.uri)&&(e.options===void 0||(e.options.overwrite===void 0||u.boolean(e.options.overwrite))&&(e.options.ignoreIfExists===void 0||u.boolean(e.options.ignoreIfExists)))&&(e.annotationId===void 0||_.is(e.annotationId))}n.is=a})(P||(P={}));var L;(function(n){function t(r,e,i,o){var s={kind:"rename",oldUri:r,newUri:e};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}n.create=t;function a(r){var e=r;return e&&e.kind==="rename"&&u.string(e.oldUri)&&u.string(e.newUri)&&(e.options===void 0||(e.options.overwrite===void 0||u.boolean(e.options.overwrite))&&(e.options.ignoreIfExists===void 0||u.boolean(e.options.ignoreIfExists)))&&(e.annotationId===void 0||_.is(e.annotationId))}n.is=a})(L||(L={}));var S;(function(n){function t(r,e,i){var o={kind:"delete",uri:r};return e!==void 0&&(e.recursive!==void 0||e.ignoreIfNotExists!==void 0)&&(o.options=e),i!==void 0&&(o.annotationId=i),o}n.create=t;function a(r){var e=r;return e&&e.kind==="delete"&&u.string(e.uri)&&(e.options===void 0||(e.options.recursive===void 0||u.boolean(e.options.recursive))&&(e.options.ignoreIfNotExists===void 0||u.boolean(e.options.ignoreIfNotExists)))&&(e.annotationId===void 0||_.is(e.annotationId))}n.is=a})(S||(S={}));var q;(function(n){function t(a){var r=a;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(function(e){return u.string(e.kind)?P.is(e)||L.is(e)||S.is(e):V.is(e)}))}n.is=t})(q||(q={}));var H=function(){function n(t,a){this.edits=t,this.changeAnnotations=a}return n.prototype.insert=function(t,a,r){var e,i;if(r===void 0?e=E.insert(t,a):_.is(r)?(i=r,e=A.insert(t,a,r)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(r),e=A.insert(t,a,i)),this.edits.push(e),i!==void 0)return i},n.prototype.replace=function(t,a,r){var e,i;if(r===void 0?e=E.replace(t,a):_.is(r)?(i=r,e=A.replace(t,a,r)):(this.assertChangeAnnotations(this.changeAnnotations),i=this.changeAnnotations.manage(r),e=A.replace(t,a,i)),this.edits.push(e),i!==void 0)return i},n.prototype.delete=function(t,a){var r,e;if(a===void 0?r=E.del(t):_.is(a)?(e=a,r=A.del(t,a)):(this.assertChangeAnnotations(this.changeAnnotations),e=this.changeAnnotations.manage(a),r=A.del(t,e)),this.edits.push(r),e!==void 0)return e},n.prototype.add=function(t){this.edits.push(t)},n.prototype.all=function(){return this.edits},n.prototype.clear=function(){this.edits.splice(0,this.edits.length)},n.prototype.assertChangeAnnotations=function(t){if(t===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},n}(),ue=function(){function n(t){this._annotations=t===void 0?Object.create(null):t,this._counter=0,this._size=0}return n.prototype.all=function(){return this._annotations},Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),n.prototype.manage=function(t,a){var r;if(_.is(t)?r=t:(r=this.nextId(),a=t),this._annotations[r]!==void 0)throw new Error("Id "+r+" is already in use.");if(a===void 0)throw new Error("No annotation provided for id "+r);return this._annotations[r]=a,this._size++,r},n.prototype.nextId=function(){return this._counter++,this._counter.toString()},n}();(function(){function n(t){var a=this;this._textEditChanges=Object.create(null),t!==void 0?(this._workspaceEdit=t,t.documentChanges?(this._changeAnnotations=new ue(t.changeAnnotations),t.changeAnnotations=this._changeAnnotations.all(),t.documentChanges.forEach(function(r){if(V.is(r)){var e=new H(r.edits,a._changeAnnotations);a._textEditChanges[r.textDocument.uri]=e}})):t.changes&&Object.keys(t.changes).forEach(function(r){var e=new H(t.changes[r]);a._textEditChanges[r]=e})):this._workspaceEdit={}}return Object.defineProperty(n.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),n.prototype.getTextEditChange=function(t){if(O.is(t)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var a={uri:t.uri,version:t.version},r=this._textEditChanges[a.uri];if(!r){var e=[],i={textDocument:a,edits:e};this._workspaceEdit.documentChanges.push(i),r=new H(e,this._changeAnnotations),this._textEditChanges[a.uri]=r}return r}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var r=this._textEditChanges[t];if(!r){var e=[];this._workspaceEdit.changes[t]=e,r=new H(e),this._textEditChanges[t]=r}return r}},n.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ue,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},n.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},n.prototype.createFile=function(t,a,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var e;R.is(a)||_.is(a)?e=a:r=a;var i,o;if(e===void 0?i=P.create(t,r):(o=_.is(e)?e:this._changeAnnotations.manage(e),i=P.create(t,r,o)),this._workspaceEdit.documentChanges.push(i),o!==void 0)return o},n.prototype.renameFile=function(t,a,r,e){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var i;R.is(r)||_.is(r)?i=r:e=r;var o,s;if(i===void 0?o=L.create(t,a,e):(s=_.is(i)?i:this._changeAnnotations.manage(i),o=L.create(t,a,e,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},n.prototype.deleteFile=function(t,a,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var e;R.is(a)||_.is(a)?e=a:r=a;var i,o;if(e===void 0?i=S.create(t,r):(o=_.is(e)?e:this._changeAnnotations.manage(e),i=S.create(t,r,o)),this._workspaceEdit.documentChanges.push(i),o!==void 0)return o},n})();var se;(function(n){function t(r){return{uri:r}}n.create=t;function a(r){var e=r;return u.defined(e)&&u.string(e.uri)}n.is=a})(se||(se={}));var ce;(function(n){function t(r,e){return{uri:r,version:e}}n.create=t;function a(r){var e=r;return u.defined(e)&&u.string(e.uri)&&u.integer(e.version)}n.is=a})(ce||(ce={}));var O;(function(n){function t(r,e){return{uri:r,version:e}}n.create=t;function a(r){var e=r;return u.defined(e)&&u.string(e.uri)&&(e.version===null||u.integer(e.version))}n.is=a})(O||(O={}));var de;(function(n){function t(r,e,i,o){return{uri:r,languageId:e,version:i,text:o}}n.create=t;function a(r){var e=r;return u.defined(e)&&u.string(e.uri)&&u.string(e.languageId)&&u.integer(e.version)&&u.string(e.text)}n.is=a})(de||(de={}));var F;(function(n){n.PlainText="plaintext",n.Markdown="markdown"})(F||(F={}));(function(n){function t(a){var r=a;return r===n.PlainText||r===n.Markdown}n.is=t})(F||(F={}));var Q;(function(n){function t(a){var r=a;return u.objectLiteral(a)&&F.is(r.kind)&&u.string(r.value)}n.is=t})(Q||(Q={}));var h;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(h||(h={}));var G;(function(n){n.PlainText=1,n.Snippet=2})(G||(G={}));var fe;(function(n){n.Deprecated=1})(fe||(fe={}));var ge;(function(n){function t(r,e,i){return{newText:r,insert:e,replace:i}}n.create=t;function a(r){var e=r;return e&&u.string(e.newText)&&m.is(e.insert)&&m.is(e.replace)}n.is=a})(ge||(ge={}));var le;(function(n){n.asIs=1,n.adjustIndentation=2})(le||(le={}));var he;(function(n){function t(a){return{label:a}}n.create=t})(he||(he={}));var ve;(function(n){function t(a,r){return{items:a||[],isIncomplete:!!r}}n.create=t})(ve||(ve={}));var z;(function(n){function t(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=t;function a(r){var e=r;return u.string(e)||u.objectLiteral(e)&&u.string(e.language)&&u.string(e.value)}n.is=a})(z||(z={}));var pe;(function(n){function t(a){var r=a;return!!r&&u.objectLiteral(r)&&(Q.is(r.contents)||z.is(r.contents)||u.typedArray(r.contents,z.is))&&(a.range===void 0||m.is(a.range))}n.is=t})(pe||(pe={}));var me;(function(n){function t(a,r){return r?{label:a,documentation:r}:{label:a}}n.create=t})(me||(me={}));var _e;(function(n){function t(a,r){for(var e=[],i=2;i=0;f--){var p=c[f],b=i.offsetAt(p.range.start),d=i.offsetAt(p.range.end);if(d<=g)s=s.substring(0,b)+p.newText+s.substring(d,s.length);else throw new Error("Overlapping edit");g=b}return s}n.applyEdits=r;function e(i,o){if(i.length<=1)return i;var s=i.length/2|0,c=i.slice(0,s),g=i.slice(s);e(c,o),e(g,o);for(var f=0,p=0,b=0;f0&&t.push(a.length),this._lineOffsets=t}return this._lineOffsets},n.prototype.positionAt=function(t){t=Math.max(Math.min(t,this._content.length),0);var a=this.getLineOffsets(),r=0,e=a.length;if(e===0)return k.create(0,t);for(;rt?e=i:r=i+1}var o=r-1;return k.create(o,t-a[o])},n.prototype.offsetAt=function(t){var a=this.getLineOffsets();if(t.line>=a.length)return this._content.length;if(t.line<0)return 0;var r=a[t.line],e=t.line+1"},{open:"'",close:"'"},{open:"(",close:")"},{open:'"',close:'"'},{open:"`",close:"`"}],folding:{markers:{start:/^\s*\s*#?region\b/,end:/^\s*\s*#?endregion\b/}}},n={defaultToken:"invalid",tokenPostfix:".dart",keywords:["abstract","dynamic","implements","show","as","else","import","static","assert","enum","in","super","async","export","interface","switch","await","extends","is","sync","break","external","library","this","case","factory","mixin","throw","catch","false","new","true","class","final","null","try","const","finally","on","typedef","continue","for","operator","var","covariant","Function","part","void","default","get","rethrow","while","deferred","hide","return","with","do","if","set","yield"],typeKeywords:["int","double","String","bool"],operators:["+","-","*","/","~/","%","++","--","==","!=",">","<",">=","<=","=","-=","/=","%=",">>=","^=","+=","*=","~/=","<<=","&=","!=","||","&&","&","|","^","~","<<",">>","!",">>>","??","?",":","|="],symbols:/[=>](?!@symbols)/,"@brackets"],[/!(?=([^=]|$))/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/(@digits)[eE]([\-+]?(@digits))?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,"number.float"],[/0[xX](@hexdigits)n?/,"number.hex"],[/0[oO]?(@octaldigits)n?/,"number.octal"],[/0[bB](@binarydigits)n?/,"number.binary"],[/(@digits)n?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string_double"],[/'/,"string","@string_single"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@jsdoc"],[/\/\*/,"comment","@comment"],[/\/\/\/.*$/,"comment.doc"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],jsdoc:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["regexp.escape.control","regexp.escape.control","regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,["regexp.escape.control",{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["regexp.escape.control","regexp.escape.control"]],[/[()]/,"regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],[/(\/)([gimsuy]*)/,[{token:"regexp",bracket:"@close",next:"@pop"},"keyword.other"]]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,{token:"regexp.escape.control",next:"@pop",bracket:"@close"}]],string_double:[[/[^\\"\$]+/,"string"],[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"],[/\$\w+/,"identifier"]],string_single:[[/[^\\'\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"],[/\$\w+/,"identifier"]]}};export{e as conf,n as language}; diff --git a/site/themes/template/static/live-editor/assets/dockerfile.676f27bb.js b/site/themes/template/static/live-editor/assets/dockerfile.676f27bb.js deleted file mode 100644 index e7e14c3a7..000000000 --- a/site/themes/template/static/live-editor/assets/dockerfile.676f27bb.js +++ /dev/null @@ -1 +0,0 @@ -var e={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o={defaultToken:"",tokenPostfix:".dockerfile",variable:/\${?[\w]+}?/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},[/(ONBUILD)(\s+)/,["keyword",""]],[/(ENV)(\s+)([\w]+)/,["keyword","",{token:"variable",next:"@arguments"}]],[/(FROM|MAINTAINER|RUN|EXPOSE|ENV|ADD|ARG|VOLUME|LABEL|USER|WORKDIR|COPY|CMD|STOPSIGNAL|SHELL|HEALTHCHECK|ENTRYPOINT)/,{token:"keyword",next:"@arguments"}]],arguments:[{include:"@whitespace"},{include:"@strings"},[/(@variable)/,{cases:{"@eos":{token:"variable",next:"@popall"},"@default":"variable"}}],[/\\/,{cases:{"@eos":"","@default":""}}],[/./,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],whitespace:[[/\s+/,{cases:{"@eos":{token:"",next:"@popall"},"@default":""}}]],comment:[[/(^#.*$)/,"comment","@popall"]],strings:[[/\\'$/,"","@popall"],[/\\'/,""],[/'$/,"string","@popall"],[/'/,"string","@stringBody"],[/"$/,"string","@popall"],[/"/,"string","@dblStringBody"]],stringBody:[[/[^\\\$']/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/'$/,"string","@popall"],[/'/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]],dblStringBody:[[/[^\\\$"]/,{cases:{"@eos":{token:"string",next:"@popall"},"@default":"string"}}],[/\\./,"string.escape"],[/"$/,"string","@popall"],[/"/,"string","@pop"],[/(@variable)/,"variable"],[/\\$/,"string"],[/$/,"string","@popall"]]}};export{e as conf,o as language}; diff --git a/site/themes/template/static/live-editor/assets/ecl.b0137948.js b/site/themes/template/static/live-editor/assets/ecl.b0137948.js deleted file mode 100644 index dfee988e0..000000000 --- a/site/themes/template/static/live-editor/assets/ecl.b0137948.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:"'",close:"'"},{open:'"',close:'"'}]},o={defaultToken:"",tokenPostfix:".ecl",ignoreCase:!0,brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],pounds:["append","break","declare","demangle","end","for","getdatatype","if","inmodule","loop","mangle","onwarning","option","set","stored","uniquename"].join("|"),keywords:["__compressed__","after","all","and","any","as","atmost","before","beginc","best","between","case","cluster","compressed","compression","const","counter","csv","default","descend","embed","encoding","encrypt","end","endc","endembed","endmacro","enum","escape","except","exclusive","expire","export","extend","fail","few","fileposition","first","flat","forward","from","full","function","functionmacro","group","grouped","heading","hole","ifblock","import","in","inner","interface","internal","joined","keep","keyed","last","left","limit","linkcounted","literal","little_endian","load","local","locale","lookup","lzw","macro","many","maxcount","maxlength","min skew","module","mofn","multiple","named","namespace","nocase","noroot","noscan","nosort","not","noxpath","of","onfail","only","opt","or","outer","overwrite","packed","partition","penalty","physicallength","pipe","prefetch","quote","record","repeat","retry","return","right","right1","right2","rows","rowset","scan","scope","self","separator","service","shared","skew","skip","smart","soapaction","sql","stable","store","terminator","thor","threshold","timelimit","timeout","token","transform","trim","type","unicodeorder","unordered","unsorted","unstable","update","use","validate","virtual","whole","width","wild","within","wnotrim","xml","xpath"],functions:["abs","acos","aggregate","allnodes","apply","ascii","asin","assert","asstring","atan","atan2","ave","build","buildindex","case","catch","choose","choosen","choosesets","clustersize","combine","correlation","cos","cosh","count","covariance","cron","dataset","dedup","define","denormalize","dictionary","distribute","distributed","distribution","ebcdic","enth","error","evaluate","event","eventextra","eventname","exists","exp","fail","failcode","failmessage","fetch","fromunicode","fromxml","getenv","getisvalid","global","graph","group","hash","hash32","hash64","hashcrc","hashmd5","having","httpcall","httpheader","if","iff","index","intformat","isvalid","iterate","join","keydiff","keypatch","keyunicode","length","library","limit","ln","loadxml","local","log","loop","map","matched","matchlength","matchposition","matchtext","matchunicode","max","merge","mergejoin","min","nofold","nolocal","nonempty","normalize","nothor","notify","output","parallel","parse","pipe","power","preload","process","project","pull","random","range","rank","ranked","realformat","recordof","regexfind","regexreplace","regroup","rejected","rollup","round","roundup","row","rowdiff","sample","sequential","set","sin","sinh","sizeof","soapcall","sort","sorted","sqrt","stepped","stored","sum","table","tan","tanh","thisnode","topn","tounicode","toxml","transfer","transform","trim","truncate","typeof","ungroup","unicodeorder","variance","wait","which","workunit","xmldecode","xmlencode","xmltext","xmlunicode"],typesint:["integer","unsigned"].join("|"),typesnum:["data","qstring","string","unicode","utf8","varstring","varunicode"],typesone:["ascii","big_endian","boolean","data","decimal","ebcdic","grouped","integer","linkcounted","pattern","qstring","real","record","rule","set of","streamed","string","token","udecimal","unicode","unsigned","utf8","varstring","varunicode"].join("|"),operators:["+","-","/",":=","<","<>","=",">","\\","and","in","not","or"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/[0-9_]*\.[0-9_]+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F_]+/,"number.hex"],[/0[bB][01]+/,"number.hex"],[/[0-9_]+/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\v\f\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,"string","@pop"]]}};export{e as conf,o as language}; diff --git a/site/themes/template/static/live-editor/assets/editor.worker.64d64754.js b/site/themes/template/static/live-editor/assets/editor.worker.64d64754.js deleted file mode 100644 index f9e871d4c..000000000 --- a/site/themes/template/static/live-editor/assets/editor.worker.64d64754.js +++ /dev/null @@ -1,3 +0,0 @@ -(function(be){"use strict";class rn{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?new Error(t.message+` - -`+t.stack):t},0)}}emit(t){this.listeners.forEach(n=>{n(t)})}onUnexpectedError(t){this.unexpectedErrorHandler(t),this.emit(t)}onUnexpectedExternalError(t){this.unexpectedErrorHandler(t)}}const sn=new rn;function ln(e){un(e)||sn.onUnexpectedError(e)}function Qe(e){if(e instanceof Error){let{name:t,message:n}=e;const r=e.stacktrace||e.stack;return{$isError:!0,name:t,message:n,stack:r}}return e}const Xe="Canceled";function un(e){return e instanceof Error&&e.name===Xe&&e.message===Xe}function an(e){const t=this;let n=!1,r;return function(){return n||(n=!0,r=e.apply(t,arguments)),r}}var Ce;(function(e){function t(d){return d&&typeof d=="object"&&typeof d[Symbol.iterator]=="function"}e.is=t;const n=Object.freeze([]);function r(){return n}e.empty=r;function*s(d){yield d}e.single=s;function i(d){return d||n}e.from=i;function l(d){return!d||d[Symbol.iterator]().next().done===!0}e.isEmpty=l;function u(d){return d[Symbol.iterator]().next().value}e.first=u;function o(d,f){for(const g of d)if(f(g))return!0;return!1}e.some=o;function a(d,f){for(const g of d)if(f(g))return g}e.find=a;function*h(d,f){for(const g of d)f(g)&&(yield g)}e.filter=h;function*c(d,f){let g=0;for(const _ of d)yield f(_,g++)}e.map=c;function*m(...d){for(const f of d)for(const g of f)yield g}e.concat=m;function*L(d){for(const f of d)for(const g of f)yield g}e.concatNested=L;function S(d,f,g){let _=g;for(const w of d)_=f(_,w);return _}e.reduce=S;function*b(d,f,g=d.length){for(f<0&&(f+=d.length),g<0?g+=d.length:g>d.length&&(g=d.length);f_===w){const _=d[Symbol.iterator](),w=f[Symbol.iterator]();for(;;){const A=_.next(),N=w.next();if(A.done!==N.done)return!1;if(A.done)return!0;if(!g(A.value,N.value))return!1}}e.equals=M})(Ce||(Ce={}));function on(e){return e}function cn(e,t){}class hn extends Error{constructor(t){super(`Encountered errors while disposing of store. Errors: [${t.join(", ")}]`);this.errors=t}}function Ze(e){if(Ce.is(e)){let t=[];for(const n of e)if(n)try{n.dispose()}catch(r){t.push(r)}if(t.length===1)throw t[0];if(t.length>1)throw new hn(t);return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function fn(...e){return Je(()=>Ze(e))}function Je(e){return on({dispose:an(()=>{e()})})}class le{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){try{Ze(this._toDispose.values())}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?le.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(t),t}}le.DISABLE_DISPOSED_WARNING=!1;class Ke{constructor(){this._store=new le,cn(this._store)}dispose(){this._store.dispose()}_register(t){if(t===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(t)}}Ke.None=Object.freeze({dispose(){}});class P{constructor(t){this.element=t,this.next=P.Undefined,this.prev=P.Undefined}}P.Undefined=new P(void 0);class et{constructor(){this._first=P.Undefined,this._last=P.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===P.Undefined}clear(){let t=this._first;for(;t!==P.Undefined;){const n=t.next;t.prev=P.Undefined,t.next=P.Undefined,t=n}this._first=P.Undefined,this._last=P.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,n){const r=new P(t);if(this._first===P.Undefined)this._first=r,this._last=r;else if(n){const i=this._last;this._last=r,r.prev=i,i.next=r}else{const i=this._first;this._first=r,r.next=i,i.prev=r}this._size+=1;let s=!1;return()=>{s||(s=!0,this._remove(r))}}shift(){if(this._first!==P.Undefined){const t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==P.Undefined){const t=this._last.element;return this._remove(this._last),t}}_remove(t){if(t.prev!==P.Undefined&&t.next!==P.Undefined){const n=t.prev;n.next=t.next,t.next.prev=n}else t.prev===P.Undefined&&t.next===P.Undefined?(this._first=P.Undefined,this._last=P.Undefined):t.next===P.Undefined?(this._last=this._last.prev,this._last.next=P.Undefined):t.prev===P.Undefined&&(this._first=this._first.next,this._first.prev=P.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==P.Undefined;)yield t.element,t=t.next}}var pe;const fe="en";let ve=!1,Me=!1,Ve=!1,me,Re=fe,mn,X;const k=typeof self=="object"?self:typeof global=="object"?global:{};let T;typeof k.vscode!="undefined"&&typeof k.vscode.process!="undefined"?T=k.vscode.process:typeof process!="undefined"&&(T=process);const dn=typeof((pe=T==null?void 0:T.versions)===null||pe===void 0?void 0:pe.electron)=="string"&&T.type==="renderer";if(typeof navigator=="object"&&!dn)X=navigator.userAgent,ve=X.indexOf("Windows")>=0,Me=X.indexOf("Macintosh")>=0,(X.indexOf("Macintosh")>=0||X.indexOf("iPad")>=0||X.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,Ve=X.indexOf("Linux")>=0,me=navigator.language,Re=me;else if(typeof T=="object"){ve=T.platform==="win32",Me=T.platform==="darwin",Ve=T.platform==="linux",Ve&&!!T.env.SNAP&&T.env.SNAP_REVISION,me=fe,Re=fe;const e=T.env.VSCODE_NLS_CONFIG;if(e)try{const t=JSON.parse(e),n=t.availableLanguages["*"];me=t.locale,Re=n||fe,mn=t._translationsConfigFile}catch{}}else console.error("Unable to resolve platform.");const ue=ve,gn=Me,tt=function(){if(k.setImmediate)return k.setImmediate.bind(k);if(typeof k.postMessage=="function"&&!k.importScripts){let n=[];k.addEventListener("message",s=>{if(s.data&&s.data.vscodeSetImmediateId)for(let i=0,l=n.length;i{const i=++r;n.push({id:i,callback:s}),k.postMessage({vscodeSetImmediateId:i},"*")}}if(typeof(T==null?void 0:T.nextTick)=="function")return T.nextTick.bind(T);const t=Promise.resolve();return n=>t.then(n)}(),_n=k.performance&&typeof k.performance.now=="function";class de{constructor(t){this._highResolution=_n&&t,this._startTime=this._now(),this._stopTime=-1}static create(t=!0){return new de(t)}stop(){this._stopTime=this._now()}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}_now(){return this._highResolution?k.performance.now():Date.now()}}var Pe;(function(e){e.None=()=>Ke.None;function t(d){return(f,g=null,_)=>{let w=!1,A;return A=d(N=>{if(!w)return A?A.dispose():w=!0,f.call(g,N)},null,_),w&&A.dispose(),A}}e.once=t;function n(d,f){return o((g,_=null,w)=>d(A=>g.call(_,f(A)),null,w))}e.map=n;function r(d,f){return o((g,_=null,w)=>d(A=>{f(A),g.call(_,A)},null,w))}e.forEach=r;function s(d,f){return o((g,_=null,w)=>d(A=>f(A)&&g.call(_,A),null,w))}e.filter=s;function i(d){return d}e.signal=i;function l(...d){return(f,g=null,_)=>fn(...d.map(w=>w(A=>f.call(g,A),null,_)))}e.any=l;function u(d,f,g){let _=g;return n(d,w=>(_=f(_,w),_))}e.reduce=u;function o(d){let f;const g=new $({onFirstListenerAdd(){f=d(g.fire,g)},onLastListenerRemove(){f.dispose()}});return g.event}function a(d,f,g=100,_=!1,w){let A,N,V,U=0;const R=new $({leakWarningThreshold:w,onFirstListenerAdd(){A=d(C=>{U++,N=f(N,C),_&&!V&&(R.fire(N),N=void 0),clearTimeout(V),V=setTimeout(()=>{const Q=N;N=void 0,V=void 0,(!_||U>1)&&R.fire(Q),U=0},g)})},onLastListenerRemove(){A.dispose()}});return R.event}e.debounce=a;function h(d,f=(g,_)=>g===_){let g=!0,_;return s(d,w=>{const A=g||!f(w,_);return g=!1,_=w,A})}e.latch=h;function c(d,f){return[e.filter(d,f),e.filter(d,g=>!f(g))]}e.split=c;function m(d,f=!1,g=[]){let _=g.slice(),w=d(V=>{_?_.push(V):N.fire(V)});const A=()=>{_&&_.forEach(V=>N.fire(V)),_=null},N=new $({onFirstListenerAdd(){w||(w=d(V=>N.fire(V)))},onFirstListenerDidAdd(){_&&(f?setTimeout(A):A())},onLastListenerRemove(){w&&w.dispose(),w=null}});return N.event}e.buffer=m;class L{constructor(f){this.event=f}map(f){return new L(n(this.event,f))}forEach(f){return new L(r(this.event,f))}filter(f){return new L(s(this.event,f))}reduce(f,g){return new L(u(this.event,f,g))}latch(){return new L(h(this.event))}debounce(f,g=100,_=!1,w){return new L(a(this.event,f,g,_,w))}on(f,g,_){return this.event(f,g,_)}once(f,g,_){return t(this.event)(f,g,_)}}function S(d){return new L(d)}e.chain=S;function b(d,f,g=_=>_){const _=(...V)=>N.fire(g(...V)),w=()=>d.on(f,_),A=()=>d.removeListener(f,_),N=new $({onFirstListenerAdd:w,onLastListenerRemove:A});return N.event}e.fromNodeEventEmitter=b;function v(d,f,g=_=>_){const _=(...V)=>N.fire(g(...V)),w=()=>d.addEventListener(f,_),A=()=>d.removeEventListener(f,_),N=new $({onFirstListenerAdd:w,onLastListenerRemove:A});return N.event}e.fromDOMEventEmitter=v;function M(d){return new Promise(f=>t(d)(f))}e.toPromise=M})(Pe||(Pe={}));class ge{constructor(t){this._listenerCount=0,this._invocationCount=0,this._elapsedOverall=0,this._name=`${t}_${ge._idPool++}`}start(t){this._stopWatch=new de(!0),this._listenerCount=t}stop(){if(this._stopWatch){const t=this._stopWatch.elapsed();this._elapsedOverall+=t,this._invocationCount+=1,console.info(`did FIRE ${this._name}: elapsed_ms: ${t.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`),this._stopWatch=void 0}}}ge._idPool=0;class ${constructor(t){var n;this._disposed=!1,this._options=t,this._leakageMon=void 0,this._perfMon=((n=this._options)===null||n===void 0?void 0:n._profName)?new ge(this._options._profName):void 0}get event(){return this._event||(this._event=(t,n,r)=>{var s;this._listeners||(this._listeners=new et);const i=this._listeners.isEmpty();i&&this._options&&this._options.onFirstListenerAdd&&this._options.onFirstListenerAdd(this);const l=this._listeners.push(n?[t,n]:t);i&&this._options&&this._options.onFirstListenerDidAdd&&this._options.onFirstListenerDidAdd(this),this._options&&this._options.onListenerDidAdd&&this._options.onListenerDidAdd(this,t,n);const u=(s=this._leakageMon)===null||s===void 0?void 0:s.check(this._listeners.size),o=Je(()=>{u&&u(),this._disposed||(l(),this._options&&this._options.onLastListenerRemove&&(this._listeners&&!this._listeners.isEmpty()||this._options.onLastListenerRemove(this)))});return r instanceof le?r.add(o):Array.isArray(r)&&r.push(o),o}),this._event}fire(t){var n,r;if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new et);for(let s of this._listeners)this._deliveryQueue.push([s,t]);for((n=this._perfMon)===null||n===void 0||n.start(this._deliveryQueue.size);this._deliveryQueue.size>0;){const[s,i]=this._deliveryQueue.shift();try{typeof s=="function"?s.call(void 0,i):s[0].call(s[1],i)}catch(l){ln(l)}}(r=this._perfMon)===null||r===void 0||r.stop()}}dispose(){var t,n,r,s,i;this._disposed||(this._disposed=!0,(t=this._listeners)===null||t===void 0||t.clear(),(n=this._deliveryQueue)===null||n===void 0||n.clear(),(s=(r=this._options)===null||r===void 0?void 0:r.onLastListenerRemove)===null||s===void 0||s.call(r),(i=this._leakageMon)===null||i===void 0||i.dispose())}}function Ln(e){let t=[],n=Object.getPrototypeOf(e);for(;Object.prototype!==n;)t=t.concat(Object.getOwnPropertyNames(n)),n=Object.getPrototypeOf(n);return t}function Ee(e){const t=[];for(const n of Ln(e))typeof e[n]=="function"&&t.push(n);return t}function Nn(e,t){const n=s=>function(){const i=Array.prototype.slice.call(arguments,0);return t(s,i)};let r={};for(const s of e)r[s]=n(s);return r}function Sn(e){return e.split(/\r\n|\r|\n/)}function An(e){for(let t=0,n=e.length;t=0;n--){const r=e.charCodeAt(n);if(r!==32&&r!==9)return n}return-1}function nt(e){return e>=65&&e<=90}const bn="$initialize";class Cn{constructor(t,n,r,s){this.vsWorker=t,this.req=n,this.method=r,this.args=s,this.type=0}}class rt{constructor(t,n,r,s){this.vsWorker=t,this.seq=n,this.res=r,this.err=s,this.type=1}}class pn{constructor(t,n,r,s){this.vsWorker=t,this.req=n,this.eventName=r,this.arg=s,this.type=2}}class vn{constructor(t,n,r){this.vsWorker=t,this.req=n,this.event=r,this.type=3}}class Mn{constructor(t,n){this.vsWorker=t,this.req=n,this.type=4}}class Vn{constructor(t){this._workerId=-1,this._handler=t,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(t){this._workerId=t}sendMessage(t,n){const r=String(++this._lastSentReq);return new Promise((s,i)=>{this._pendingReplies[r]={resolve:s,reject:i},this._send(new Cn(this._workerId,r,t,n))})}listen(t,n){let r=null;const s=new $({onFirstListenerAdd:()=>{r=String(++this._lastSentReq),this._pendingEmitters.set(r,s),this._send(new pn(this._workerId,r,t,n))},onLastListenerRemove:()=>{this._pendingEmitters.delete(r),this._send(new Mn(this._workerId,r)),r=null}});return s.event}handleMessage(t){!t||!t.vsWorker||this._workerId!==-1&&t.vsWorker!==this._workerId||this._handleMessage(t)}_handleMessage(t){switch(t.type){case 1:return this._handleReplyMessage(t);case 0:return this._handleRequestMessage(t);case 2:return this._handleSubscribeEventMessage(t);case 3:return this._handleEventMessage(t);case 4:return this._handleUnsubscribeEventMessage(t)}}_handleReplyMessage(t){if(!this._pendingReplies[t.seq]){console.warn("Got reply to unknown seq");return}let n=this._pendingReplies[t.seq];if(delete this._pendingReplies[t.seq],t.err){let r=t.err;t.err.$isError&&(r=new Error,r.name=t.err.name,r.message=t.err.message,r.stack=t.err.stack),n.reject(r);return}n.resolve(t.res)}_handleRequestMessage(t){let n=t.req;this._handler.handleMessage(t.method,t.args).then(s=>{this._send(new rt(this._workerId,n,s,void 0))},s=>{s.detail instanceof Error&&(s.detail=Qe(s.detail)),this._send(new rt(this._workerId,n,void 0,Qe(s)))})}_handleSubscribeEventMessage(t){const n=t.req,r=this._handler.handleEvent(t.eventName,t.arg)(s=>{this._send(new vn(this._workerId,n,s))});this._pendingEvents.set(n,r)}_handleEventMessage(t){if(!this._pendingEmitters.has(t.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(t.req).fire(t.event)}_handleUnsubscribeEventMessage(t){if(!this._pendingEvents.has(t.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(t.req).dispose(),this._pendingEvents.delete(t.req)}_send(t){let n=[];if(t.type===0)for(let r=0;rfunction(){const u=Array.prototype.slice.call(arguments,0);return t(l,u)},s=l=>function(u){return n(l,u)};let i={};for(const l of e){if(it(l)){i[l]=s(l);continue}if(st(l)){i[l]=n(l,void 0);continue}i[l]=r(l)}return i}class Pn{constructor(t,n){this._requestHandlerFactory=n,this._requestHandler=null,this._protocol=new Vn({sendMessage:(r,s)=>{t(r,s)},handleMessage:(r,s)=>this._handleMessage(r,s),handleEvent:(r,s)=>this._handleEvent(r,s)})}onmessage(t){this._protocol.handleMessage(t)}_handleMessage(t,n){if(t===bn)return this.initialize(n[0],n[1],n[2],n[3]);if(!this._requestHandler||typeof this._requestHandler[t]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+t));try{return Promise.resolve(this._requestHandler[t].apply(this._requestHandler,n))}catch(r){return Promise.reject(r)}}_handleEvent(t,n){if(!this._requestHandler)throw new Error("Missing requestHandler");if(it(t)){const r=this._requestHandler[t].call(this._requestHandler,n);if(typeof r!="function")throw new Error(`Missing dynamic event ${t} on request handler.`);return r}if(st(t)){const r=this._requestHandler[t];if(typeof r!="function")throw new Error(`Missing event ${t} on request handler.`);return r}throw new Error(`Malformed event name ${t}`)}initialize(t,n,r,s){this._protocol.setWorkerId(t);const u=Rn(s,(o,a)=>this._protocol.sendMessage(o,a),(o,a)=>this._protocol.listen(o,a));return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(u),Promise.resolve(Ee(this._requestHandler))):(n&&(typeof n.baseUrl!="undefined"&&delete n.baseUrl,typeof n.paths!="undefined"&&typeof n.paths.vs!="undefined"&&delete n.paths.vs,typeof n.trustedTypesPolicy!==void 0&&delete n.trustedTypesPolicy,n.catchError=!0,k.require.config(n)),new Promise((o,a)=>{k.require([r],c=>{if(this._requestHandler=c.create(u),!this._requestHandler){a(new Error("No RequestHandler!"));return}o(Ee(this._requestHandler))},a)}))}}class G{constructor(t,n,r,s){this.originalStart=t,this.originalLength=n,this.modifiedStart=r,this.modifiedLength=s}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}function lt(e,t){return(t<<5)-t+e|0}function En(e,t){t=lt(149417,t);for(let n=0,r=e.length;n0||this.m_modifiedCount>0)&&this.m_changes.push(new G(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(t,n){this.m_originalStart=Math.min(this.m_originalStart,t),this.m_modifiedStart=Math.min(this.m_modifiedStart,n),this.m_originalCount++}AddModifiedElement(t,n){this.m_originalStart=Math.min(this.m_originalStart,t),this.m_modifiedStart=Math.min(this.m_modifiedStart,n),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class z{constructor(t,n,r=null){this.ContinueProcessingPredicate=r,this._originalSequence=t,this._modifiedSequence=n;const[s,i,l]=z._getElements(t),[u,o,a]=z._getElements(n);this._hasStrings=l&&a,this._originalStringElements=s,this._originalElementsOrHash=i,this._modifiedStringElements=u,this._modifiedElementsOrHash=o,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(t){return t.length>0&&typeof t[0]=="string"}static _getElements(t){const n=t.getElements();if(z._isStringArray(n)){const r=new Int32Array(n.length);for(let s=0,i=n.length;s=t&&s>=r&&this.ElementsAreEqual(n,s);)n--,s--;if(t>n||r>s){let c;return r<=s?(K.Assert(t===n+1,"originalStart should only be one more than originalEnd"),c=[new G(t,0,r,s-r+1)]):t<=n?(K.Assert(r===s+1,"modifiedStart should only be one more than modifiedEnd"),c=[new G(t,n-t+1,r,0)]):(K.Assert(t===n+1,"originalStart should only be one more than originalEnd"),K.Assert(r===s+1,"modifiedStart should only be one more than modifiedEnd"),c=[]),c}const l=[0],u=[0],o=this.ComputeRecursionPoint(t,n,r,s,l,u,i),a=l[0],h=u[0];if(o!==null)return o;if(!i[0]){const c=this.ComputeDiffRecursive(t,a,r,h,i);let m=[];return i[0]?m=[new G(a+1,n-(a+1)+1,h+1,s-(h+1)+1)]:m=this.ComputeDiffRecursive(a+1,n,h+1,s,i),this.ConcatenateChanges(c,m)}return[new G(t,n-t+1,r,s-r+1)]}WALKTRACE(t,n,r,s,i,l,u,o,a,h,c,m,L,S,b,v,M,d){let f=null,g=null,_=new at,w=n,A=r,N=L[0]-v[0]-s,V=-1073741824,U=this.m_forwardHistory.length-1;do{const R=N+t;R===w||R=0&&(a=this.m_forwardHistory[U],t=a[0],w=1,A=a.length-1)}while(--U>=-1);if(f=_.getReverseChanges(),d[0]){let R=L[0]+1,C=v[0]+1;if(f!==null&&f.length>0){const Q=f[f.length-1];R=Math.max(R,Q.getOriginalEnd()),C=Math.max(C,Q.getModifiedEnd())}g=[new G(R,m-R+1,C,b-C+1)]}else{_=new at,w=l,A=u,N=L[0]-v[0]-o,V=1073741824,U=M?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const R=N+i;R===w||R=h[R+1]?(c=h[R+1]-1,S=c-N-o,c>V&&_.MarkNextChange(),V=c+1,_.AddOriginalElement(c+1,S+1),N=R+1-i):(c=h[R-1],S=c-N-o,c>V&&_.MarkNextChange(),V=c,_.AddModifiedElement(c+1,S+1),N=R-1-i),U>=0&&(h=this.m_reverseHistory[U],i=h[0],w=1,A=h.length-1)}while(--U>=-1);g=_.getChanges()}return this.ConcatenateChanges(f,g)}ComputeRecursionPoint(t,n,r,s,i,l,u){let o=0,a=0,h=0,c=0,m=0,L=0;t--,r--,i[0]=0,l[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const S=n-t+(s-r),b=S+1,v=new Int32Array(b),M=new Int32Array(b),d=s-r,f=n-t,g=t-r,_=n-s,A=(f-d)%2==0;v[d]=t,M[f]=n,u[0]=!1;for(let N=1;N<=S/2+1;N++){let V=0,U=0;h=this.ClipDiagonalBound(d-N,N,d,b),c=this.ClipDiagonalBound(d+N,N,d,b);for(let C=h;C<=c;C+=2){C===h||CV+U&&(V=o,U=a),!A&&Math.abs(C-f)<=N-1&&o>=M[C])return i[0]=o,l[0]=a,Q<=M[C]&&1447>0&&N<=1447+1?this.WALKTRACE(d,h,c,g,f,m,L,_,v,M,o,n,i,a,s,l,A,u):null}const R=(V-t+(U-r)-N)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(V,R))return u[0]=!0,i[0]=V,l[0]=U,R>0&&1447>0&&N<=1447+1?this.WALKTRACE(d,h,c,g,f,m,L,_,v,M,o,n,i,a,s,l,A,u):(t++,r++,[new G(t,n-t+1,r,s-r+1)]);m=this.ClipDiagonalBound(f-N,N,f,b),L=this.ClipDiagonalBound(f+N,N,f,b);for(let C=m;C<=L;C+=2){C===m||C=M[C+1]?o=M[C+1]-1:o=M[C-1],a=o-(C-f)-_;const Q=o;for(;o>t&&a>r&&this.ElementsAreEqual(o,a);)o--,a--;if(M[C]=o,A&&Math.abs(C-d)<=N&&o<=v[C])return i[0]=o,l[0]=a,Q>=v[C]&&1447>0&&N<=1447+1?this.WALKTRACE(d,h,c,g,f,m,L,_,v,M,o,n,i,a,s,l,A,u):null}if(N<=1447){let C=new Int32Array(c-h+2);C[0]=d-h+1,ee.Copy2(v,h,C,1,c-h+1),this.m_forwardHistory.push(C),C=new Int32Array(L-m+2),C[0]=f-m+1,ee.Copy2(M,m,C,1,L-m+1),this.m_reverseHistory.push(C)}}return this.WALKTRACE(d,h,c,g,f,m,L,_,v,M,o,n,i,a,s,l,A,u)}PrettifyChanges(t){for(let n=0;n0,u=r.modifiedLength>0;for(;r.originalStart+r.originalLength=0;n--){const r=t[n];let s=0,i=0;if(n>0){const c=t[n-1];s=c.originalStart+c.originalLength,i=c.modifiedStart+c.modifiedLength}const l=r.originalLength>0,u=r.modifiedLength>0;let o=0,a=this._boundaryScore(r.originalStart,r.originalLength,r.modifiedStart,r.modifiedLength);for(let c=1;;c++){const m=r.originalStart-c,L=r.modifiedStart-c;if(ma&&(a=b,o=c)}r.originalStart-=o,r.modifiedStart-=o;const h=[null];if(n>0&&this.ChangesOverlap(t[n-1],t[n],h)){t[n-1]=h[0],t.splice(n,1),n++;continue}}if(this._hasStrings)for(let n=1,r=t.length;n0&&L>o&&(o=L,a=c,h=m)}return o>0?[a,h]:null}_contiguousSequenceScore(t,n,r){let s=0;for(let i=0;i=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[t])}_OriginalRegionIsBoundary(t,n){if(this._OriginalIsBoundary(t)||this._OriginalIsBoundary(t-1))return!0;if(n>0){const r=t+n;if(this._OriginalIsBoundary(r-1)||this._OriginalIsBoundary(r))return!0}return!1}_ModifiedIsBoundary(t){return t<=0||t>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[t])}_ModifiedRegionIsBoundary(t,n){if(this._ModifiedIsBoundary(t)||this._ModifiedIsBoundary(t-1))return!0;if(n>0){const r=t+n;if(this._ModifiedIsBoundary(r-1)||this._ModifiedIsBoundary(r))return!0}return!1}_boundaryScore(t,n,r,s){const i=this._OriginalRegionIsBoundary(t,n)?1:0,l=this._ModifiedRegionIsBoundary(r,s)?1:0;return i+l}ConcatenateChanges(t,n){let r=[];if(t.length===0||n.length===0)return n.length>0?n:t;if(this.ChangesOverlap(t[t.length-1],n[0],r)){const s=new Array(t.length+n.length-1);return ee.Copy(t,0,s,0,t.length-1),s[t.length-1]=r[0],ee.Copy(n,1,s,t.length,n.length-1),s}else{const s=new Array(t.length+n.length);return ee.Copy(t,0,s,0,t.length),ee.Copy(n,0,s,t.length,n.length),s}}ChangesOverlap(t,n,r){if(K.Assert(t.originalStart<=n.originalStart,"Left change is not less than or equal to right change"),K.Assert(t.modifiedStart<=n.modifiedStart,"Left change is not less than or equal to right change"),t.originalStart+t.originalLength>=n.originalStart||t.modifiedStart+t.modifiedLength>=n.modifiedStart){const s=t.originalStart;let i=t.originalLength;const l=t.modifiedStart;let u=t.modifiedLength;return t.originalStart+t.originalLength>=n.originalStart&&(i=n.originalStart+n.originalLength-t.originalStart),t.modifiedStart+t.modifiedLength>=n.modifiedStart&&(u=n.modifiedStart+n.modifiedLength-t.modifiedStart),r[0]=new G(s,i,l,u),!0}else return r[0]=null,!1}ClipDiagonalBound(t,n,r,s){if(t>=0&&t=kn&&e<=xn||e>=Tn&&e<=Un}function _e(e,t,n,r){let s="",i=0,l=-1,u=0,o=0;for(let a=0;a<=e.length;++a){if(a2){const h=s.lastIndexOf(n);h===-1?(s="",i=0):(s=s.slice(0,h),i=s.length-1-s.lastIndexOf(n)),l=a,u=0;continue}else if(s.length!==0){s="",i=0,l=a,u=0;continue}}t&&(s+=s.length>0?`${n}..`:"..",i=2)}else s.length>0?s+=`${n}${e.slice(l+1,a)}`:s=e.slice(l+1,a),i=a-l-1;l=a,u=0}else o===j&&u!==-1?++u:u=-1}return s}function ct(e,t){if(t===null||typeof t!="object")throw new ot("pathObject","Object",t);const n=t.dir||t.root,r=t.base||`${t.name||""}${t.ext||""}`;return n?n===t.root?`${n}${r}`:`${n}${e}${r}`:r}const B={resolve(...e){let t="",n="",r=!1;for(let s=e.length-1;s>=-1;s--){let i;if(s>=0){if(i=e[s],D(i,"path"),i.length===0)continue}else t.length===0?i=Fe():(i=Dn[`=${t}`]||Fe(),(i===void 0||i.slice(0,2).toLowerCase()!==t.toLowerCase()&&i.charCodeAt(2)===I)&&(i=`${t}\\`));const l=i.length;let u=0,o="",a=!1;const h=i.charCodeAt(0);if(l===1)p(h)&&(u=1,a=!0);else if(p(h))if(a=!0,p(i.charCodeAt(1))){let c=2,m=c;for(;c2&&p(i.charCodeAt(2))&&(a=!0,u=3));if(o.length>0)if(t.length>0){if(o.toLowerCase()!==t.toLowerCase())continue}else t=o;if(r){if(t.length>0)break}else if(n=`${i.slice(u)}\\${n}`,r=a,a&&t.length>0)break}return n=_e(n,!r,"\\",p),r?`${t}\\${n}`:`${t}${n}`||"."},normalize(e){D(e,"path");const t=e.length;if(t===0)return".";let n=0,r,s=!1;const i=e.charCodeAt(0);if(t===1)return De(i)?"\\":e;if(p(i))if(s=!0,p(e.charCodeAt(1))){let u=2,o=u;for(;u2&&p(e.charCodeAt(2))&&(s=!0,n=3));let l=n0&&p(e.charCodeAt(t-1))&&(l+="\\"),r===void 0?s?`\\${l}`:l:s?`${r}\\${l}`:`${r}${l}`},isAbsolute(e){D(e,"path");const t=e.length;if(t===0)return!1;const n=e.charCodeAt(0);return p(n)||t>2&&Y(n)&&e.charCodeAt(1)===O&&p(e.charCodeAt(2))},join(...e){if(e.length===0)return".";let t,n;for(let i=0;i0&&(t===void 0?t=n=l:t+=`\\${l}`)}if(t===void 0)return".";let r=!0,s=0;if(typeof n=="string"&&p(n.charCodeAt(0))){++s;const i=n.length;i>1&&p(n.charCodeAt(1))&&(++s,i>2&&(p(n.charCodeAt(2))?++s:r=!1))}if(r){for(;s=2&&(t=`\\${t.slice(s)}`)}return B.normalize(t)},relative(e,t){if(D(e,"from"),D(t,"to"),e===t)return"";const n=B.resolve(e),r=B.resolve(t);if(n===r||(e=n.toLowerCase(),t=r.toLowerCase(),e===t))return"";let s=0;for(;ss&&e.charCodeAt(i-1)===I;)i--;const l=i-s;let u=0;for(;uu&&t.charCodeAt(o-1)===I;)o--;const a=o-u,h=lh){if(t.charCodeAt(u+m)===I)return r.slice(u+m+1);if(m===2)return r.slice(u+m)}l>h&&(e.charCodeAt(s+m)===I?c=m:m===2&&(c=3)),c===-1&&(c=0)}let L="";for(m=s+c+1;m<=i;++m)(m===i||e.charCodeAt(m)===I)&&(L+=L.length===0?"..":"\\..");return u+=c,L.length>0?`${L}${r.slice(u,o)}`:(r.charCodeAt(u)===I&&++u,r.slice(u,o))},toNamespacedPath(e){if(typeof e!="string")return e;if(e.length===0)return"";const t=B.resolve(e);if(t.length<=2)return e;if(t.charCodeAt(0)===I){if(t.charCodeAt(1)===I){const n=t.charCodeAt(2);if(n!==Bn&&n!==j)return`\\\\?\\UNC\\${t.slice(2)}`}}else if(Y(t.charCodeAt(0))&&t.charCodeAt(1)===O&&t.charCodeAt(2)===I)return`\\\\?\\${t}`;return e},dirname(e){D(e,"path");const t=e.length;if(t===0)return".";let n=-1,r=0;const s=e.charCodeAt(0);if(t===1)return p(s)?e:".";if(p(s)){if(n=r=1,p(e.charCodeAt(1))){let u=2,o=u;for(;u2&&p(e.charCodeAt(2))?3:2,r=n);let i=-1,l=!0;for(let u=t-1;u>=r;--u)if(p(e.charCodeAt(u))){if(!l){i=u;break}}else l=!1;if(i===-1){if(n===-1)return".";i=n}return e.slice(0,i)},basename(e,t){t!==void 0&&D(t,"ext"),D(e,"path");let n=0,r=-1,s=!0,i;if(e.length>=2&&Y(e.charCodeAt(0))&&e.charCodeAt(1)===O&&(n=2),t!==void 0&&t.length>0&&t.length<=e.length){if(t===e)return"";let l=t.length-1,u=-1;for(i=e.length-1;i>=n;--i){const o=e.charCodeAt(i);if(p(o)){if(!s){n=i+1;break}}else u===-1&&(s=!1,u=i+1),l>=0&&(o===t.charCodeAt(l)?--l==-1&&(r=i):(l=-1,r=u))}return n===r?r=u:r===-1&&(r=e.length),e.slice(n,r)}for(i=e.length-1;i>=n;--i)if(p(e.charCodeAt(i))){if(!s){n=i+1;break}}else r===-1&&(s=!1,r=i+1);return r===-1?"":e.slice(n,r)},extname(e){D(e,"path");let t=0,n=-1,r=0,s=-1,i=!0,l=0;e.length>=2&&e.charCodeAt(1)===O&&Y(e.charCodeAt(0))&&(t=r=2);for(let u=e.length-1;u>=t;--u){const o=e.charCodeAt(u);if(p(o)){if(!i){r=u+1;break}continue}s===-1&&(i=!1,s=u+1),o===j?n===-1?n=u:l!==1&&(l=1):n!==-1&&(l=-1)}return n===-1||s===-1||l===0||l===1&&n===s-1&&n===r+1?"":e.slice(n,s)},format:ct.bind(null,"\\"),parse(e){D(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return t;const n=e.length;let r=0,s=e.charCodeAt(0);if(n===1)return p(s)?(t.root=t.dir=e,t):(t.base=t.name=e,t);if(p(s)){if(r=1,p(e.charCodeAt(1))){let c=2,m=c;for(;c0&&(t.root=e.slice(0,r));let i=-1,l=r,u=-1,o=!0,a=e.length-1,h=0;for(;a>=r;--a){if(s=e.charCodeAt(a),p(s)){if(!o){l=a+1;break}continue}u===-1&&(o=!1,u=a+1),s===j?i===-1?i=a:h!==1&&(h=1):i!==-1&&(h=-1)}return u!==-1&&(i===-1||h===0||h===1&&i===u-1&&i===l+1?t.base=t.name=e.slice(l,u):(t.name=e.slice(l,i),t.base=e.slice(l,u),t.ext=e.slice(i,u))),l>0&&l!==r?t.dir=e.slice(0,l-1):t.dir=t.root,t},sep:"\\",delimiter:";",win32:null,posix:null},H={resolve(...e){let t="",n=!1;for(let r=e.length-1;r>=-1&&!n;r--){const s=r>=0?e[r]:Fe();D(s,"path"),s.length!==0&&(t=`${s}/${t}`,n=s.charCodeAt(0)===x)}return t=_e(t,!n,"/",De),n?`/${t}`:t.length>0?t:"."},normalize(e){if(D(e,"path"),e.length===0)return".";const t=e.charCodeAt(0)===x,n=e.charCodeAt(e.length-1)===x;return e=_e(e,!t,"/",De),e.length===0?t?"/":n?"./":".":(n&&(e+="/"),t?`/${e}`:e)},isAbsolute(e){return D(e,"path"),e.length>0&&e.charCodeAt(0)===x},join(...e){if(e.length===0)return".";let t;for(let n=0;n0&&(t===void 0?t=r:t+=`/${r}`)}return t===void 0?".":H.normalize(t)},relative(e,t){if(D(e,"from"),D(t,"to"),e===t||(e=H.resolve(e),t=H.resolve(t),e===t))return"";const n=1,r=e.length,s=r-n,i=1,l=t.length-i,u=su){if(t.charCodeAt(i+a)===x)return t.slice(i+a+1);if(a===0)return t.slice(i+a)}else s>u&&(e.charCodeAt(n+a)===x?o=a:a===0&&(o=0));let h="";for(a=n+o+1;a<=r;++a)(a===r||e.charCodeAt(a)===x)&&(h+=h.length===0?"..":"/..");return`${h}${t.slice(i+o)}`},toNamespacedPath(e){return e},dirname(e){if(D(e,"path"),e.length===0)return".";const t=e.charCodeAt(0)===x;let n=-1,r=!0;for(let s=e.length-1;s>=1;--s)if(e.charCodeAt(s)===x){if(!r){n=s;break}}else r=!1;return n===-1?t?"/":".":t&&n===1?"//":e.slice(0,n)},basename(e,t){t!==void 0&&D(t,"ext"),D(e,"path");let n=0,r=-1,s=!0,i;if(t!==void 0&&t.length>0&&t.length<=e.length){if(t===e)return"";let l=t.length-1,u=-1;for(i=e.length-1;i>=0;--i){const o=e.charCodeAt(i);if(o===x){if(!s){n=i+1;break}}else u===-1&&(s=!1,u=i+1),l>=0&&(o===t.charCodeAt(l)?--l==-1&&(r=i):(l=-1,r=u))}return n===r?r=u:r===-1&&(r=e.length),e.slice(n,r)}for(i=e.length-1;i>=0;--i)if(e.charCodeAt(i)===x){if(!s){n=i+1;break}}else r===-1&&(s=!1,r=i+1);return r===-1?"":e.slice(n,r)},extname(e){D(e,"path");let t=-1,n=0,r=-1,s=!0,i=0;for(let l=e.length-1;l>=0;--l){const u=e.charCodeAt(l);if(u===x){if(!s){n=l+1;break}continue}r===-1&&(s=!1,r=l+1),u===j?t===-1?t=l:i!==1&&(i=1):t!==-1&&(i=-1)}return t===-1||r===-1||i===0||i===1&&t===r-1&&t===n+1?"":e.slice(t,r)},format:ct.bind(null,"/"),parse(e){D(e,"path");const t={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return t;const n=e.charCodeAt(0)===x;let r;n?(t.root="/",r=1):r=0;let s=-1,i=0,l=-1,u=!0,o=e.length-1,a=0;for(;o>=r;--o){const h=e.charCodeAt(o);if(h===x){if(!u){i=o+1;break}continue}l===-1&&(u=!1,l=o+1),h===j?s===-1?s=o:a!==1&&(a=1):s!==-1&&(a=-1)}if(l!==-1){const h=i===0&&n?1:i;s===-1||a===0||a===1&&s===l-1&&s===i+1?t.base=t.name=e.slice(h,l):(t.name=e.slice(h,s),t.base=e.slice(h,l),t.ext=e.slice(s,l))}return i>0?t.dir=e.slice(0,i-1):n&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};H.win32=B.win32=B,H.posix=B.posix=H,Z==="win32"?B.normalize:H.normalize,Z==="win32"?B.resolve:H.resolve,Z==="win32"?B.relative:H.relative,Z==="win32"?B.dirname:H.dirname,Z==="win32"?B.basename:H.basename,Z==="win32"?B.extname:H.extname,Z==="win32"?B.sep:H.sep;const In=/^\w[\w\d+.-]*$/,Hn=/^\//,qn=/^\/\//;function ht(e,t){if(!e.scheme&&t)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!In.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path){if(e.authority){if(!Hn.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(qn.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function Wn(e,t){return!e&&!t?"file":e}function yn(e,t){switch(e){case"https":case"http":case"file":t?t[0]!==W&&(t=W+t):t=W;break}return t}const E="",W="/",$n=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class J{constructor(t,n,r,s,i,l=!1){typeof t=="object"?(this.scheme=t.scheme||E,this.authority=t.authority||E,this.path=t.path||E,this.query=t.query||E,this.fragment=t.fragment||E):(this.scheme=Wn(t,l),this.authority=n||E,this.path=yn(this.scheme,r||E),this.query=s||E,this.fragment=i||E,ht(this,l))}static isUri(t){return t instanceof J?!0:t?typeof t.authority=="string"&&typeof t.fragment=="string"&&typeof t.path=="string"&&typeof t.query=="string"&&typeof t.scheme=="string"&&typeof t.fsPath=="string"&&typeof t.with=="function"&&typeof t.toString=="function":!1}get fsPath(){return ke(this,!1)}with(t){if(!t)return this;let{scheme:n,authority:r,path:s,query:i,fragment:l}=t;return n===void 0?n=this.scheme:n===null&&(n=E),r===void 0?r=this.authority:r===null&&(r=E),s===void 0?s=this.path:s===null&&(s=E),i===void 0?i=this.query:i===null&&(i=E),l===void 0?l=this.fragment:l===null&&(l=E),n===this.scheme&&r===this.authority&&s===this.path&&i===this.query&&l===this.fragment?this:new ne(n,r,s,i,l)}static parse(t,n=!1){const r=$n.exec(t);return r?new ne(r[2]||E,Le(r[4]||E),Le(r[5]||E),Le(r[7]||E),Le(r[9]||E),n):new ne(E,E,E,E,E)}static file(t){let n=E;if(ue&&(t=t.replace(/\\/g,W)),t[0]===W&&t[1]===W){const r=t.indexOf(W,2);r===-1?(n=t.substring(2),t=W):(n=t.substring(2,r),t=t.substring(r)||W)}return new ne("file",n,t,E,E)}static from(t){const n=new ne(t.scheme,t.authority,t.path,t.query,t.fragment);return ht(n,!0),n}static joinPath(t,...n){if(!t.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let r;return ue&&t.scheme==="file"?r=J.file(B.join(ke(t,!0),...n)).path:r=H.join(t.path,...n),t.with({path:r})}toString(t=!1){return Te(this,t)}toJSON(){return this}static revive(t){if(t){if(t instanceof J)return t;{const n=new ne(t);return n._formatted=t.external,n._fsPath=t._sep===ft?t.fsPath:null,n}}else return t}}const ft=ue?1:void 0;class ne extends J{constructor(){super(...arguments);this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=ke(this,!1)),this._fsPath}toString(t=!1){return t?Te(this,!0):(this._formatted||(this._formatted=Te(this,!1)),this._formatted)}toJSON(){const t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=ft),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t}}const mt={[58]:"%3A",[47]:"%2F",[63]:"%3F",[35]:"%23",[91]:"%5B",[93]:"%5D",[64]:"%40",[33]:"%21",[36]:"%24",[38]:"%26",[39]:"%27",[40]:"%28",[41]:"%29",[42]:"%2A",[43]:"%2B",[44]:"%2C",[59]:"%3B",[61]:"%3D",[32]:"%20"};function dt(e,t){let n,r=-1;for(let s=0;s=97&&i<=122||i>=65&&i<=90||i>=48&&i<=57||i===45||i===46||i===95||i===126||t&&i===47)r!==-1&&(n+=encodeURIComponent(e.substring(r,s)),r=-1),n!==void 0&&(n+=e.charAt(s));else{n===void 0&&(n=e.substr(0,s));const l=mt[i];l!==void 0?(r!==-1&&(n+=encodeURIComponent(e.substring(r,s)),r=-1),n+=l):r===-1&&(r=s)}}return r!==-1&&(n+=encodeURIComponent(e.substring(r))),n!==void 0?n:e}function Gn(e){let t;for(let n=0;n1&&e.scheme==="file"?n=`//${e.authority}${e.path}`:e.path.charCodeAt(0)===47&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&e.path.charCodeAt(2)===58?t?n=e.path.substr(1):n=e.path[1].toLowerCase()+e.path.substr(2):n=e.path,ue&&(n=n.replace(/\//g,"\\")),n}function Te(e,t){const n=t?Gn:dt;let r="",{scheme:s,authority:i,path:l,query:u,fragment:o}=e;if(s&&(r+=s,r+=":"),(i||s==="file")&&(r+=W,r+=W),i){let a=i.indexOf("@");if(a!==-1){const h=i.substr(0,a);i=i.substr(a+1),a=h.indexOf(":"),a===-1?r+=n(h,!1):(r+=n(h.substr(0,a),!1),r+=":",r+=n(h.substr(a+1),!1)),r+="@"}i=i.toLowerCase(),a=i.indexOf(":"),a===-1?r+=n(i,!1):(r+=n(i.substr(0,a),!1),r+=i.substr(a))}if(l){if(l.length>=3&&l.charCodeAt(0)===47&&l.charCodeAt(2)===58){const a=l.charCodeAt(1);a>=65&&a<=90&&(l=`/${String.fromCharCode(a+32)}:${l.substr(3)}`)}else if(l.length>=2&&l.charCodeAt(1)===58){const a=l.charCodeAt(0);a>=65&&a<=90&&(l=`${String.fromCharCode(a+32)}:${l.substr(2)}`)}r+=n(l,!0)}return u&&(r+="?",r+=n(u,!1)),o&&(r+="#",r+=t?o:dt(o,!1)),r}function gt(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+gt(e.substr(3)):e}}const _t=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Le(e){return e.match(_t)?e.replace(_t,t=>gt(t)):e}class q{constructor(t,n){this.lineNumber=t,this.column=n}with(t=this.lineNumber,n=this.column){return t===this.lineNumber&&n===this.column?this:new q(t,n)}delta(t=0,n=0){return this.with(this.lineNumber+t,this.column+n)}equals(t){return q.equals(this,t)}static equals(t,n){return!t&&!n?!0:!!t&&!!n&&t.lineNumber===n.lineNumber&&t.column===n.column}isBefore(t){return q.isBefore(this,t)}static isBefore(t,n){return t.lineNumberr||t===r&&n>s?(this.startLineNumber=r,this.startColumn=s,this.endLineNumber=t,this.endColumn=n):(this.startLineNumber=t,this.startColumn=n,this.endLineNumber=r,this.endColumn=s)}isEmpty(){return F.isEmpty(this)}static isEmpty(t){return t.startLineNumber===t.endLineNumber&&t.startColumn===t.endColumn}containsPosition(t){return F.containsPosition(this,t)}static containsPosition(t,n){return!(n.lineNumbert.endLineNumber||n.lineNumber===t.startLineNumber&&n.columnt.endColumn)}containsRange(t){return F.containsRange(this,t)}static containsRange(t,n){return!(n.startLineNumbert.endLineNumber||n.endLineNumber>t.endLineNumber||n.startLineNumber===t.startLineNumber&&n.startColumnt.endColumn)}strictContainsRange(t){return F.strictContainsRange(this,t)}static strictContainsRange(t,n){return!(n.startLineNumbert.endLineNumber||n.endLineNumber>t.endLineNumber||n.startLineNumber===t.startLineNumber&&n.startColumn<=t.startColumn||n.endLineNumber===t.endLineNumber&&n.endColumn>=t.endColumn)}plusRange(t){return F.plusRange(this,t)}static plusRange(t,n){let r,s,i,l;return n.startLineNumbert.endLineNumber?(i=n.endLineNumber,l=n.endColumn):n.endLineNumber===t.endLineNumber?(i=n.endLineNumber,l=Math.max(n.endColumn,t.endColumn)):(i=t.endLineNumber,l=t.endColumn),new F(r,s,i,l)}intersectRanges(t){return F.intersectRanges(this,t)}static intersectRanges(t,n){let r=t.startLineNumber,s=t.startColumn,i=t.endLineNumber,l=t.endColumn,u=n.startLineNumber,o=n.startColumn,a=n.endLineNumber,h=n.endColumn;return ra?(i=a,l=h):i===a&&(l=Math.min(l,h)),r>i||r===i&&s>l?null:new F(r,s,i,l)}equalsRange(t){return F.equalsRange(this,t)}static equalsRange(t,n){return!!t&&!!n&&t.startLineNumber===n.startLineNumber&&t.startColumn===n.startColumn&&t.endLineNumber===n.endLineNumber&&t.endColumn===n.endColumn}getEndPosition(){return F.getEndPosition(this)}static getEndPosition(t){return new q(t.endLineNumber,t.endColumn)}getStartPosition(){return F.getStartPosition(this)}static getStartPosition(t){return new q(t.startLineNumber,t.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(t,n){return new F(this.startLineNumber,this.startColumn,t,n)}setStartPosition(t,n){return new F(t,n,this.endLineNumber,this.endColumn)}collapseToStart(){return F.collapseToStart(this)}static collapseToStart(t){return new F(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)}static fromPositions(t,n=t){return new F(t.lineNumber,t.column,n.lineNumber,n.column)}static lift(t){return t?new F(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null}static isIRange(t){return t&&typeof t.startLineNumber=="number"&&typeof t.startColumn=="number"&&typeof t.endLineNumber=="number"&&typeof t.endColumn=="number"}static areIntersectingOrTouching(t,n){return!(t.endLineNumbert.startLineNumber}}const zn=3;function Lt(e,t,n,r){return new z(e,t,n).ComputeDiff(r)}class Nt{constructor(t){const n=[],r=[];for(let s=0,i=t.length;s0&&n.originalLength<20&&n.modifiedLength>0&&n.modifiedLength<20&&i()){const L=r.createCharSequence(t,n.originalStart,n.originalStart+n.originalLength-1),S=s.createCharSequence(t,n.modifiedStart,n.modifiedStart+n.modifiedLength-1);let b=Lt(L,S,i,!0).changes;u&&(b=On(b)),m=[];for(let v=0,M=b.length;v1&&b>1;){const v=m.charCodeAt(S-2),M=L.charCodeAt(b-2);if(v!==M)break;S--,b--}(S>1||b>1)&&this._pushTrimWhitespaceCharChange(s,i+1,1,S,l+1,1,b)}{let S=Ue(m,1),b=Ue(L,1);const v=m.length+1,M=L.length+1;for(;S!0;const t=Date.now();return()=>Date.now()-t255?255:e|0}function re(e){return e<0?0:e>4294967295?4294967295:e|0}class Qn{constructor(t,n){this._prefixSumIndexOfResultBrand=void 0,this.index=t,this.remainder=n}}class Xn{constructor(t){this.values=t,this.prefixSum=new Uint32Array(t.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(t,n){t=re(t);const r=this.values,s=this.prefixSum,i=n.length;return i===0?!1:(this.values=new Uint32Array(r.length+i),this.values.set(r.subarray(0,t),0),this.values.set(r.subarray(t),t+i),this.values.set(n,t),t-1=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}changeValue(t,n){return t=re(t),n=re(n),this.values[t]===n?!1:(this.values[t]=n,t-1=r.length)return!1;let i=r.length-t;return n>=i&&(n=i),n===0?!1:(this.values=new Uint32Array(r.length-n),this.values.set(r.subarray(0,t),0),this.values.set(r.subarray(t+n),t),this.prefixSum=new Uint32Array(this.values.length),t-1=0&&this.prefixSum.set(s.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(t){return t<0?0:(t=re(t),this._getPrefixSum(t))}_getPrefixSum(t){if(t<=this.prefixSumValidIndex[0])return this.prefixSum[t];let n=this.prefixSumValidIndex[0]+1;n===0&&(this.prefixSum[0]=this.values[0],n++),t>=this.values.length&&(t=this.values.length-1);for(let r=n;r<=t;r++)this.prefixSum[r]=this.prefixSum[r-1]+this.values[r];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],t),this.prefixSum[t]}getIndexOf(t){t=Math.floor(t),this.getTotalSum();let n=0,r=this.values.length-1,s=0,i=0,l=0;for(;n<=r;)if(s=n+(r-n)/2|0,i=this.prefixSum[s],l=i-this.values[s],t=i)n=s+1;else break;return new Qn(s,t-l)}}class Zn{constructor(t,n,r,s){this._uri=t,this._lines=n,this._eol=r,this._versionId=s,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return this._cachedTextValue===null&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(t){t.eol&&t.eol!==this._eol&&(this._eol=t.eol,this._lineStarts=null);const n=t.changes;for(const r of n)this._acceptDeleteRange(r.range),this._acceptInsertText(new q(r.range.startLineNumber,r.range.startColumn),r.text);this._versionId=t.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const t=this._eol.length,n=this._lines.length,r=new Uint32Array(n);for(let s=0;s/?";function Kn(e=""){let t="(-?\\d*\\.\\d\\w*)|([^";for(const n of Jn)e.indexOf(n)>=0||(t+="\\"+n);return t+="\\s]+)",new RegExp(t,"g")}const er=Kn();function tr(e){let t=er;if(e&&e instanceof RegExp)if(e.global)t=e;else{let n="g";e.ignoreCase&&(n+="i"),e.multiline&&(n+="m"),e.unicode&&(n+="u"),t=new RegExp(e.source,n)}return t.lastIndex=0,t}const nr={maxLen:1e3,windowSize:15,timeBudget:150};function wt(e,t,n,r,s=nr){if(n.length>s.maxLen){let a=e-s.maxLen/2;return a<0?a=0:r+=a,n=n.substring(a,e+s.maxLen/2),wt(e,t,n,r,s)}const i=Date.now(),l=e-1-r;let u=-1,o=null;for(let a=1;!(Date.now()-i>=s.timeBudget);a++){const h=l-s.windowSize*a;t.lastIndex=Math.max(0,h);const c=rr(t,n,l,u);if(!c&&o||(o=c,h<=0))break;u=h}if(o){let a={word:o[0],startColumn:r+1+o.index,endColumn:r+1+o.index+o[0].length};return t.lastIndex=0,a}return null}function rr(e,t,n,r){let s;for(;s=e.exec(t);){const i=s.index||0;if(i<=n&&e.lastIndex>=n)return s;if(r>0&&i>r)return null}return null}class Be{constructor(t){let n=At(t);this._defaultValue=n,this._asciiMap=Be._createAsciiMap(n),this._map=new Map}static _createAsciiMap(t){let n=new Uint8Array(256);for(let r=0;r<256;r++)n[r]=t;return n}set(t,n){let r=At(n);t>=0&&t<256?this._asciiMap[t]=r:this._map.set(t,r)}get(t){return t>=0&&t<256?this._asciiMap[t]:this._map.get(t)||this._defaultValue}}class sr{constructor(t,n,r){const s=new Uint8Array(t*n);for(let i=0,l=t*n;in&&(n=o),u>r&&(r=u),a>r&&(r=a)}n++,r++;let s=new sr(r,n,0);for(let i=0,l=t.length;i=this._maxCharCode?0:this._states.get(t,n)}}let Ie=null;function lr(){return Ie===null&&(Ie=new ir([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),Ie}let ce=null;function ur(){if(ce===null){ce=new Be(0);const e=` <>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026`;for(let n=0;ns);if(s>0){const u=n.charCodeAt(s-1),o=n.charCodeAt(l);(u===40&&o===41||u===91&&o===93||u===123&&o===125)&&l--}return{range:{startLineNumber:r,startColumn:s+1,endLineNumber:r,endColumn:l+2},url:n.substring(s,l+1)}}static computeLinks(t,n=lr()){const r=ur();let s=[];for(let i=1,l=t.getLineCount();i<=l;i++){const u=t.getLineContent(i),o=u.length;let a=0,h=0,c=0,m=1,L=!1,S=!1,b=!1,v=!1;for(;a=0?(s+=r?1:-1,s<0?s=t.length-1:s%=t.length,t[s]):null}}He.INSTANCE=new He;const bt=Object.freeze(function(e,t){const n=setTimeout(e.bind(t),0);return{dispose(){clearTimeout(n)}}});var Se;(function(e){function t(n){return n===e.None||n===e.Cancelled||n instanceof Ae?!0:!n||typeof n!="object"?!1:typeof n.isCancellationRequested=="boolean"&&typeof n.onCancellationRequested=="function"}e.isCancellationToken=t,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Pe.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:bt})})(Se||(Se={}));class Ae{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?bt:(this._emitter||(this._emitter=new $),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class or{constructor(t){this._token=void 0,this._parentListener=void 0,this._parentListener=t&&t.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new Ae),this._token}cancel(){this._token?this._token instanceof Ae&&this._token.cancel():this._token=Se.Cancelled}dispose(t=!1){t&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof Ae&&this._token.dispose():this._token=Se.None}}class qe{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(t,n){this._keyCodeToStr[t]=n,this._strToKeyCode[n.toLowerCase()]=t}keyCodeToStr(t){return this._keyCodeToStr[t]}strToKeyCode(t){return this._strToKeyCode[t.toLowerCase()]||0}}const we=new qe,We=new qe,ye=new qe,cr=new Array(230),hr={},fr=[],mr=Object.create(null),dr=Object.create(null),Ct=[],$e=[];for(let e=0;e<=193;e++)Ct[e]=-1;for(let e=0;e<=126;e++)$e[e]=-1;(function(){const e="",t=[[0,1,0,"None",0,"unknown",0,"VK_UNKNOWN",e,e],[0,1,1,"Hyper",0,e,0,e,e,e],[0,1,2,"Super",0,e,0,e,e,e],[0,1,3,"Fn",0,e,0,e,e,e],[0,1,4,"FnLock",0,e,0,e,e,e],[0,1,5,"Suspend",0,e,0,e,e,e],[0,1,6,"Resume",0,e,0,e,e,e],[0,1,7,"Turbo",0,e,0,e,e,e],[0,1,8,"Sleep",0,e,0,"VK_SLEEP",e,e],[0,1,9,"WakeUp",0,e,0,e,e,e],[31,0,10,"KeyA",31,"A",65,"VK_A",e,e],[32,0,11,"KeyB",32,"B",66,"VK_B",e,e],[33,0,12,"KeyC",33,"C",67,"VK_C",e,e],[34,0,13,"KeyD",34,"D",68,"VK_D",e,e],[35,0,14,"KeyE",35,"E",69,"VK_E",e,e],[36,0,15,"KeyF",36,"F",70,"VK_F",e,e],[37,0,16,"KeyG",37,"G",71,"VK_G",e,e],[38,0,17,"KeyH",38,"H",72,"VK_H",e,e],[39,0,18,"KeyI",39,"I",73,"VK_I",e,e],[40,0,19,"KeyJ",40,"J",74,"VK_J",e,e],[41,0,20,"KeyK",41,"K",75,"VK_K",e,e],[42,0,21,"KeyL",42,"L",76,"VK_L",e,e],[43,0,22,"KeyM",43,"M",77,"VK_M",e,e],[44,0,23,"KeyN",44,"N",78,"VK_N",e,e],[45,0,24,"KeyO",45,"O",79,"VK_O",e,e],[46,0,25,"KeyP",46,"P",80,"VK_P",e,e],[47,0,26,"KeyQ",47,"Q",81,"VK_Q",e,e],[48,0,27,"KeyR",48,"R",82,"VK_R",e,e],[49,0,28,"KeyS",49,"S",83,"VK_S",e,e],[50,0,29,"KeyT",50,"T",84,"VK_T",e,e],[51,0,30,"KeyU",51,"U",85,"VK_U",e,e],[52,0,31,"KeyV",52,"V",86,"VK_V",e,e],[53,0,32,"KeyW",53,"W",87,"VK_W",e,e],[54,0,33,"KeyX",54,"X",88,"VK_X",e,e],[55,0,34,"KeyY",55,"Y",89,"VK_Y",e,e],[56,0,35,"KeyZ",56,"Z",90,"VK_Z",e,e],[22,0,36,"Digit1",22,"1",49,"VK_1",e,e],[23,0,37,"Digit2",23,"2",50,"VK_2",e,e],[24,0,38,"Digit3",24,"3",51,"VK_3",e,e],[25,0,39,"Digit4",25,"4",52,"VK_4",e,e],[26,0,40,"Digit5",26,"5",53,"VK_5",e,e],[27,0,41,"Digit6",27,"6",54,"VK_6",e,e],[28,0,42,"Digit7",28,"7",55,"VK_7",e,e],[29,0,43,"Digit8",29,"8",56,"VK_8",e,e],[30,0,44,"Digit9",30,"9",57,"VK_9",e,e],[21,0,45,"Digit0",21,"0",48,"VK_0",e,e],[3,1,46,"Enter",3,"Enter",13,"VK_RETURN",e,e],[9,1,47,"Escape",9,"Escape",27,"VK_ESCAPE",e,e],[1,1,48,"Backspace",1,"Backspace",8,"VK_BACK",e,e],[2,1,49,"Tab",2,"Tab",9,"VK_TAB",e,e],[10,1,50,"Space",10,"Space",32,"VK_SPACE",e,e],[83,0,51,"Minus",83,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[81,0,52,"Equal",81,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[87,0,53,"BracketLeft",87,"[",219,"VK_OEM_4","[","OEM_4"],[89,0,54,"BracketRight",89,"]",221,"VK_OEM_6","]","OEM_6"],[88,0,55,"Backslash",88,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,0,56,"IntlHash",0,e,0,e,e,e],[80,0,57,"Semicolon",80,";",186,"VK_OEM_1",";","OEM_1"],[90,0,58,"Quote",90,"'",222,"VK_OEM_7","'","OEM_7"],[86,0,59,"Backquote",86,"`",192,"VK_OEM_3","`","OEM_3"],[82,0,60,"Comma",82,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[84,0,61,"Period",84,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[85,0,62,"Slash",85,"/",191,"VK_OEM_2","/","OEM_2"],[8,1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",e,e],[59,1,64,"F1",59,"F1",112,"VK_F1",e,e],[60,1,65,"F2",60,"F2",113,"VK_F2",e,e],[61,1,66,"F3",61,"F3",114,"VK_F3",e,e],[62,1,67,"F4",62,"F4",115,"VK_F4",e,e],[63,1,68,"F5",63,"F5",116,"VK_F5",e,e],[64,1,69,"F6",64,"F6",117,"VK_F6",e,e],[65,1,70,"F7",65,"F7",118,"VK_F7",e,e],[66,1,71,"F8",66,"F8",119,"VK_F8",e,e],[67,1,72,"F9",67,"F9",120,"VK_F9",e,e],[68,1,73,"F10",68,"F10",121,"VK_F10",e,e],[69,1,74,"F11",69,"F11",122,"VK_F11",e,e],[70,1,75,"F12",70,"F12",123,"VK_F12",e,e],[0,1,76,"PrintScreen",0,e,0,e,e,e],[79,1,77,"ScrollLock",79,"ScrollLock",145,"VK_SCROLL",e,e],[7,1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",e,e],[19,1,79,"Insert",19,"Insert",45,"VK_INSERT",e,e],[14,1,80,"Home",14,"Home",36,"VK_HOME",e,e],[11,1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",e,e],[20,1,82,"Delete",20,"Delete",46,"VK_DELETE",e,e],[13,1,83,"End",13,"End",35,"VK_END",e,e],[12,1,84,"PageDown",12,"PageDown",34,"VK_NEXT",e,e],[17,1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",e],[15,1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",e],[18,1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",e],[16,1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",e],[78,1,89,"NumLock",78,"NumLock",144,"VK_NUMLOCK",e,e],[108,1,90,"NumpadDivide",108,"NumPad_Divide",111,"VK_DIVIDE",e,e],[103,1,91,"NumpadMultiply",103,"NumPad_Multiply",106,"VK_MULTIPLY",e,e],[106,1,92,"NumpadSubtract",106,"NumPad_Subtract",109,"VK_SUBTRACT",e,e],[104,1,93,"NumpadAdd",104,"NumPad_Add",107,"VK_ADD",e,e],[3,1,94,"NumpadEnter",3,e,0,e,e,e],[94,1,95,"Numpad1",94,"NumPad1",97,"VK_NUMPAD1",e,e],[95,1,96,"Numpad2",95,"NumPad2",98,"VK_NUMPAD2",e,e],[96,1,97,"Numpad3",96,"NumPad3",99,"VK_NUMPAD3",e,e],[97,1,98,"Numpad4",97,"NumPad4",100,"VK_NUMPAD4",e,e],[98,1,99,"Numpad5",98,"NumPad5",101,"VK_NUMPAD5",e,e],[99,1,100,"Numpad6",99,"NumPad6",102,"VK_NUMPAD6",e,e],[100,1,101,"Numpad7",100,"NumPad7",103,"VK_NUMPAD7",e,e],[101,1,102,"Numpad8",101,"NumPad8",104,"VK_NUMPAD8",e,e],[102,1,103,"Numpad9",102,"NumPad9",105,"VK_NUMPAD9",e,e],[93,1,104,"Numpad0",93,"NumPad0",96,"VK_NUMPAD0",e,e],[107,1,105,"NumpadDecimal",107,"NumPad_Decimal",110,"VK_DECIMAL",e,e],[92,0,106,"IntlBackslash",92,"OEM_102",226,"VK_OEM_102",e,e],[58,1,107,"ContextMenu",58,"ContextMenu",93,e,e,e],[0,1,108,"Power",0,e,0,e,e,e],[0,1,109,"NumpadEqual",0,e,0,e,e,e],[71,1,110,"F13",71,"F13",124,"VK_F13",e,e],[72,1,111,"F14",72,"F14",125,"VK_F14",e,e],[73,1,112,"F15",73,"F15",126,"VK_F15",e,e],[74,1,113,"F16",74,"F16",127,"VK_F16",e,e],[75,1,114,"F17",75,"F17",128,"VK_F17",e,e],[76,1,115,"F18",76,"F18",129,"VK_F18",e,e],[77,1,116,"F19",77,"F19",130,"VK_F19",e,e],[0,1,117,"F20",0,e,0,"VK_F20",e,e],[0,1,118,"F21",0,e,0,"VK_F21",e,e],[0,1,119,"F22",0,e,0,"VK_F22",e,e],[0,1,120,"F23",0,e,0,"VK_F23",e,e],[0,1,121,"F24",0,e,0,"VK_F24",e,e],[0,1,122,"Open",0,e,0,e,e,e],[0,1,123,"Help",0,e,0,e,e,e],[0,1,124,"Select",0,e,0,e,e,e],[0,1,125,"Again",0,e,0,e,e,e],[0,1,126,"Undo",0,e,0,e,e,e],[0,1,127,"Cut",0,e,0,e,e,e],[0,1,128,"Copy",0,e,0,e,e,e],[0,1,129,"Paste",0,e,0,e,e,e],[0,1,130,"Find",0,e,0,e,e,e],[0,1,131,"AudioVolumeMute",112,"AudioVolumeMute",173,"VK_VOLUME_MUTE",e,e],[0,1,132,"AudioVolumeUp",113,"AudioVolumeUp",175,"VK_VOLUME_UP",e,e],[0,1,133,"AudioVolumeDown",114,"AudioVolumeDown",174,"VK_VOLUME_DOWN",e,e],[105,1,134,"NumpadComma",105,"NumPad_Separator",108,"VK_SEPARATOR",e,e],[110,0,135,"IntlRo",110,"ABNT_C1",193,"VK_ABNT_C1",e,e],[0,1,136,"KanaMode",0,e,0,e,e,e],[0,0,137,"IntlYen",0,e,0,e,e,e],[0,1,138,"Convert",0,e,0,e,e,e],[0,1,139,"NonConvert",0,e,0,e,e,e],[0,1,140,"Lang1",0,e,0,e,e,e],[0,1,141,"Lang2",0,e,0,e,e,e],[0,1,142,"Lang3",0,e,0,e,e,e],[0,1,143,"Lang4",0,e,0,e,e,e],[0,1,144,"Lang5",0,e,0,e,e,e],[0,1,145,"Abort",0,e,0,e,e,e],[0,1,146,"Props",0,e,0,e,e,e],[0,1,147,"NumpadParenLeft",0,e,0,e,e,e],[0,1,148,"NumpadParenRight",0,e,0,e,e,e],[0,1,149,"NumpadBackspace",0,e,0,e,e,e],[0,1,150,"NumpadMemoryStore",0,e,0,e,e,e],[0,1,151,"NumpadMemoryRecall",0,e,0,e,e,e],[0,1,152,"NumpadMemoryClear",0,e,0,e,e,e],[0,1,153,"NumpadMemoryAdd",0,e,0,e,e,e],[0,1,154,"NumpadMemorySubtract",0,e,0,e,e,e],[0,1,155,"NumpadClear",0,e,0,e,e,e],[0,1,156,"NumpadClearEntry",0,e,0,e,e,e],[5,1,0,e,5,"Ctrl",17,"VK_CONTROL",e,e],[4,1,0,e,4,"Shift",16,"VK_SHIFT",e,e],[6,1,0,e,6,"Alt",18,"VK_MENU",e,e],[57,1,0,e,57,"Meta",0,"VK_COMMAND",e,e],[5,1,157,"ControlLeft",5,e,0,"VK_LCONTROL",e,e],[4,1,158,"ShiftLeft",4,e,0,"VK_LSHIFT",e,e],[6,1,159,"AltLeft",6,e,0,"VK_LMENU",e,e],[57,1,160,"MetaLeft",57,e,0,"VK_LWIN",e,e],[5,1,161,"ControlRight",5,e,0,"VK_RCONTROL",e,e],[4,1,162,"ShiftRight",4,e,0,"VK_RSHIFT",e,e],[6,1,163,"AltRight",6,e,0,"VK_RMENU",e,e],[57,1,164,"MetaRight",57,e,0,"VK_RWIN",e,e],[0,1,165,"BrightnessUp",0,e,0,e,e,e],[0,1,166,"BrightnessDown",0,e,0,e,e,e],[0,1,167,"MediaPlay",0,e,0,e,e,e],[0,1,168,"MediaRecord",0,e,0,e,e,e],[0,1,169,"MediaFastForward",0,e,0,e,e,e],[0,1,170,"MediaRewind",0,e,0,e,e,e],[114,1,171,"MediaTrackNext",119,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",e,e],[115,1,172,"MediaTrackPrevious",120,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",e,e],[116,1,173,"MediaStop",121,"MediaStop",178,"VK_MEDIA_STOP",e,e],[0,1,174,"Eject",0,e,0,e,e,e],[117,1,175,"MediaPlayPause",122,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",e,e],[0,1,176,"MediaSelect",123,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",e,e],[0,1,177,"LaunchMail",124,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",e,e],[0,1,178,"LaunchApp2",125,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",e,e],[0,1,179,"LaunchApp1",0,e,0,"VK_MEDIA_LAUNCH_APP1",e,e],[0,1,180,"SelectTask",0,e,0,e,e,e],[0,1,181,"LaunchScreenSaver",0,e,0,e,e,e],[0,1,182,"BrowserSearch",115,"BrowserSearch",170,"VK_BROWSER_SEARCH",e,e],[0,1,183,"BrowserHome",116,"BrowserHome",172,"VK_BROWSER_HOME",e,e],[112,1,184,"BrowserBack",117,"BrowserBack",166,"VK_BROWSER_BACK",e,e],[113,1,185,"BrowserForward",118,"BrowserForward",167,"VK_BROWSER_FORWARD",e,e],[0,1,186,"BrowserStop",0,e,0,"VK_BROWSER_STOP",e,e],[0,1,187,"BrowserRefresh",0,e,0,"VK_BROWSER_REFRESH",e,e],[0,1,188,"BrowserFavorites",0,e,0,"VK_BROWSER_FAVORITES",e,e],[0,1,189,"ZoomToggle",0,e,0,e,e,e],[0,1,190,"MailReply",0,e,0,e,e,e],[0,1,191,"MailForward",0,e,0,e,e,e],[0,1,192,"MailSend",0,e,0,e,e,e],[109,1,0,e,109,"KeyInComposition",229,e,e,e],[111,1,0,e,111,"ABNT_C2",194,"VK_ABNT_C2",e,e],[91,1,0,e,91,"OEM_8",223,"VK_OEM_8",e,e],[0,1,0,e,0,e,0,"VK_CLEAR",e,e],[0,1,0,e,0,e,0,"VK_KANA",e,e],[0,1,0,e,0,e,0,"VK_HANGUL",e,e],[0,1,0,e,0,e,0,"VK_JUNJA",e,e],[0,1,0,e,0,e,0,"VK_FINAL",e,e],[0,1,0,e,0,e,0,"VK_HANJA",e,e],[0,1,0,e,0,e,0,"VK_KANJI",e,e],[0,1,0,e,0,e,0,"VK_CONVERT",e,e],[0,1,0,e,0,e,0,"VK_NONCONVERT",e,e],[0,1,0,e,0,e,0,"VK_ACCEPT",e,e],[0,1,0,e,0,e,0,"VK_MODECHANGE",e,e],[0,1,0,e,0,e,0,"VK_SELECT",e,e],[0,1,0,e,0,e,0,"VK_PRINT",e,e],[0,1,0,e,0,e,0,"VK_EXECUTE",e,e],[0,1,0,e,0,e,0,"VK_SNAPSHOT",e,e],[0,1,0,e,0,e,0,"VK_HELP",e,e],[0,1,0,e,0,e,0,"VK_APPS",e,e],[0,1,0,e,0,e,0,"VK_PROCESSKEY",e,e],[0,1,0,e,0,e,0,"VK_PACKET",e,e],[0,1,0,e,0,e,0,"VK_DBE_SBCSCHAR",e,e],[0,1,0,e,0,e,0,"VK_DBE_DBCSCHAR",e,e],[0,1,0,e,0,e,0,"VK_ATTN",e,e],[0,1,0,e,0,e,0,"VK_CRSEL",e,e],[0,1,0,e,0,e,0,"VK_EXSEL",e,e],[0,1,0,e,0,e,0,"VK_EREOF",e,e],[0,1,0,e,0,e,0,"VK_PLAY",e,e],[0,1,0,e,0,e,0,"VK_ZOOM",e,e],[0,1,0,e,0,e,0,"VK_NONAME",e,e],[0,1,0,e,0,e,0,"VK_PA1",e,e],[0,1,0,e,0,e,0,"VK_OEM_CLEAR",e,e]];let n=[],r=[];for(const s of t){const[i,l,u,o,a,h,c,m,L,S]=s;if(r[u]||(r[u]=!0,fr[u]=o,mr[o]=u,dr[o.toLowerCase()]=u,l&&(Ct[u]=a,a!==0&&a!==3&&a!==5&&a!==4&&a!==6&&a!==57&&($e[a]=u))),!n[a]){if(n[a]=!0,!h)throw new Error(`String representation missing for key code ${a} around scan code ${o}`);we.define(a,h),We.define(a,L||h),ye.define(a,S||L||h)}c&&(cr[c]=a),m&&(hr[m]=a)}$e[3]=46})();var pt;(function(e){function t(u){return we.keyCodeToStr(u)}e.toString=t;function n(u){return we.strToKeyCode(u)}e.fromString=n;function r(u){return We.keyCodeToStr(u)}e.toUserSettingsUS=r;function s(u){return ye.keyCodeToStr(u)}e.toUserSettingsGeneral=s;function i(u){return We.strToKeyCode(u)||ye.strToKeyCode(u)}e.fromUserSettings=i;function l(u){if(u>=93&&u<=108)return null;switch(u){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return we.keyCodeToStr(u)}e.toElectronAccelerator=l})(pt||(pt={}));function gr(e,t){const n=(t&65535)<<16>>>0;return(e|n)>>>0}class y extends F{constructor(t,n,r,s){super(t,n,r,s);this.selectionStartLineNumber=t,this.selectionStartColumn=n,this.positionLineNumber=r,this.positionColumn=s}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(t){return y.selectionsEqual(this,t)}static selectionsEqual(t,n){return t.selectionStartLineNumber===n.selectionStartLineNumber&&t.selectionStartColumn===n.selectionStartColumn&&t.positionLineNumber===n.positionLineNumber&&t.positionColumn===n.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(t,n){return this.getDirection()===0?new y(this.startLineNumber,this.startColumn,t,n):new y(t,n,this.startLineNumber,this.startColumn)}getPosition(){return new q(this.positionLineNumber,this.positionColumn)}setStartPosition(t,n){return this.getDirection()===0?new y(t,n,this.endLineNumber,this.endColumn):new y(this.endLineNumber,this.endColumn,t,n)}static fromPositions(t,n=t){return new y(t.lineNumber,t.column,n.lineNumber,n.column)}static liftSelection(t){return new y(t.selectionStartLineNumber,t.selectionStartColumn,t.positionLineNumber,t.positionColumn)}static selectionsArrEqual(t,n){if(t&&!n||!t&&n)return!1;if(!t&&!n)return!0;if(t.length!==n.length)return!1;for(let r=0,s=t.length;rthis._lines.length)n=this._lines.length,r=this._lines[n-1].length+1,s=!0;else{let i=this._lines[n-1].length+1;r<1?(r=1,s=!0):r>i&&(r=i,s=!0)}return s?{lineNumber:n,column:r}:t}}class ie{constructor(t,n){this._host=t,this._models=Object.create(null),this._foreignModuleFactory=n,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(t){return this._models[t]}_getModels(){let t=[];return Object.keys(this._models).forEach(n=>t.push(this._models[n])),t}acceptNewModel(t){this._models[t.url]=new Nr(J.parse(t.url),t.lines,t.EOL,t.versionId)}acceptModelChanged(t,n){if(!this._models[t])return;this._models[t].onEvents(n)}acceptRemovedModel(t){!this._models[t]||delete this._models[t]}computeDiff(t,n,r,s){return se(this,void 0,void 0,function*(){const i=this._getModel(t),l=this._getModel(n);if(!i||!l)return null;const u=i.getLinesContent(),o=l.getLinesContent(),h=new Yn(u,o,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:r,shouldMakePrettyDiff:!0,maxComputationTime:s}).computeDiff(),c=h.changes.length>0?!1:this._modelsAreIdentical(i,l);return{quitEarly:h.quitEarly,identical:c,changes:h.changes}})}_modelsAreIdentical(t,n){const r=t.getLineCount(),s=n.getLineCount();if(r!==s)return!1;for(let i=1;i<=r;i++){const l=t.getLineContent(i),u=n.getLineContent(i);if(l!==u)return!1}return!0}computeMoreMinimalEdits(t,n){return se(this,void 0,void 0,function*(){const r=this._getModel(t);if(!r)return n;const s=[];let i;n=n.slice(0).sort((l,u)=>{if(l.range&&u.range)return F.compareRangesUsingStarts(l.range,u.range);let o=l.range?0:1,a=u.range?0:1;return o-a});for(let{range:l,text:u,eol:o}of n){if(typeof o=="number"&&(i=o),F.isEmpty(l)&&!u)continue;const a=r.getValueInRange(l);if(u=u.replace(/\r\n|\n|\r/g,r.eol),a===u)continue;if(Math.max(u.length,a.length)>ie._diffLimit){s.push({range:l,text:u});continue}const h=Fn(a,u,!1),c=r.offsetAt(F.lift(l).getStartPosition());for(const m of h){const L=r.positionAt(c+m.originalStart),S=r.positionAt(c+m.originalStart+m.originalLength),b={text:u.substr(m.modifiedStart,m.modifiedLength),range:{startLineNumber:L.lineNumber,startColumn:L.column,endLineNumber:S.lineNumber,endColumn:S.column}};r.getValueInRange(b.range)!==b.text&&s.push(b)}}return typeof i=="number"&&s.push({eol:i,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),s})}computeLinks(t){return se(this,void 0,void 0,function*(){let n=this._getModel(t);return n?ar(n):null})}textualSuggest(t,n,r,s){return se(this,void 0,void 0,function*(){const i=new de(!0),l=new RegExp(r,s),u=new Set;e:for(let o of t){const a=this._getModel(o);if(!!a){for(let h of a.words(l))if(!(h===n||!isNaN(Number(h)))&&(u.add(h),u.size>ie._suggestionsLimit))break e}}return{words:Array.from(u),duration:i.elapsed()}})}computeWordRanges(t,n,r,s){return se(this,void 0,void 0,function*(){let i=this._getModel(t);if(!i)return Object.create(null);const l=new RegExp(r,s),u=Object.create(null);for(let o=n.startLineNumber;othis._host.fhr(u,o)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(l,n),Promise.resolve(Ee(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(t,n){if(!this._foreignModule||typeof this._foreignModule[t]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+t));try{return Promise.resolve(this._foreignModule[t].apply(this._foreignModule,n))}catch(r){return Promise.reject(r)}}}ie._diffLimit=1e5,ie._suggestionsLimit=1e4,typeof importScripts=="function"&&(k.monaco=Lr());let Ye=!1;function nn(e){if(Ye)return;Ye=!0;const t=new Pn(n=>{self.postMessage(n)},n=>new ie(n,e));self.onmessage=n=>{t.onmessage(n.data)}}return self.onmessage=e=>{Ye||nn(null)},be.initialize=nn,Object.defineProperty(be,"__esModule",{value:!0}),be})({}); diff --git a/site/themes/template/static/live-editor/assets/elixir.291abd3d.js b/site/themes/template/static/live-editor/assets/elixir.291abd3d.js deleted file mode 100644 index c406a389b..000000000 --- a/site/themes/template/static/live-editor/assets/elixir.291abd3d.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"'",close:"'"},{open:'"',close:'"'}],autoClosingPairs:[{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["comment"]},{open:'"""',close:'"""'},{open:"`",close:"`",notIn:["string","comment"]},{open:"(",close:")"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"<<",close:">>"}],indentationRules:{increaseIndentPattern:/^\s*(after|else|catch|rescue|fn|[^#]*(do|<\-|\->|\{|\[|\=))\s*$/,decreaseIndentPattern:/^\s*((\}|\])\s*$|(after|else|catch|rescue|end)\b)/}},t={defaultToken:"source",tokenPostfix:".elixir",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"<<",close:">>",token:"delimiter.angle.special"}],declarationKeywords:["def","defp","defn","defnp","defguard","defguardp","defmacro","defmacrop","defdelegate","defcallback","defmacrocallback","defmodule","defprotocol","defexception","defimpl","defstruct"],operatorKeywords:["and","in","not","or","when"],namespaceKeywords:["alias","import","require","use"],otherKeywords:["after","case","catch","cond","do","else","end","fn","for","if","quote","raise","receive","rescue","super","throw","try","unless","unquote_splicing","unquote","with"],constants:["true","false","nil"],nameBuiltin:["__MODULE__","__DIR__","__ENV__","__CALLER__","__STACKTRACE__"],operator:/-[->]?|!={0,2}|\*|\/|\\\\|&{1,3}|\.\.?|\^(?:\^\^)?|\+\+?|<(?:-|<<|=|>|\|>|~>?)?|=~|={1,3}|>(?:=|>>)?|\|~>|\|>|\|{1,3}|~>>?|~~~|::/,variableName:/[a-z_][a-zA-Z0-9_]*[?!]?/,atomName:/[a-zA-Z_][a-zA-Z0-9_@]*[?!]?|@specialAtomName|@operator/,specialAtomName:/\.\.\.|<<>>|%\{\}|%|\{\}/,aliasPart:/[A-Z][a-zA-Z0-9_]*/,moduleName:/@aliasPart(?:\.@aliasPart)*/,sigilSymmetricDelimiter:/"""|'''|"|'|\/|\|/,sigilStartDelimiter:/@sigilSymmetricDelimiter|<|\{|\[|\(/,sigilEndDelimiter:/@sigilSymmetricDelimiter|>|\}|\]|\)/,decimal:/\d(?:_?\d)*/,hex:/[0-9a-fA-F](_?[0-9a-fA-F])*/,octal:/[0-7](_?[0-7])*/,binary:/[01](_?[01])*/,escape:/\\u[0-9a-fA-F]{4}|\\x[0-9a-fA-F]{2}|\\./,tokenizer:{root:[{include:"@whitespace"},{include:"@comments"},{include:"@keywordsShorthand"},{include:"@numbers"},{include:"@identifiers"},{include:"@strings"},{include:"@atoms"},{include:"@sigils"},{include:"@attributes"},{include:"@symbols"}],whitespace:[[/\s+/,"white"]],comments:[[/(#)(.*)/,["comment.punctuation","comment"]]],keywordsShorthand:[[/(@atomName)(:)/,["constant","constant.punctuation"]],[/"(?=([^"]|#\{.*?\}|\\")*":)/,{token:"constant.delimiter",next:"@doubleQuotedStringKeyword"}],[/'(?=([^']|#\{.*?\}|\\')*':)/,{token:"constant.delimiter",next:"@singleQuotedStringKeyword"}]],doubleQuotedStringKeyword:[[/":/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringKeyword:[[/':/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],numbers:[[/0b@binary/,"number.binary"],[/0o@octal/,"number.octal"],[/0x@hex/,"number.hex"],[/@decimal\.@decimal([eE]-?@decimal)?/,"number.float"],[/@decimal/,"number"]],identifiers:[[/\b(defp?|defnp?|defmacrop?|defguardp?|defdelegate)(\s+)(@variableName)(?!\s+@operator)/,["keyword.declaration","white",{cases:{unquote:"keyword","@default":"function"}}]],[/(@variableName)(?=\s*\.?\s*\()/,{cases:{"@declarationKeywords":"keyword.declaration","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@default":"function.call"}}],[/(@moduleName)(\s*)(\.)(\s*)(@variableName)/,["type.identifier","white","operator","white","function.call"]],[/(:)(@atomName)(\s*)(\.)(\s*)(@variableName)/,["constant.punctuation","constant","white","operator","white","function.call"]],[/(\|>)(\s*)(@variableName)/,["operator","white",{cases:{"@otherKeywords":"keyword","@default":"function.call"}}]],[/(&)(\s*)(@variableName)/,["operator","white","function.call"]],[/@variableName/,{cases:{"@declarationKeywords":"keyword.declaration","@operatorKeywords":"keyword.operator","@namespaceKeywords":"keyword","@otherKeywords":"keyword","@constants":"constant.language","@nameBuiltin":"variable.language","_.*":"comment.unused","@default":"identifier"}}],[/@moduleName/,"type.identifier"]],strings:[[/"""/,{token:"string.delimiter",next:"@doubleQuotedHeredoc"}],[/'''/,{token:"string.delimiter",next:"@singleQuotedHeredoc"}],[/"/,{token:"string.delimiter",next:"@doubleQuotedString"}],[/'/,{token:"string.delimiter",next:"@singleQuotedString"}]],doubleQuotedHeredoc:[[/"""/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedHeredoc:[[/'''/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],doubleQuotedString:[[/"/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],singleQuotedString:[[/'/,{token:"string.delimiter",next:"@pop"}],{include:"@stringContentInterpol"}],atoms:[[/(:)(@atomName)/,["constant.punctuation","constant"]],[/:"/,{token:"constant.delimiter",next:"@doubleQuotedStringAtom"}],[/:'/,{token:"constant.delimiter",next:"@singleQuotedStringAtom"}]],doubleQuotedStringAtom:[[/"/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],singleQuotedStringAtom:[[/'/,{token:"constant.delimiter",next:"@pop"}],{include:"@stringConstantContentInterpol"}],sigils:[[/~[a-z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.interpol"}],[/~[A-Z]@sigilStartDelimiter/,{token:"@rematch",next:"@sigil.noInterpol"}]],sigil:[[/~([a-zA-Z])\{/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.{.}"}],[/~([a-zA-Z])\[/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.[.]"}],[/~([a-zA-Z])\(/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.(.)"}],[/~([a-zA-Z])\"}],[/~([a-zA-Z])(@sigilSymmetricDelimiter)/,{token:"@rematch",switchTo:"@sigilStart.$S2.$1.$2.$2"}]],"sigilStart.interpol.s":[[/~s@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.s":[[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContentInterpol"}],"sigilStart.noInterpol.S":[[/~S@sigilStartDelimiter/,{token:"string.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.S":[[/(^|[^\\])\\@sigilEndDelimiter/,"string"],[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"string.delimiter",next:"@pop"},"@default":"string"}}],{include:"@stringContent"}],"sigilStart.interpol.r":[[/~r@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol.r":[[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContentInterpol"}],"sigilStart.noInterpol.R":[[/~R@sigilStartDelimiter/,{token:"regexp.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol.R":[[/(^|[^\\])\\@sigilEndDelimiter/,"regexp"],[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"regexp.delimiter",next:"@pop"},"@default":"regexp"}}],{include:"@regexpContent"}],"sigilStart.interpol":[[/~([a-zA-Z])@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.interpol":[[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContentInterpol"}],"sigilStart.noInterpol":[[/~([a-zA-Z])@sigilStartDelimiter/,{token:"sigil.delimiter",switchTo:"@sigilContinue.$S2.$S3.$S4.$S5"}]],"sigilContinue.noInterpol":[[/(^|[^\\])\\@sigilEndDelimiter/,"sigil"],[/(@sigilEndDelimiter)[a-zA-Z]*/,{cases:{"$1==$S5":{token:"sigil.delimiter",next:"@pop"},"@default":"sigil"}}],{include:"@sigilContent"}],attributes:[[/\@(module|type)?doc (~[sS])?"""/,{token:"comment.block.documentation",next:"@doubleQuotedHeredocDocstring"}],[/\@(module|type)?doc (~[sS])?"/,{token:"comment.block.documentation",next:"@doubleQuotedStringDocstring"}],[/\@(module|type)?doc false/,"comment.block.documentation"],[/\@(@variableName)/,"variable"]],doubleQuotedHeredocDocstring:[[/"""/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],doubleQuotedStringDocstring:[[/"/,{token:"comment.block.documentation",next:"@pop"}],{include:"@docstringContent"}],symbols:[[/\?(\\.|[^\\\s])/,"number.constant"],[/&\d+/,"operator"],[/<<<|>>>/,"operator"],[/[()\[\]\{\}]|<<|>>/,"@brackets"],[/\.\.\./,"identifier"],[/=>/,"punctuation"],[/@operator/,"operator"],[/[:;,.%]/,"punctuation"]],stringContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringContent"}],stringContent:[[/./,"string"]],stringConstantContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@stringConstantContent"}],stringConstantContent:[[/./,"constant"]],regexpContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@regexpContent"}],regexpContent:[[/(\s)(#)(\s.*)$/,["white","comment.punctuation","comment"]],[/./,"regexp"]],sigilContentInterpol:[{include:"@interpolation"},{include:"@escapeChar"},{include:"@sigilContent"}],sigilContent:[[/./,"sigil"]],docstringContent:[[/./,"comment.block.documentation"]],escapeChar:[[/@escape/,"constant.character.escape"]],interpolation:[[/#{/,{token:"delimiter.bracket.embed",next:"@interpolationContinue"}]],interpolationContinue:[[/}/,{token:"delimiter.bracket.embed",next:"@pop"}],{include:"@root"}]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/flow9.bfa7b48c.js b/site/themes/template/static/live-editor/assets/flow9.bfa7b48c.js deleted file mode 100644 index 72d4643fd..000000000 --- a/site/themes/template/static/live-editor/assets/flow9.bfa7b48c.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string"]},{open:"[",close:"]",notIn:["string"]},{open:"(",close:")",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}]},o={defaultToken:"",tokenPostfix:".flow",keywords:["import","require","export","forbid","native","if","else","cast","unsafe","switch","default"],types:["io","mutable","bool","int","double","string","flow","void","ref","true","false","with"],operators:["=",">","<","<=",">=","==","!","!=",":=","::=","&&","||","+","-","*","/","@","&","%",":","->","\\","$","??","^"],symbols:/[@$=>](?!@symbols)/,"delimiter"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};export{e as conf,o as language}; diff --git a/site/themes/template/static/live-editor/assets/fsharp.3cba6d34.js b/site/themes/template/static/live-editor/assets/fsharp.3cba6d34.js deleted file mode 100644 index 6dac629b4..000000000 --- a/site/themes/template/static/live-editor/assets/fsharp.3cba6d34.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)"),end:new RegExp("^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)")}}},n={defaultToken:"",tokenPostfix:".fs",keywords:["abstract","and","atomic","as","assert","asr","base","begin","break","checked","component","const","constraint","constructor","continue","class","default","delegate","do","done","downcast","downto","elif","else","end","exception","eager","event","external","extern","false","finally","for","fun","function","fixed","functor","global","if","in","include","inherit","inline","interface","internal","land","lor","lsl","lsr","lxor","lazy","let","match","member","mod","module","mutable","namespace","method","mixin","new","not","null","of","open","or","object","override","private","parallel","process","protected","pure","public","rec","return","static","sealed","struct","sig","then","to","true","tailcall","trait","try","type","upcast","use","val","void","virtual","volatile","when","while","with","yield"],symbols:/[=>\]/,"annotation"],[/^#(if|else|endif)/,"keyword"],[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0x[0-9a-fA-F]+LF/,"number.float"],[/0x[0-9a-fA-F]+(@integersuffix)/,"number.hex"],[/0b[0-1]+(@integersuffix)/,"number.bin"],[/\d+(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string",'@string."""'],[/"/,"string",'@string."'],[/\@"/,{token:"string.quote",next:"@litstring"}],[/'[^\\']'B?/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\(\*(?!\))/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^*(]+/,"comment"],[/\*\)/,"comment","@pop"],[/\*/,"comment"],[/\(\*\)/,"comment"],[/\(/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/("""|"B?)/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],litstring:[[/[^"]+/,"string"],[/""/,"string.escape"],[/"/,{token:"string.quote",next:"@pop"}]]}};export{e as conf,n as language}; diff --git a/site/themes/template/static/live-editor/assets/go.9fc4a848.js b/site/themes/template/static/live-editor/assets/go.9fc4a848.js deleted file mode 100644 index 2ae463e81..000000000 --- a/site/themes/template/static/live-editor/assets/go.9fc4a848.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"}]},n={defaultToken:"",tokenPostfix:".go",keywords:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var","bool","true","false","uint8","uint16","uint32","uint64","int8","int16","int32","int64","float32","float64","complex64","complex128","byte","rune","uint","int","uintptr","string","nil"],operators:["+","-","*","/","%","&","|","^","<<",">>","&^","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>=","&^=","&&","||","<-","++","--","==","<",">","=","!","!=","<=",">=",":=","...","(",")","","]","{","}",",",";",".",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex"],[/0[0-7']*[0-7]/,"number.octal"],[/0[bB][0-1']*[0-1]/,"number.binary"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/`/,"string","@rawstring"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],rawstring:[[/[^\`]/,"string"],[/`/,"string","@pop"]]}};export{e as conf,n as language}; diff --git a/site/themes/template/static/live-editor/assets/graphql.b91e00d5.js b/site/themes/template/static/live-editor/assets/graphql.b91e00d5.js deleted file mode 100644 index a25cb935e..000000000 --- a/site/themes/template/static/live-editor/assets/graphql.b91e00d5.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""',notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"""',close:'"""'},{open:'"',close:'"'}],folding:{offSide:!0}},n={defaultToken:"invalid",tokenPostfix:".gql",keywords:["null","true","false","query","mutation","subscription","extend","schema","directive","scalar","type","interface","union","enum","input","implements","fragment","on"],typeKeywords:["Int","Float","String","Boolean","ID"],directiveLocations:["SCHEMA","SCALAR","OBJECT","FIELD_DEFINITION","ARGUMENT_DEFINITION","INTERFACE","UNION","ENUM","ENUM_VALUE","INPUT_OBJECT","INPUT_FIELD_DEFINITION","QUERY","MUTATION","SUBSCRIPTION","FIELD","FRAGMENT_DEFINITION","FRAGMENT_SPREAD","INLINE_FRAGMENT","VARIABLE_DEFINITION"],operators:["=","!","?",":","&","|"],symbols:/[=!?:&|]+/,escapes:/\\(?:["\\\/bfnrt]|u[0-9A-Fa-f]{4})/,tokenizer:{root:[[/[a-z_][\w$]*/,{cases:{"@keywords":"keyword","@default":"key.identifier"}}],[/[$][\w$]*/,{cases:{"@keywords":"keyword","@default":"argument.identifier"}}],[/[A-Z][\w\$]*/,{cases:{"@typeKeywords":"keyword","@default":"type.identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,{token:"annotation",log:"annotation token: $0"}],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"],[/"""/,{token:"string",next:"@mlstring",nextEmbedded:"markdown"}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}]],mlstring:[[/[^"]+/,"string"],['"""',{token:"string",next:"@pop",nextEmbedded:"@pop"}]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,""],[/#.*$/,"comment"]]}};export{e as conf,n as language}; diff --git a/site/themes/template/static/live-editor/assets/handlebars.c524f5e1.js b/site/themes/template/static/live-editor/assets/handlebars.c524f5e1.js deleted file mode 100644 index 1ca31b303..000000000 --- a/site/themes/template/static/live-editor/assets/handlebars.c524f5e1.js +++ /dev/null @@ -1 +0,0 @@ -import{T as e}from"./vendor.394d6d4c.js";var t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],a={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:["{{!--","--}}"]},brackets:[[""],["<",">"],["{{","}}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:"+t.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:"+t.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/\{\{!--/,"comment.block.start.handlebars","@commentBlock"],[/\{\{!/,"comment.start.handlebars","@comment"],[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)(\w+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/\}\}/,"comment.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentBlock:[[/--\}\}/,"comment.block.end.handlebars","@pop"],[/./,"comment.content.handlebars"]],commentHtml:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/\{\{/,{token:"@rematch",switchTo:"@handlebarsInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],handlebarsInSimpleState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3"}],{include:"handlebarsRoot"}],handlebarsInEmbeddedState:[[/\{\{\{?/,"delimiter.handlebars"],[/\}\}\}?/,{token:"delimiter.handlebars",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"handlebarsRoot"}],handlebarsRoot:[[/"[^"]*"/,"string.handlebars"],[/[#/][^\s}]+/,"keyword.helper.handlebars"],[/else\b/,"keyword.helper.handlebars"],[/[\s]+/],[/[^}]/,"variable.parameter.handlebars"]]}};export{a as conf,r as language}; diff --git a/site/themes/template/static/live-editor/assets/hcl.a5a1e28c.js b/site/themes/template/static/live-editor/assets/hcl.a5a1e28c.js deleted file mode 100644 index 1dd222a49..000000000 --- a/site/themes/template/static/live-editor/assets/hcl.a5a1e28c.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"#",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},t={defaultToken:"",tokenPostfix:".hcl",keywords:["var","local","path","for_each","any","string","number","bool","true","false","null","if ","else ","endif ","for ","in","endfor"],operators:["=",">=","<=","==","!=","+","-","*","/","%","&&","||","!","<",">","?","...",":"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d[\d']*/,"number"],[/\d/,"number"],[/[;,.]/,"delimiter"],[/"/,"string","@string"],[/'/,"invalid"]],heredoc:[[/<<[-]*\s*["]?([\w\-]+)["]?/,{token:"string.heredoc.delimiter",next:"@heredocBody.$1"}]],heredocBody:[[/([\w\-]+)$/,{cases:{"$1==$S2":[{token:"string.heredoc.delimiter",next:"@popall"}],"@default":"string.heredoc"}}],[/./,"string.heredoc"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"],[/#.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],string:[[/\$\{/,{token:"delimiter",next:"@stringExpression"}],[/[^\\"\$]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@popall"]],stringInsideExpression:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],stringExpression:[[/\}/,{token:"delimiter",next:"@pop"}],[/"/,"string","@stringInsideExpression"],{include:"@terraform"}]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/html.e6f64454.js b/site/themes/template/static/live-editor/assets/html.e6f64454.js deleted file mode 100644 index a89798c0f..000000000 --- a/site/themes/template/static/live-editor/assets/html.e6f64454.js +++ /dev/null @@ -1 +0,0 @@ -import{T as e}from"./vendor.394d6d4c.js";var t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],i={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[""]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:"+t.join("|")+"))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:"+t.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:e.IndentAction.Indent}}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},r={defaultToken:"",tokenPostfix:".html",ignoreCase:!0,tokenizer:{root:[[/)/,["delimiter","tag","","delimiter"]],[/(<)(script)/,["delimiter",{token:"tag",next:"@script"}]],[/(<)(style)/,["delimiter",{token:"tag",next:"@style"}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,["delimiter",{token:"tag",next:"@otherTag"}]],[/]+/,"metatag.content"],[/>/,"metatag","@pop"]],comment:[[/-->/,"comment","@pop"],[/[^-]+/,"comment.content"],[/./,"comment.content"]],otherTag:[[/\/?>/,"delimiter","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],scriptAfterType:[[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@scriptEmbedded",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/>/,{token:"delimiter",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]],style:[[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter","tag",{token:"delimiter",next:"@pop"}]]],styleAfterType:[[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter",next:"@styleEmbedded",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/>/,{token:"delimiter",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}],[/[^<]+/,""]]}};export{i as conf,r as language}; diff --git a/site/themes/template/static/live-editor/assets/htmlMode.4d192264.js b/site/themes/template/static/live-editor/assets/htmlMode.4d192264.js deleted file mode 100644 index d365e5037..000000000 --- a/site/themes/template/static/live-editor/assets/htmlMode.4d192264.js +++ /dev/null @@ -1,4 +0,0 @@ -import{K as Oe,V as G,T as f,U as Xe}from"./vendor.394d6d4c.js";var $e=2*60*1e3,J=function(){function n(r){var i=this;this._defaults=r,this._worker=null,this._idleCheckInterval=window.setInterval(function(){return i._checkIfIdle()},30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(function(){return i._stopWorker()})}return n.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},n.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},n.prototype._checkIfIdle=function(){if(!!this._worker){var r=Date.now()-this._lastUsedTime;r>$e&&this._stopWorker()}},n.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=Oe.createWebWorker({moduleId:"vs/language/html/htmlWorker",createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._client=this._worker.getProxy()),this._client},n.prototype.getLanguageServiceWorker=function(){for(var r=this,i=[],t=0;t0&&(s.arguments=a),s}n.create=r;function i(t){var e=t;return o.defined(e)&&o.string(e.title)&&o.string(e.command)}n.is=i})(I||(I={}));var E;(function(n){function r(a,u){return{range:a,newText:u}}n.replace=r;function i(a,u){return{range:{start:a,end:a},newText:u}}n.insert=i;function t(a){return{range:a,newText:""}}n.del=t;function e(a){var u=a;return o.objectLiteral(u)&&o.string(u.newText)&&m.is(u.range)}n.is=e})(E||(E={}));var C;(function(n){function r(t,e,a){var u={label:t};return e!==void 0&&(u.needsConfirmation=e),a!==void 0&&(u.description=a),u}n.create=r;function i(t){var e=t;return e!==void 0&&o.objectLiteral(e)&&o.string(e.label)&&(o.boolean(e.needsConfirmation)||e.needsConfirmation===void 0)&&(o.string(e.description)||e.description===void 0)}n.is=i})(C||(C={}));var w;(function(n){function r(i){var t=i;return typeof t=="string"}n.is=r})(w||(w={}));var x;(function(n){function r(a,u,s){return{range:a,newText:u,annotationId:s}}n.replace=r;function i(a,u,s){return{range:{start:a,end:a},newText:u,annotationId:s}}n.insert=i;function t(a,u){return{range:a,newText:"",annotationId:u}}n.del=t;function e(a){var u=a;return E.is(u)&&(C.is(u.annotationId)||w.is(u.annotationId))}n.is=e})(x||(x={}));var W;(function(n){function r(t,e){return{textDocument:t,edits:e}}n.create=r;function i(t){var e=t;return o.defined(e)&&U.is(e.textDocument)&&Array.isArray(e.edits)}n.is=i})(W||(W={}));var P;(function(n){function r(t,e,a){var u={kind:"create",uri:t};return e!==void 0&&(e.overwrite!==void 0||e.ignoreIfExists!==void 0)&&(u.options=e),a!==void 0&&(u.annotationId=a),u}n.create=r;function i(t){var e=t;return e&&e.kind==="create"&&o.string(e.uri)&&(e.options===void 0||(e.options.overwrite===void 0||o.boolean(e.options.overwrite))&&(e.options.ignoreIfExists===void 0||o.boolean(e.options.ignoreIfExists)))&&(e.annotationId===void 0||w.is(e.annotationId))}n.is=i})(P||(P={}));var F;(function(n){function r(t,e,a,u){var s={kind:"rename",oldUri:t,newUri:e};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(s.options=a),u!==void 0&&(s.annotationId=u),s}n.create=r;function i(t){var e=t;return e&&e.kind==="rename"&&o.string(e.oldUri)&&o.string(e.newUri)&&(e.options===void 0||(e.options.overwrite===void 0||o.boolean(e.options.overwrite))&&(e.options.ignoreIfExists===void 0||o.boolean(e.options.ignoreIfExists)))&&(e.annotationId===void 0||w.is(e.annotationId))}n.is=i})(F||(F={}));var T;(function(n){function r(t,e,a){var u={kind:"delete",uri:t};return e!==void 0&&(e.recursive!==void 0||e.ignoreIfNotExists!==void 0)&&(u.options=e),a!==void 0&&(u.annotationId=a),u}n.create=r;function i(t){var e=t;return e&&e.kind==="delete"&&o.string(e.uri)&&(e.options===void 0||(e.options.recursive===void 0||o.boolean(e.options.recursive))&&(e.options.ignoreIfNotExists===void 0||o.boolean(e.options.ignoreIfNotExists)))&&(e.annotationId===void 0||w.is(e.annotationId))}n.is=i})(T||(T={}));var X;(function(n){function r(i){var t=i;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(function(e){return o.string(e.kind)?P.is(e)||F.is(e)||T.is(e):W.is(e)}))}n.is=r})(X||(X={}));var N=function(){function n(r,i){this.edits=r,this.changeAnnotations=i}return n.prototype.insert=function(r,i,t){var e,a;if(t===void 0?e=E.insert(r,i):w.is(t)?(a=t,e=x.insert(r,i,t)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(t),e=x.insert(r,i,a)),this.edits.push(e),a!==void 0)return a},n.prototype.replace=function(r,i,t){var e,a;if(t===void 0?e=E.replace(r,i):w.is(t)?(a=t,e=x.replace(r,i,t)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(t),e=x.replace(r,i,a)),this.edits.push(e),a!==void 0)return a},n.prototype.delete=function(r,i){var t,e;if(i===void 0?t=E.del(r):w.is(i)?(e=i,t=x.del(r,i)):(this.assertChangeAnnotations(this.changeAnnotations),e=this.changeAnnotations.manage(i),t=x.del(r,e)),this.edits.push(t),e!==void 0)return e},n.prototype.add=function(r){this.edits.push(r)},n.prototype.all=function(){return this.edits},n.prototype.clear=function(){this.edits.splice(0,this.edits.length)},n.prototype.assertChangeAnnotations=function(r){if(r===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},n}(),ae=function(){function n(r){this._annotations=r===void 0?Object.create(null):r,this._counter=0,this._size=0}return n.prototype.all=function(){return this._annotations},Object.defineProperty(n.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),n.prototype.manage=function(r,i){var t;if(w.is(r)?t=r:(t=this.nextId(),i=r),this._annotations[t]!==void 0)throw new Error("Id "+t+" is already in use.");if(i===void 0)throw new Error("No annotation provided for id "+t);return this._annotations[t]=i,this._size++,t},n.prototype.nextId=function(){return this._counter++,this._counter.toString()},n}();(function(){function n(r){var i=this;this._textEditChanges=Object.create(null),r!==void 0?(this._workspaceEdit=r,r.documentChanges?(this._changeAnnotations=new ae(r.changeAnnotations),r.changeAnnotations=this._changeAnnotations.all(),r.documentChanges.forEach(function(t){if(W.is(t)){var e=new N(t.edits,i._changeAnnotations);i._textEditChanges[t.textDocument.uri]=e}})):r.changes&&Object.keys(r.changes).forEach(function(t){var e=new N(r.changes[t]);i._textEditChanges[t]=e})):this._workspaceEdit={}}return Object.defineProperty(n.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),n.prototype.getTextEditChange=function(r){if(U.is(r)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var i={uri:r.uri,version:r.version},t=this._textEditChanges[i.uri];if(!t){var e=[],a={textDocument:i,edits:e};this._workspaceEdit.documentChanges.push(a),t=new N(e,this._changeAnnotations),this._textEditChanges[i.uri]=t}return t}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var t=this._textEditChanges[r];if(!t){var e=[];this._workspaceEdit.changes[r]=e,t=new N(e),this._textEditChanges[r]=t}return t}},n.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new ae,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},n.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},n.prototype.createFile=function(r,i,t){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var e;C.is(i)||w.is(i)?e=i:t=i;var a,u;if(e===void 0?a=P.create(r,t):(u=w.is(e)?e:this._changeAnnotations.manage(e),a=P.create(r,t,u)),this._workspaceEdit.documentChanges.push(a),u!==void 0)return u},n.prototype.renameFile=function(r,i,t,e){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var a;C.is(t)||w.is(t)?a=t:e=t;var u,s;if(a===void 0?u=F.create(r,i,e):(s=w.is(a)?a:this._changeAnnotations.manage(a),u=F.create(r,i,e,s)),this._workspaceEdit.documentChanges.push(u),s!==void 0)return s},n.prototype.deleteFile=function(r,i,t){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var e;C.is(i)||w.is(i)?e=i:t=i;var a,u;if(e===void 0?a=T.create(r,t):(u=w.is(e)?e:this._changeAnnotations.manage(e),a=T.create(r,t,u)),this._workspaceEdit.documentChanges.push(a),u!==void 0)return u},n})();var ue;(function(n){function r(t){return{uri:t}}n.create=r;function i(t){var e=t;return o.defined(e)&&o.string(e.uri)}n.is=i})(ue||(ue={}));var oe;(function(n){function r(t,e){return{uri:t,version:e}}n.create=r;function i(t){var e=t;return o.defined(e)&&o.string(e.uri)&&o.integer(e.version)}n.is=i})(oe||(oe={}));var U;(function(n){function r(t,e){return{uri:t,version:e}}n.create=r;function i(t){var e=t;return o.defined(e)&&o.string(e.uri)&&(e.version===null||o.integer(e.version))}n.is=i})(U||(U={}));var se;(function(n){function r(t,e,a,u){return{uri:t,languageId:e,version:a,text:u}}n.create=r;function i(t){var e=t;return o.defined(e)&&o.string(e.uri)&&o.string(e.languageId)&&o.integer(e.version)&&o.string(e.text)}n.is=i})(se||(se={}));var D;(function(n){n.PlainText="plaintext",n.Markdown="markdown"})(D||(D={}));(function(n){function r(i){var t=i;return t===n.PlainText||t===n.Markdown}n.is=r})(D||(D={}));var $;(function(n){function r(i){var t=i;return o.objectLiteral(i)&&D.is(t.kind)&&o.string(t.value)}n.is=r})($||($={}));var h;(function(n){n.Text=1,n.Method=2,n.Function=3,n.Constructor=4,n.Field=5,n.Variable=6,n.Class=7,n.Interface=8,n.Module=9,n.Property=10,n.Unit=11,n.Value=12,n.Enum=13,n.Keyword=14,n.Snippet=15,n.Color=16,n.File=17,n.Reference=18,n.Folder=19,n.EnumMember=20,n.Constant=21,n.Struct=22,n.Event=23,n.Operator=24,n.TypeParameter=25})(h||(h={}));var B;(function(n){n.PlainText=1,n.Snippet=2})(B||(B={}));var ce;(function(n){n.Deprecated=1})(ce||(ce={}));var de;(function(n){function r(t,e,a){return{newText:t,insert:e,replace:a}}n.create=r;function i(t){var e=t;return e&&o.string(e.newText)&&m.is(e.insert)&&m.is(e.replace)}n.is=i})(de||(de={}));var fe;(function(n){n.asIs=1,n.adjustIndentation=2})(fe||(fe={}));var ge;(function(n){function r(i){return{label:i}}n.create=r})(ge||(ge={}));var le;(function(n){function r(i,t){return{items:i||[],isIncomplete:!!t}}n.create=r})(le||(le={}));var H;(function(n){function r(t){return t.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}n.fromPlainText=r;function i(t){var e=t;return o.string(e)||o.objectLiteral(e)&&o.string(e.language)&&o.string(e.value)}n.is=i})(H||(H={}));var he;(function(n){function r(i){var t=i;return!!t&&o.objectLiteral(t)&&($.is(t.contents)||H.is(t.contents)||o.typedArray(t.contents,H.is))&&(i.range===void 0||m.is(i.range))}n.is=r})(he||(he={}));var ve;(function(n){function r(i,t){return t?{label:i,documentation:t}:{label:i}}n.create=r})(ve||(ve={}));var pe;(function(n){function r(i,t){for(var e=[],a=2;a=0;d--){var p=g[d],b=a.offsetAt(p.range.start),c=a.offsetAt(p.range.end);if(c<=l)s=s.substring(0,b)+p.newText+s.substring(c,s.length);else throw new Error("Overlapping edit");l=b}return s}n.applyEdits=t;function e(a,u){if(a.length<=1)return a;var s=a.length/2|0,g=a.slice(0,s),l=a.slice(s);e(g,u),e(l,u);for(var d=0,p=0,b=0;d0&&r.push(i.length),this._lineOffsets=r}return this._lineOffsets},n.prototype.positionAt=function(r){r=Math.max(Math.min(r,this._content.length),0);var i=this.getLineOffsets(),t=0,e=i.length;if(e===0)return k.create(0,r);for(;tr?e=a:t=a+1}var u=t-1;return k.create(u,r-i[u])},n.prototype.offsetAt=function(r){var i=this.getLineOffsets();if(r.line>=i.length)return this._content.length;if(r.line<0)return 0;var t=i[r.line],e=r.line+1e in t?ge(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,V=(t,e)=>{for(var r in e||(e={}))he.call(e,r)&&Q(t,r,e[r]);if(X)for(var r of X(e))ye.call(e,r)&&Q(t,r,e[r]);return t};import{S as M,i as P,s as D,c as ee,e as d,a as I,b as f,d as W,f as h,g as k,u as te,h as re,j as ne,t as x,k as T,l as y,o as Z,m as H,n as S,r as se,p as be,q as j,v as K,w as G,x as ve,y as we,z as ke,A as _e,B as E,C as N,D as A,E as q,F as Ce,G as xe,H as Y,I as Se,J as $e,U as oe,K as C,L as ae,M as Te,N as Ie,O as Le,P as Me,Q as Pe,R as De,T as b,V as ie,W as Re,X as Ee,Y as v,Z as w,_ as z,$ as B,a0 as Ne,a1 as Ae,a2 as Fe,a3 as Oe,a4 as je}from"./vendor.394d6d4c.js";const Ke=function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))n(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function r(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerpolicy&&(o.referrerPolicy=s.referrerpolicy),s.crossorigin==="use-credentials"?o.credentials="include":s.crossorigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(s){if(s.ep)return;s.ep=!0;const o=r(s);fetch(s.href,o)}};Ke();const qe=t=>({}),ce=t=>({}),ze=t=>({}),le=t=>({});function Ue(t){let e;return{c(){e=d("div"),e.innerHTML="missing <slot="left">",W(e,"text-align","center")},m(r,n){h(r,e,n)},d(r){r&&y(e)}}}function Ve(t){let e;return{c(){e=d("em"),e.textContent='missing '},m(r,n){h(r,e,n)},d(r){r&&y(e)}}}function We(t){let e,r,n,s,o,i,a,c;const l=t[4].left,m=ee(l,t,t[3],le),u=m||Ue(),p=t[4].right,$=ee(p,t,t[3],ce),L=$||Ve();return{c(){e=d("div"),r=d("div"),u&&u.c(),n=I(),s=d("div"),o=I(),i=d("div"),a=d("div"),L&&L.c(),f(r,"class","hidden md:flex flex-col"),W(r,"width",t[2]),f(s,"id","resizeHandler"),f(s,"class","hover:bg-sky-400 bg-sky-700 cursor-col-resize pr-1"),W(a,"text-align","center"),f(i,"class","flex-1 flex flex-col overflow-hidden"),f(e,"class","flex-1 flex overflow-hidden")},m(g,R){h(g,e,R),k(e,r),u&&u.m(r,null),t[5](r),k(e,n),k(e,s),t[6](s),k(e,o),k(e,i),k(i,a),L&&L.m(a,null),c=!0},p(g,[R]){m&&m.p&&(!c||R&8)&&te(m,l,g,g[3],c?ne(l,g[3],R,ze):re(g[3]),le),(!c||R&4)&&W(r,"width",g[2]),$&&$.p&&(!c||R&8)&&te($,p,g,g[3],c?ne(p,g[3],R,qe):re(g[3]),ce)},i(g){c||(x(u,g),x(L,g),c=!0)},o(g){T(u,g),T(L,g),c=!1},d(g){g&&y(e),u&&u.d(g),t[5](null),t[6](null),L&&L.d(g)}}}function He(t,e,r){let{$$slots:n={},$$scope:s}=e,o,i,a="50%";const c=p=>{const $=p.pageX-i.getBoundingClientRect().left;$>50&&r(2,a=`${$}px`)},l=()=>{window.removeEventListener("mousemove",c)};Z(()=>{o.addEventListener("mousedown",p=>{p.preventDefault(),window.addEventListener("mousemove",c),window.addEventListener("mouseup",l)})});function m(p){H[p?"unshift":"push"](()=>{i=p,r(1,i)})}function u(p){H[p?"unshift":"push"](()=>{o=p,r(0,o)})}return t.$$set=p=>{"$$scope"in p&&r(3,s=p.$$scope)},[o,i,a,s,n,m,u]}class Be extends M{constructor(e){super();P(this,e,He,We,D,{})}}function Ze(t){let e,r;return{c(){e=d("pre"),f(e,"class",r=t[1].class)},m(n,s){h(n,e,s),t[3](e)},p(n,[s]){s&2&&r!==(r=n[1].class)&&f(e,"class",r)},i:S,o:S,d(n){n&&y(e),t[3](null)}}}function Ge(t,e,r){let{doc:n=""}=e,s=null;se.initialize({startOnLoad:!1,theme:"forest"});const o=()=>{try{se.mermaidAPI.render("graph-div",n,a=>{r(0,s.innerHTML=a,s)})}catch{}};Z(()=>{o()}),be(()=>{o()});function i(a){H[a?"unshift":"push"](()=>{s=a,r(0,s)})}return t.$$set=a=>{r(1,e=j(j({},e),K(a))),"doc"in a&&r(2,n=a.doc)},e=K(e),[s,e,n,i]}class Ye extends M{constructor(e){super();P(this,e,Ge,Ze,D,{doc:2})}}const Je=t=>{let e=["flowchart RL","classDef not-found fill:#f66;"],r={};return t.spec.resources&&t.spec.resources.forEach(n=>{if(!n.name)return;let s=`res-${n.name}`,o=`${n.name}`;r[s]=o,e.push(`${s}["${o}"]`),["sources","images","configs"].forEach((i,a)=>{n[i]&&n[i].forEach(c=>{if(r[`res-${c.resource}`])e.push(`${s} --> res-${c.resource}`);else{let l=`not-found-${c.resource}-${a}`;e.push(`${s} --> ${l}`),e.push(`${l}["not-found"]`),e.push(`class ${l} not-found`)}})})}),e.join(` -`)},F=_e(`--- -apiVersion: carto.run/v1alpha1 -kind: ClusterSupplyChain -metadata: - name: supply-chain -spec: - selector: - app.tanzu.vmware.com/workload-type: web - - resources: - - name: source-provider - templateRef: - kind: ClusterSourceTemplate - options: - - name: from-git - selector: - matchFields: - - key: spec.source.git - operator: Exists - - name: from-repo - selector: - matchFields: - - key: spec.source.image - operator: Exists - - - name: image-builder - templateRef: - kind: ClusterImageTemplate - name: image - params: - - name: image_prefix - value: "pref-" - sources: - - resource: source-provider - name: source - - - name: config-provider - templateRef: - kind: ClusterConfigTemplate - name: app-config - images: - - resource: image-builder - name: image - - - name: git-writer - templateRef: - kind: ClusterTemplate - name: git-writer - configs: - - resource: config-provider - name: data - -`),Xe=G(F,t=>{try{return ve(t)}catch(e){console.log(`could not parse to yaml object: ${e}`)}}),Qe=G(F,t=>{try{let e=new TextEncoder().encode(t),r=we(e,{options:9});return ke(r,!0)}catch(e){console.log(`could not compress document: ${e}`)}}),et=G(Xe,(t,e)=>{try{e(Je(t))}catch(r){console.log(`could not parse to mermaid: ${r}`)}});function tt(t){let e,r;return e=new Ye({props:{doc:t[0],class:t[1].class}}),{c(){E(e.$$.fragment)},m(n,s){N(e,n,s),r=!0},p(n,[s]){const o={};s&1&&(o.doc=n[0]),s&2&&(o.class=n[1].class),e.$set(o)},i(n){r||(x(e.$$.fragment,n),r=!0)},o(n){T(e.$$.fragment,n),r=!1},d(n){A(e,n)}}}function rt(t,e,r){let n;return q(t,et,s=>r(0,n=s)),t.$$set=s=>{r(1,e=j(j({},e),K(s)))},e=K(e),[n,e]}class nt extends M{constructor(e){super();P(this,e,rt,tt,D,{})}}function st(t){let e,r,n,s,o,i,a;return{c(){e=d("h1"),e.innerHTML='Cartographer Live Editor Help',r=I(),n=d("p"),n.innerHTML=`This editor is a spike to gauge interest and investigate the possibilities. - - Provide feedback by commenting on the - original issue, but please make sure you don't report - something already captured.`,s=I(),o=d("h2"),o.textContent="Shortcuts",i=I(),a=d("div"),a.innerHTML=`
Autocomplete
-
Ctrl + Space
-
Show info
-
Cmd + K, Cmd + I
-
Command Palette
-
F1
`,f(e,"class","text-md pb-2"),f(n,"class","text-sm pt-1"),f(o,"class","text-md pt-3 pb-2"),f(a,"class","grid grid-cols-2 gap-x-3 gap-y-3 w-full text-sm")},m(c,l){h(c,e,l),h(c,r,l),h(c,n,l),h(c,s,l),h(c,o,l),h(c,i,l),h(c,a,l)},p:S,i:S,o:S,d(c){c&&y(e),c&&y(r),c&&y(n),c&&y(s),c&&y(o),c&&y(i),c&&y(a)}}}function ot(t){return navigator.platform.toUpperCase().indexOf("MAC")>=0,[]}class at extends M{constructor(e){super();P(this,e,ot,st,D,{})}}function it(t){let e,r,n,s,o;return{c(){e=d("h1"),e.innerHTML='Link copied to clipboard!',r=I(),n=d("form"),s=d("input"),o=Ce(` - was copied to your clipboard!`),f(e,"class","text-md pb-2"),f(s,"class","p-2 border-2 border-sky-700 w-full"),f(s,"type","text"),s.value=window.location.href},m(i,a){h(i,e,a),h(i,r,a),h(i,n,a),k(n,s),k(n,o)},p:S,i:S,o:S,d(i){i&&y(e),i&&y(r),i&&y(n)}}}class ct extends M{constructor(e){super();P(this,e,null,it,D,{})}}function lt(t){let e,r,n;return{c(){e=d("button"),e.textContent="Share",f(e,"class","text-lg no-underline text-grey-darkest hover:text-orange-300 ml-2")},m(s,o){h(s,e,o),r||(n=Y(e,"click",function(){$e(t[7])&&t[7].apply(this,arguments)}),r=!0)},p(s,o){t=s},d(s){s&&y(e),r=!1,n()}}}function ut(t){let e,r,n,s,o,i,a,c,l,m;return o=new xe({props:{text:t[0],$$slots:{default:[lt,({copy:u})=>({7:u}),({copy:u})=>u?128:0]},$$scope:{ctx:t}}}),o.$on("copy",t[3]),o.$on("fail",t[4]),{c(){e=d("nav"),r=d("div"),r.innerHTML=`

Cartographer Live Editor

- \xA0\xA0 -

v0.0.1

`,n=I(),s=d("div"),E(o.$$.fragment),i=I(),a=d("button"),a.textContent="Help",f(r,"class","mb-2 sm:mb-0 flex sm:items-baseline"),f(a,"class","text-lg no-underline text-grey-darkest hover:text-orange-300 ml-2"),f(e,"class","font-sans flex flex-col text-center sm:flex-row sm:text-left sm:justify-between py-2 px-6 bg-sky-700 text-sky-50 shadow sm:items-baseline w-full")},m(u,p){h(u,e,p),k(e,r),k(e,n),k(e,s),N(o,s,null),k(s,i),k(s,a),c=!0,l||(m=Y(a,"click",t[5]),l=!0)},p(u,[p]){const $={};p&1&&($.text=u[0]),p&384&&($.$$scope={dirty:p,ctx:u}),o.$set($)},i(u){c||(x(o.$$.fragment,u),c=!0)},o(u){T(o.$$.fragment,u),c=!1},d(u){u&&y(e),A(o),l=!1,m()}}}function dt(t,e,r){let n;q(t,F,m=>r(2,n=m));const{open:s}=Se("simple-modal");let o;const i=()=>window.location.href,a=()=>s(ct),c=()=>alert("Something went wrong with the copy to clipboard, sorry!"),l=()=>s(at);return t.$$.update=()=>{t.$$.dirty&4&&r(0,o=i())},[o,s,n,a,c,l]}class mt extends M{constructor(e){super();P(this,e,dt,ut,D,{})}}function pt(t){let e,r;return{c(){e=d("div"),f(e,"class",r="monaco-editor-container "+t[1].class+" svelte-oc3rgm")},m(n,s){h(n,e,s),t[2](e)},p(n,[s]){s&2&&r!==(r="monaco-editor-container "+n[1].class+" svelte-oc3rgm")&&f(e,"class",r)},i:S,o:S,d(n){n&&y(e),t[2](null)}}}function ft(t,e,r){let n;q(t,F,l=>r(4,n=l));let s,o;const i=oe.parse("https://cartographer.sh/file.yaml"),a=C.getModel(i)||C.createModel("","yaml",i);Z(()=>{a.setValue(n),s=C.create(o,{automaticLayout:!0,model:a}),s.onDidChangeModelContent(l=>{ae(F,n=s.getValue(),n)})});function c(l){H[l?"unshift":"push"](()=>{o=l,r(0,o)})}return t.$$set=l=>{r(1,e=j(j({},e),K(l)))},e=K(e),[o,e,c]}class gt extends M{constructor(e){super();P(this,e,ft,pt,D,{})}}const{window:ht}=Ie;function ue(t){let e,r;return e=new Be({props:{$$slots:{right:[bt],left:[yt]},$$scope:{ctx:t}}}),{c(){E(e.$$.fragment)},m(n,s){N(e,n,s),r=!0},i(n){r||(x(e.$$.fragment,n),r=!0)},o(n){T(e.$$.fragment,n),r=!1},d(n){A(e,n)}}}function yt(t){let e,r;return e=new gt({props:{slot:"left",class:"h-full m-2"}}),{c(){E(e.$$.fragment)},m(n,s){N(e,n,s),r=!0},p:S,i(n){r||(x(e.$$.fragment,n),r=!0)},o(n){T(e.$$.fragment,n),r=!1},d(n){A(e,n)}}}function bt(t){let e,r;return e=new nt({props:{slot:"right",class:"content-center"}}),{c(){E(e.$$.fragment)},m(n,s){N(e,n,s),r=!0},p:S,i(n){r||(x(e.$$.fragment,n),r=!0)},o(n){T(e.$$.fragment,n),r=!1},d(n){A(e,n)}}}function vt(t){let e,r,n,s;r=new mt({});let o=t[0]&&ue(t);return{c(){e=d("div"),E(r.$$.fragment),n=I(),o&&o.c(),f(e,"class","h-full flex flex-col overflow-hidden")},m(i,a){h(i,e,a),N(r,e,null),k(e,n),o&&o.m(e,null),s=!0},p(i,a){i[0]?o?a&1&&x(o,1):(o=ue(i),o.c(),x(o,1),o.m(e,null)):o&&(Le(),T(o,1,1,()=>{o=null}),Me())},i(i){s||(x(r.$$.fragment,i),x(o),s=!0)},o(i){T(r.$$.fragment,i),T(o),s=!1},d(i){i&&y(e),A(r),o&&o.d()}}}function wt(t){let e,r,n,s,o;return r=new Te({props:{unstyled:!0,closeButton:!1,classBg:"fixed top-0 left-0 w-screen h-screen flex flex-col justify-center bg-gray-400/[.6] z-50",classWindowWrap:"relative m-2 max-h-full",classWindow:"relative w-1/3 max-w-full max-h-full my-2 mx-auto text-black border border-sky-600 shadow-lg bg-white",classContent:"relative p-2 overflow-auto",$$slots:{default:[vt]},$$scope:{ctx:t}}}),{c(){e=d("main"),E(r.$$.fragment),f(e,"class","h-screen")},m(i,a){h(i,e,a),N(r,e,null),n=!0,s||(o=Y(ht,"load",t[1]),s=!0)},p(i,[a]){const c={};a&33&&(c.$$scope={dirty:a,ctx:i}),r.$set(c)},i(i){n||(x(r.$$.fragment,i),n=!0)},o(i){T(r.$$.fragment,i),n=!1},d(i){i&&y(e),A(r),s=!1,o()}}}function kt(t,e,r){let n,s;q(t,F,c=>r(3,n=c)),q(t,Qe,c=>r(2,s=c));let o=!1;const i=(c,l)=>{if(!c||!l)return;let m=new URL(window.location.href);m.searchParams.set("pako",l),window.history.pushState("","",m)},a=()=>{let l=new URL(window.location.href).searchParams.get("pako");l&&ae(F,n=Pe(De(l),{to:"string"}),n),r(0,o=!0)};return t.$$.update=()=>{t.$$.dirty&5&&i(o,s)},[o,a,s]}class _t extends M{constructor(e){super();P(this,e,kt,wt,D,{})}}var _="yaml";function Ct(t){switch(t){case B.Error:return z.Error;case B.Warning:return z.Warning;case B.Information:return z.Info;case B.Hint:return z.Hint;default:return z.Info}}function xt(t){return{severity:Ct(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:String(t.code),source:t.source}}function St(t,e){const r=new Map,n=async a=>{(await t()).resetSchema(String(a))},s=async a=>{const m=(await(await t(a)).doValidation(String(a))).map(xt),u=C.getModel(a);u&&u.getLanguageId()===_&&C.setModelMarkers(u,_,m)},o=a=>{if(a.getLanguageId()!==_)return;let c;r.set(String(a.uri),a.onDidChangeContent(()=>{clearTimeout(c),c=setTimeout(()=>s(a.uri),500)})),s(a.uri)},i=a=>{C.setModelMarkers(a,_,[]);const c=String(a.uri),l=r.get(c);l&&(l.dispose(),r.delete(c))};C.onDidCreateModel(o),C.onWillDisposeModel(a=>{i(a),n(a.uri)}),C.onDidChangeModelLanguage(a=>{i(a.model),o(a.model),n(a.model.uri)}),e.onDidChange(()=>{for(const a of C.getModels())a.getLanguageId()===_&&(i(a),o(a))});for(const a of C.getModels())o(a)}function J(t){if(!!t)return{character:t.column-1,line:t.lineNumber-1}}function O(t){if(!!t)return new ie(t.start.line+1,t.start.character+1,t.end.line+1,t.end.character+1)}function $t(t){const e=b.CompletionItemKind;switch(t){case v.Text:return e.Text;case v.Method:return e.Method;case v.Function:return e.Function;case v.Constructor:return e.Constructor;case v.Field:return e.Field;case v.Variable:return e.Variable;case v.Class:return e.Class;case v.Interface:return e.Interface;case v.Module:return e.Module;case v.Property:return e.Property;case v.Unit:return e.Unit;case v.Value:return e.Value;case v.Enum:return e.Enum;case v.Keyword:return e.Keyword;case v.Snippet:return e.Snippet;case v.Color:return e.Color;case v.File:return e.File;case v.Reference:return e.Reference;default:return e.Property}}function de(t){if(!!t)return{range:O(t.range),text:t.newText}}function Tt(t){return{triggerCharacters:[" ",":"],async provideCompletionItems(e,r){const n=e.uri,o=await(await t(n)).doComplete(String(n),J(r));if(!o)return;const i=e.getWordUntilPosition(r),a=new ie(r.lineNumber,i.startColumn,r.lineNumber,i.endColumn),c=o.items.map(l=>{const m={label:l.label,insertText:l.insertText||l.label,sortText:l.sortText,filterText:l.filterText,documentation:l.documentation,detail:l.detail,kind:$t(l.kind),range:a};return l.textEdit&&(m.range=O("range"in l.textEdit?l.textEdit.range:l.textEdit.replace),m.insertText=l.textEdit.newText),l.additionalTextEdits&&(m.additionalTextEdits=l.additionalTextEdits.map(de)),l.insertTextFormat===Re.Snippet&&(m.insertTextRules=b.CompletionItemInsertTextRule.InsertAsSnippet),m});return{incomplete:o.isIncomplete,suggestions:c}}}}function It(t){return{async provideDefinition(e,r){const n=e.uri,o=await(await t(n)).doDefinition(String(n),J(r));return o==null?void 0:o.map(i=>({originSelectionRange:i.originSelectionRange,range:O(i.targetRange),targetSelectionRange:i.targetSelectionRange,uri:oe.parse(i.targetUri)}))}}}function Lt(t){return{async provideHover(e,r){const n=e.uri,o=await(await t(n)).doHover(String(n),J(r));if(!!o)return{range:O(o.range),contents:[{value:o.contents.value}]}}}}function Mt(t){const e=b.SymbolKind;switch(t){case w.File:return e.Array;case w.Module:return e.Module;case w.Namespace:return e.Namespace;case w.Package:return e.Package;case w.Class:return e.Class;case w.Method:return e.Method;case w.Property:return e.Property;case w.Field:return e.Field;case w.Constructor:return e.Constructor;case w.Enum:return e.Enum;case w.Interface:return e.Interface;case w.Function:return e.Function;case w.Variable:return e.Variable;case w.Constant:return e.Constant;case w.String:return e.String;case w.Number:return e.Number;case w.Boolean:return e.Boolean;case w.Array:return e.Array;default:return e.Function}}function me(t){return{detail:t.detail||"",range:O(t.range),name:t.name,kind:Mt(t.kind),selectionRange:O(t.selectionRange),children:t.children.map(me),tags:[]}}function Pt(t){return{async provideDocumentSymbols(e){const r=e.uri,s=await(await t(r)).findDocumentSymbols(String(r));if(!!s)return s.map(me)}}}function Dt(t){return V({tabSize:t.tabSize,insertSpaces:t.insertSpaces},t)}function Rt(t){return{async provideDocumentFormattingEdits(e,r){const n=e.uri,o=await(await t(n)).format(String(n),Dt(r));if(!(!o||o.length===0))return o.map(de)}}}function Et(t){return{range:O(t.range),tooltip:t.tooltip,url:t.target}}function Nt(t){return{async provideLinks(e){const r=e.uri;return{links:(await(await t(r)).findLinks(String(r))).map(Et)}}}}var At=2*60*1e3;function Ft(t){let e,r,n=0;const s=()=>{e&&(e.dispose(),e=void 0),r=void 0};setInterval(()=>{if(!e)return;Date.now()-n>At&&s()},30*1e3),t.onDidChange(()=>s());const o=()=>(n=Date.now(),r||(e=C.createWebWorker({moduleId:"vs/language/yaml/yamlWorker",label:t.languageId,createData:{languageSettings:t.diagnosticsOptions,enableSchemaRequest:t.diagnosticsOptions.enableSchemaRequest,isKubernetes:t.diagnosticsOptions.isKubernetes,customTags:t.diagnosticsOptions.customTags}}),r=e.getProxy()),r);return async(...i)=>{const a=await o();return await e.withSyncedResources(i),a}}var Ot={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:/:\s*$/,action:{indentAction:b.IndentAction.Indent}}]};function jt(t){const e=Ft(t);b.registerCompletionItemProvider(_,Tt(e)),b.registerHoverProvider(_,Lt(e)),b.registerDefinitionProvider(_,It(e)),b.registerDocumentSymbolProvider(_,Pt(e)),b.registerDocumentFormattingEditProvider(_,Rt(e)),b.registerLinkProvider(_,Nt(e)),St(e,t),b.setLanguageConfiguration(_,Ot)}var pe={completion:!0,customTags:[],enableSchemaRequest:!1,format:!0,isKubernetes:!1,hover:!0,schemas:[],validate:!0,yamlVersion:"1.2"};function Kt(t){const e=new Ee;let r=t;const n={get onDidChange(){return e.event},get languageId(){return _},get diagnosticsOptions(){return r},setDiagnosticsOptions(s){r=V(V({},pe),s),e.fire(n)}};return n}var fe=Kt(pe);function qt(){return{yamlDefaults:fe}}b.yaml=qt();b.register({id:_,extensions:[".yaml",".yml"],aliases:["YAML","yaml","YML","yml"],mimetypes:["application/x-yaml"]});b.onLanguage("yaml",()=>{jt(fe)});function zt(t={}){b.yaml.yamlDefaults.setDiagnosticsOptions(t)}function Ut(){return new Worker("/live-editor/assets/yaml.worker.241bdf2d.js",{type:"module"})}const Vt={properties:{apiVersion:{description:"APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",type:"string"},kind:{description:"Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",type:"string"},metadata:{type:"object"},spec:{description:"Spec describes the suppply chain. More info: https://cartographer.sh/docs/latest/reference/workload/#clustersupplychain",properties:{params:{description:"Additional parameters. See: https://cartographer.sh/docs/latest/architecture/#parameter-hierarchy",items:{properties:{default:{description:"DefaultValue of the parameter. Causes the parameter to be optional; If the Owner does not specify this parameter, this value is used.","x-kubernetes-preserve-unknown-fields":!0},name:{description:"Name of the parameter. Should match a template parameter name.",type:"string"},value:{description:"Value of the parameter. If specified, owner properties are ignored.","x-kubernetes-preserve-unknown-fields":!0}},required:["name"],type:"object"},type:"array"},resources:{description:"Resources that are responsible for bringing the application to a deliverable state.",items:{properties:{configs:{description:`Configs is a list of references to other 'config' resources in this list. A config resource has the kind ClusterConfigTemplate - In a template, configs can be consumed as: $(configs..config)$ - If there is only one image, it can be consumed as: $(config)$`,items:{properties:{name:{type:"string"},resource:{type:"string"}},required:["name","resource"],type:"object"},type:"array"},images:{description:`Images is a list of references to other 'image' resources in this list. An image resource has the kind ClusterImageTemplate - In a template, images can be consumed as: $(images..image)$ - If there is only one image, it can be consumed as: $(image)$`,items:{properties:{name:{type:"string"},resource:{type:"string"}},required:["name","resource"],type:"object"},type:"array"},name:{description:"Name of the resource. Used as a reference for inputs, as well as being the name presented in workload statuses to identify this resource.",type:"string"},params:{description:`Params are a list of parameters to provide to the template in TemplateRef Template params do not have to be specified here, unless you want to force a particular value, or add a default value. - Parameters are consumed in a template with the syntax: $(params.)$`,items:{properties:{default:{description:"DefaultValue of the parameter. Causes the parameter to be optional; If the Owner does not specify this parameter, this value is used.","x-kubernetes-preserve-unknown-fields":!0},name:{description:"Name of the parameter. Should match a template parameter name.",type:"string"},value:{description:"Value of the parameter. If specified, owner properties are ignored.","x-kubernetes-preserve-unknown-fields":!0}},required:["name"],type:"object"},type:"array"},sources:{description:`Sources is a list of references to other 'source' resources in this list. A source resource has the kind ClusterSourceTemplate - In a template, sources can be consumed as: $(sources..url)$ and $(sources..revision)$ - If there is only one source, it can be consumed as: $(source.url)$ and $(source.revision)$`,items:{properties:{name:{type:"string"},resource:{type:"string"}},required:["name","resource"],type:"object"},type:"array"},templateRef:{description:"TemplateRef identifies the template used to produce this resource",properties:{kind:{description:"Kind of the template to apply",enum:["ClusterSourceTemplate","ClusterImageTemplate","ClusterTemplate","ClusterConfigTemplate"],type:"string"},name:{description:"Name of the template to apply Only one of Name and Options can be specified.",minLength:1,type:"string"},options:{description:"Options is a list of template names and Selectors. The templates must all be of type Kind. A template will be selected if the workload matches the specified Selector. Only one template can be selected. Only one of Name and Options can be specified. Minimum number of items in list is two.",items:{properties:{name:{description:"Name of the template to apply",minLength:1,type:"string"},selector:{description:"Selector is a field query over a workload or deliverable resource.",properties:{matchFields:{description:"MatchFields is a list of field selector requirements. The requirements are ANDed.",items:{properties:{key:{description:'Key is the JSON path in the workload to match against. e.g. for workload: "workload.spec.source.git.url", e.g. for deliverable: "deliverable.spec.source.git.url"',minLength:1,type:"string"},operator:{description:"Operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.",enum:["In","NotIn","Exists","DoesNotExist"],type:"string"},values:{description:"Values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty.",items:{type:"string"},type:"array"}},required:["key","operator"],type:"object"},minItems:1,type:"array"}},required:["matchFields"],type:"object"}},required:["name","selector"],type:"object"},minItems:2,type:"array"}},required:["kind"],type:"object"}},required:["name","templateRef"],type:"object"},type:"array"},selector:{additionalProperties:{type:"string"},description:"Specifies the label key-value pairs used to select workloads See: https://cartographer.sh/docs/v0.1.0/architecture/#selectors",type:"object"},serviceAccountRef:{description:`ServiceAccountName refers to the Service account with permissions to create resources submitted by the supply chain. - If not set, Cartographer will use serviceAccountName from supply chain. - If that is also not set, Cartographer will use the default service account in the workload's namespace.`,properties:{name:{description:"Name of the service account being referred to",type:"string"},namespace:{description:"Namespace of the service account being referred to if omitted, the Owner's namespace is used.",type:"string"}},required:["name"],type:"object"}},required:["resources","selector"],type:"object"},status:{description:"Status conforms to the Kubernetes conventions: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#typical-status-properties",properties:{conditions:{items:{description:'Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct use as an array at the field path .status.conditions. For example, type FooStatus struct{ // Represents the observations of a foo\'s current state. // Known .status.conditions.type are: "Available", "Progressing", and "Degraded" // +patchMergeKey=type // +patchStrategy=merge // +listType=map // +listMapKey=type Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` \n // other fields }',properties:{lastTransitionTime:{description:"lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.",format:"date-time",type:"string"},message:{description:"message is a human readable message indicating details about the transition. This may be an empty string.",maxLength:32768,type:"string"},observedGeneration:{description:"observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.",format:"int64",minimum:0,type:"integer",maximum:9223372036854776e3},reason:{description:"reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.",maxLength:1024,minLength:1,pattern:"^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$",type:"string"},status:{description:"status of the condition, one of True, False, Unknown.",enum:["True","False","Unknown"],type:"string"},type:{description:"type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)",maxLength:316,pattern:"^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$",type:"string"}},required:["lastTransitionTime","message","reason","status","type"],type:"object"},type:"array"},observedGeneration:{format:"int64",type:"integer",minimum:-9223372036854776e3,maximum:9223372036854776e3}},type:"object"}},required:["metadata","spec"],type:"object",$schema:"http://json-schema.org/draft-04/schema#"};C.ITextModel;b.ProviderResult;b.CompletionList;b.CompletionItem;const Wt=/(config|image|source)s:/,Ht=(t,e)=>{if(t.getLineContent(e).search(/\s+resource:/)<0)return null;let s=e;for(;--s>0;){let i=t.getLineContent(s).match(Wt);if(i)return`Cluster${Ne(i[1])}Template`}return null},U=(t,e)=>t.items.find(r=>r.key.value===e),Bt=t=>U(t.contents,"spec"),Zt=t=>U(Bt(t).value,"resources"),Gt=t=>U(U(t,"templateRef").value,"kind").value.value,Yt=(t,e,r)=>{let n=t.getValue(),s=new Fe;try{let o=Ae(n,{keepSourceTokens:!0,lineCounter:s}),a=Zt(o).value.items.filter(c=>s.linePos(c.range[2]).line{let l=U(c,"name").value.value;return{insertText:l,kind:v.Reference,range:null,label:l}});return console.log(a),a}catch{}return[]},Jt=()=>{b.registerCompletionItemProvider("yaml",{triggerCharacters:[" "],provideCompletionItems(t,e){let r=Ht(t,e.lineNumber);return r?{incomplete:!0,suggestions:Yt(t,r,e)}:null}})};window.MonacoEnvironment={getWorker(t,e){switch(e){case"yaml":return new Ut;case"javascript":return new je;default:return new Oe}}};zt({enableSchemaRequest:!0,hover:!0,completion:!0,validate:!0,format:!0,schemas:[{fileMatch:["*.yaml"],schema:Vt}]});Jt();new _t({target:document.body}); diff --git a/site/themes/template/static/live-editor/assets/ini.ec5df2eb.js b/site/themes/template/static/live-editor/assets/ini.ec5df2eb.js deleted file mode 100644 index 3d763fb23..000000000 --- a/site/themes/template/static/live-editor/assets/ini.ec5df2eb.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},n={defaultToken:"",tokenPostfix:".ini",escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^\[[^\]]*\]/,"metatag"],[/(^\w+)(\s*)(\=)/,["key","","delimiter"]],{include:"@whitespace"},[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,""],[/^\s*[#;].*$/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]]}};export{e as conf,n as language}; diff --git a/site/themes/template/static/live-editor/assets/java.969478ce.js b/site/themes/template/static/live-editor/assets/java.969478ce.js deleted file mode 100644 index 21ec97f6d..000000000 --- a/site/themes/template/static/live-editor/assets/java.969478ce.js +++ /dev/null @@ -1 +0,0 @@ -var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},t={defaultToken:"",tokenPostfix:".java",keywords:["abstract","continue","for","new","switch","assert","default","goto","package","synchronized","boolean","do","if","private","this","break","double","implements","protected","throw","byte","else","import","public","throws","case","enum","instanceof","return","transient","catch","extends","int","short","try","char","final","interface","static","void","class","finally","long","strictfp","volatile","const","float","native","super","while","true","false","yield","record","sealed","non-sealed","permits"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/javascript.831794e3.js b/site/themes/template/static/live-editor/assets/javascript.831794e3.js deleted file mode 100644 index 1efc6f1c9..000000000 --- a/site/themes/template/static/live-editor/assets/javascript.831794e3.js +++ /dev/null @@ -1 +0,0 @@ -import{conf as t,language as e}from"./typescript.48765290.js";import"./vendor.394d6d4c.js";var o=t,r={defaultToken:"invalid",tokenPostfix:".js",keywords:["break","case","catch","class","continue","const","constructor","debugger","default","delete","do","else","export","extends","false","finally","for","from","function","get","if","import","in","instanceof","let","new","null","return","set","super","switch","symbol","this","throw","true","try","typeof","undefined","var","void","while","with","yield","async","await","of"],typeKeywords:[],operators:e.operators,symbols:e.symbols,escapes:e.escapes,digits:e.digits,octaldigits:e.octaldigits,binarydigits:e.binarydigits,hexdigits:e.hexdigits,regexpctl:e.regexpctl,regexpesc:e.regexpesc,tokenizer:e.tokenizer};export{o as conf,r as language}; diff --git a/site/themes/template/static/live-editor/assets/jsonMode.1c401651.js b/site/themes/template/static/live-editor/assets/jsonMode.1c401651.js deleted file mode 100644 index 266153da9..000000000 --- a/site/themes/template/static/live-editor/assets/jsonMode.1c401651.js +++ /dev/null @@ -1,6 +0,0 @@ -import{K as y,V as oe,T as b,_ as F}from"./vendor.394d6d4c.js";var Ge=2*60*1e3,Qe=function(){function e(r){var i=this;this._defaults=r,this._worker=null,this._idleCheckInterval=window.setInterval(function(){return i._checkIfIdle()},30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(function(){return i._stopWorker()})}return e.prototype._stopWorker=function(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null},e.prototype.dispose=function(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()},e.prototype._checkIfIdle=function(){if(!!this._worker){var r=Date.now()-this._lastUsedTime;r>Ge&&this._stopWorker()}},e.prototype._getClient=function(){return this._lastUsedTime=Date.now(),this._client||(this._worker=y.createWebWorker({moduleId:"vs/language/json/jsonWorker",label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._client=this._worker.getProxy()),this._client},e.prototype.getLanguageServiceWorker=function(){for(var r=this,i=[],t=0;t0&&(u.arguments=a),u}e.create=r;function i(t){var n=t;return s.defined(n)&&s.string(n.title)&&s.string(n.command)}e.is=i})(O||(O={}));var L;(function(e){function r(a,o){return{range:a,newText:o}}e.replace=r;function i(a,o){return{range:{start:a,end:a},newText:o}}e.insert=i;function t(a){return{range:a,newText:""}}e.del=t;function n(a){var o=a;return s.objectLiteral(o)&&s.string(o.newText)&&_.is(o.range)}e.is=n})(L||(L={}));var N;(function(e){function r(t,n,a){var o={label:t};return n!==void 0&&(o.needsConfirmation=n),a!==void 0&&(o.description=a),o}e.create=r;function i(t){var n=t;return n!==void 0&&s.objectLiteral(n)&&s.string(n.label)&&(s.boolean(n.needsConfirmation)||n.needsConfirmation===void 0)&&(s.string(n.description)||n.description===void 0)}e.is=i})(N||(N={}));var w;(function(e){function r(i){var t=i;return typeof t=="string"}e.is=r})(w||(w={}));var M;(function(e){function r(a,o,u){return{range:a,newText:o,annotationId:u}}e.replace=r;function i(a,o,u){return{range:{start:a,end:a},newText:o,annotationId:u}}e.insert=i;function t(a,o){return{range:a,newText:"",annotationId:o}}e.del=t;function n(a){var o=a;return L.is(o)&&(N.is(o.annotationId)||w.is(o.annotationId))}e.is=n})(M||(M={}));var J;(function(e){function r(t,n){return{textDocument:t,edits:n}}e.create=r;function i(t){var n=t;return s.defined(n)&&G.is(n.textDocument)&&Array.isArray(n.edits)}e.is=i})(J||(J={}));var W;(function(e){function r(t,n,a){var o={kind:"create",uri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(o.options=n),a!==void 0&&(o.annotationId=a),o}e.create=r;function i(t){var n=t;return n&&n.kind==="create"&&s.string(n.uri)&&(n.options===void 0||(n.options.overwrite===void 0||s.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||s.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||w.is(n.annotationId))}e.is=i})(W||(W={}));var U;(function(e){function r(t,n,a,o){var u={kind:"rename",oldUri:t,newUri:n};return a!==void 0&&(a.overwrite!==void 0||a.ignoreIfExists!==void 0)&&(u.options=a),o!==void 0&&(u.annotationId=o),u}e.create=r;function i(t){var n=t;return n&&n.kind==="rename"&&s.string(n.oldUri)&&s.string(n.newUri)&&(n.options===void 0||(n.options.overwrite===void 0||s.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||s.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||w.is(n.annotationId))}e.is=i})(U||(U={}));var V;(function(e){function r(t,n,a){var o={kind:"delete",uri:t};return n!==void 0&&(n.recursive!==void 0||n.ignoreIfNotExists!==void 0)&&(o.options=n),a!==void 0&&(o.annotationId=a),o}e.create=r;function i(t){var n=t;return n&&n.kind==="delete"&&s.string(n.uri)&&(n.options===void 0||(n.options.recursive===void 0||s.boolean(n.options.recursive))&&(n.options.ignoreIfNotExists===void 0||s.boolean(n.options.ignoreIfNotExists)))&&(n.annotationId===void 0||w.is(n.annotationId))}e.is=i})(V||(V={}));var ne;(function(e){function r(i){var t=i;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(function(n){return s.string(n.kind)?W.is(n)||U.is(n)||V.is(n):J.is(n)}))}e.is=r})(ne||(ne={}));var Y=function(){function e(r,i){this.edits=r,this.changeAnnotations=i}return e.prototype.insert=function(r,i,t){var n,a;if(t===void 0?n=L.insert(r,i):w.is(t)?(a=t,n=M.insert(r,i,t)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(t),n=M.insert(r,i,a)),this.edits.push(n),a!==void 0)return a},e.prototype.replace=function(r,i,t){var n,a;if(t===void 0?n=L.replace(r,i):w.is(t)?(a=t,n=M.replace(r,i,t)):(this.assertChangeAnnotations(this.changeAnnotations),a=this.changeAnnotations.manage(t),n=M.replace(r,i,a)),this.edits.push(n),a!==void 0)return a},e.prototype.delete=function(r,i){var t,n;if(i===void 0?t=L.del(r):w.is(i)?(n=i,t=M.del(r,i)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(i),t=M.del(r,n)),this.edits.push(t),n!==void 0)return n},e.prototype.add=function(r){this.edits.push(r)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e.prototype.assertChangeAnnotations=function(r){if(r===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},e}(),he=function(){function e(r){this._annotations=r===void 0?Object.create(null):r,this._counter=0,this._size=0}return e.prototype.all=function(){return this._annotations},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),e.prototype.manage=function(r,i){var t;if(w.is(r)?t=r:(t=this.nextId(),i=r),this._annotations[t]!==void 0)throw new Error("Id "+t+" is already in use.");if(i===void 0)throw new Error("No annotation provided for id "+t);return this._annotations[t]=i,this._size++,t},e.prototype.nextId=function(){return this._counter++,this._counter.toString()},e}();(function(){function e(r){var i=this;this._textEditChanges=Object.create(null),r!==void 0?(this._workspaceEdit=r,r.documentChanges?(this._changeAnnotations=new he(r.changeAnnotations),r.changeAnnotations=this._changeAnnotations.all(),r.documentChanges.forEach(function(t){if(J.is(t)){var n=new Y(t.edits,i._changeAnnotations);i._textEditChanges[t.textDocument.uri]=n}})):r.changes&&Object.keys(r.changes).forEach(function(t){var n=new Y(r.changes[t]);i._textEditChanges[t]=n})):this._workspaceEdit={}}return Object.defineProperty(e.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),e.prototype.getTextEditChange=function(r){if(G.is(r)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var i={uri:r.uri,version:r.version},t=this._textEditChanges[i.uri];if(!t){var n=[],a={textDocument:i,edits:n};this._workspaceEdit.documentChanges.push(a),t=new Y(n,this._changeAnnotations),this._textEditChanges[i.uri]=t}return t}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var t=this._textEditChanges[r];if(!t){var n=[];this._workspaceEdit.changes[r]=n,t=new Y(n),this._textEditChanges[r]=t}return t}},e.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new he,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},e.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},e.prototype.createFile=function(r,i,t){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var n;N.is(i)||w.is(i)?n=i:t=i;var a,o;if(n===void 0?a=W.create(r,t):(o=w.is(n)?n:this._changeAnnotations.manage(n),a=W.create(r,t,o)),this._workspaceEdit.documentChanges.push(a),o!==void 0)return o},e.prototype.renameFile=function(r,i,t,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var a;N.is(t)||w.is(t)?a=t:n=t;var o,u;if(a===void 0?o=U.create(r,i,n):(u=w.is(a)?a:this._changeAnnotations.manage(a),o=U.create(r,i,n,u)),this._workspaceEdit.documentChanges.push(o),u!==void 0)return u},e.prototype.deleteFile=function(r,i,t){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var n;N.is(i)||w.is(i)?n=i:t=i;var a,o;if(n===void 0?a=V.create(r,t):(o=w.is(n)?n:this._changeAnnotations.manage(n),a=V.create(r,t,o)),this._workspaceEdit.documentChanges.push(a),o!==void 0)return o},e})();var ve;(function(e){function r(t){return{uri:t}}e.create=r;function i(t){var n=t;return s.defined(n)&&s.string(n.uri)}e.is=i})(ve||(ve={}));var pe;(function(e){function r(t,n){return{uri:t,version:n}}e.create=r;function i(t){var n=t;return s.defined(n)&&s.string(n.uri)&&s.integer(n.version)}e.is=i})(pe||(pe={}));var G;(function(e){function r(t,n){return{uri:t,version:n}}e.create=r;function i(t){var n=t;return s.defined(n)&&s.string(n.uri)&&(n.version===null||s.integer(n.version))}e.is=i})(G||(G={}));var me;(function(e){function r(t,n,a,o){return{uri:t,languageId:n,version:a,text:o}}e.create=r;function i(t){var n=t;return s.defined(n)&&s.string(n.uri)&&s.string(n.languageId)&&s.integer(n.version)&&s.string(n.text)}e.is=i})(me||(me={}));var z;(function(e){e.PlainText="plaintext",e.Markdown="markdown"})(z||(z={}));(function(e){function r(i){var t=i;return t===e.PlainText||t===e.Markdown}e.is=r})(z||(z={}));var te;(function(e){function r(i){var t=i;return s.objectLiteral(i)&&z.is(t.kind)&&s.string(t.value)}e.is=r})(te||(te={}));var p;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(p||(p={}));var re;(function(e){e.PlainText=1,e.Snippet=2})(re||(re={}));var _e;(function(e){e.Deprecated=1})(_e||(_e={}));var ke;(function(e){function r(t,n,a){return{newText:t,insert:n,replace:a}}e.create=r;function i(t){var n=t;return n&&s.string(n.newText)&&_.is(n.insert)&&_.is(n.replace)}e.is=i})(ke||(ke={}));var be;(function(e){e.asIs=1,e.adjustIndentation=2})(be||(be={}));var we;(function(e){function r(i){return{label:i}}e.create=r})(we||(we={}));var Ce;(function(e){function r(i,t){return{items:i||[],isIncomplete:!!t}}e.create=r})(Ce||(Ce={}));var Q;(function(e){function r(t){return t.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=r;function i(t){var n=t;return s.string(n)||s.objectLiteral(n)&&s.string(n.language)&&s.string(n.value)}e.is=i})(Q||(Q={}));var Ee;(function(e){function r(i){var t=i;return!!t&&s.objectLiteral(t)&&(te.is(t.contents)||Q.is(t.contents)||s.typedArray(t.contents,Q.is))&&(i.range===void 0||_.is(i.range))}e.is=r})(Ee||(Ee={}));var Ae;(function(e){function r(i,t){return t?{label:i,documentation:t}:{label:i}}e.create=r})(Ae||(Ae={}));var Ie;(function(e){function r(i,t){for(var n=[],a=2;a=0;g--){var h=c[g],v=a.offsetAt(h.range.start),l=a.offsetAt(h.range.end);if(l<=d)u=u.substring(0,v)+h.newText+u.substring(l,u.length);else throw new Error("Overlapping edit");d=v}return u}e.applyEdits=t;function n(a,o){if(a.length<=1)return a;var u=a.length/2|0,c=a.slice(0,u),d=a.slice(u);n(c,o),n(d,o);for(var g=0,h=0,v=0;g0&&r.push(i.length),this._lineOffsets=r}return this._lineOffsets},e.prototype.positionAt=function(r){r=Math.max(Math.min(r,this._content.length),0);var i=this.getLineOffsets(),t=0,n=i.length;if(n===0)return S.create(0,r);for(;tr?n=a:t=a+1}var o=t-1;return S.create(o,r-i[o])},e.prototype.offsetAt=function(r){var i=this.getLineOffsets();if(r.line>=i.length)return this._content.length;if(r.line<0)return 0;var t=i[r.line],n=r.line+1=48&&k<=57)E=E*16+k-48;else if(k>=65&&k<=70)E=E*16+k-65+10;else if(k>=97&&k<=102)E=E*16+k-97+10;else break;t++,A++}return A=i){f+=e.substring(C,t),h=2;break}var A=e.charCodeAt(t);if(A===34){f+=e.substring(C,t),t++;break}if(A===92){if(f+=e.substring(C,t),t++,t>=i){h=2;break}var E=e.charCodeAt(t++);switch(E){case 34:f+='"';break;case 92:f+="\\";break;case 47:f+="/";break;case 98:f+="\b";break;case 102:f+="\f";break;case 110:f+=` -`;break;case 114:f+="\r";break;case 116:f+=" ";break;case 117:var k=v(4,!0);k>=0?f+=String.fromCharCode(k):h=4;break;default:h=5}C=t;continue}if(A>=0&&A<=31)if(B(A)){f+=e.substring(C,t),h=2;break}else h=6;t++}return f}function D(){if(n="",h=0,a=t,c=u,g=d,t>=i)return a=i,o=17;var f=e.charCodeAt(t);if(ae(f)){do t++,n+=String.fromCharCode(f),f=e.charCodeAt(t);while(ae(f));return o=15}if(B(f))return t++,n+=String.fromCharCode(f),f===13&&e.charCodeAt(t)===10&&(t++,n+=` -`),u++,d=t,o=14;switch(f){case 123:return t++,o=1;case 125:return t++,o=2;case 91:return t++,o=3;case 93:return t++,o=4;case 58:return t++,o=6;case 44:return t++,o=5;case 34:return t++,n=R(),o=10;case 47:var C=t-1;if(e.charCodeAt(t+1)===47){for(t+=2;t=12&&f<=15);return f}return{setPosition:l,getPosition:function(){return t},scan:r?Ye:D,getToken:function(){return o},getTokenValue:function(){return n},getTokenOffset:function(){return a},getTokenLength:function(){return t-a},getTokenStartLine:function(){return c},getTokenStartCharacter:function(){return a-g},getTokenError:function(){return h}}}function ae(e){return e===32||e===9||e===11||e===12||e===160||e===5760||e>=8192&&e<=8203||e===8239||e===8287||e===12288||e===65279}function B(e){return e===10||e===13||e===8232||e===8233}function x(e){return e>=48&&e<=57}var ze;(function(e){e.DEFAULT={allowTrailingComma:!1}})(ze||(ze={}));var kn=_n;function bn(e){return{getInitialState:function(){return new qe(null,null,!1,null)},tokenize:function(r,i,t,n){return Ln(e,r,i,t)}}}var He="delimiter.bracket.json",Be="delimiter.array.json",wn="delimiter.colon.json",Cn="delimiter.comma.json",En="keyword.json",An="keyword.json",In="string.value.json",yn="number.json",Sn="string.key.json",Tn="comment.block.json",Rn="comment.line.json",q=function(){function e(r,i){this.parent=r,this.type=i}return e.pop=function(r){return r?r.parent:null},e.push=function(r,i){return new e(r,i)},e.equals=function(r,i){if(!r&&!i)return!0;if(!r||!i)return!1;for(;r&&i;){if(r===i)return!0;if(r.type!==i.type)return!1;r=r.parent,i=i.parent}return!0},e}(),qe=function(){function e(r,i,t,n){this._state=r,this.scanError=i,this.lastWasColon=t,this.parents=n}return e.prototype.clone=function(){return new e(this._state,this.scanError,this.lastWasColon,this.parents)},e.prototype.equals=function(r){return r===this?!0:!r||!(r instanceof e)?!1:this.scanError===r.scanError&&this.lastWasColon===r.lastWasColon&&q.equals(this.parents,r.parents)},e.prototype.getStateData=function(){return this._state},e.prototype.setStateData=function(r){this._state=r},e}();function Ln(e,r,i,t,n){t===void 0&&(t=0);var a=0,o=!1;switch(i.scanError){case 2:r='"'+r,a=1;break;case 1:r="/*"+r,a=2;break}for(var u=kn(r),c=i.lastWasColon,d=i.parents,g={tokens:[],endState:i.clone()};;){var h=t+u.getPosition(),v="",l=u.scan();if(l===17)break;if(h===t+u.getPosition())throw new Error("Scanner did not advance, next 3 characters are: "+r.substr(u.getPosition(),3));switch(o&&(h-=a),o=a>0,l){case 1:d=q.push(d,0),v=He,c=!1;break;case 2:d=q.pop(d),v=He,c=!1;break;case 3:d=q.push(d,1),v=Be,c=!1;break;case 4:d=q.pop(d),v=Be,c=!1;break;case 6:v=wn,c=!0;break;case 5:v=Cn,c=!1;break;case 8:case 9:v=En,c=!1;break;case 7:v=An,c=!1;break;case 10:var I=d?d.type:0,R=I===1;v=c||R?In:Sn,c=!1;break;case 11:v=yn,c=!1;break}if(e)switch(l){case 12:v=Rn;break;case 13:v=Tn;break}g.endState=new qe(i.getStateData(),u.getTokenError(),c,d),g.tokens.push({startIndex:h,scopes:v})}return g}function Nn(e){var r=[],i=[],t=new Qe(e);r.push(t);var n=function(){for(var u=[],c=0;c:",":","=>","...",".","->","?"],allops:/[^\w\d\s()\[\]{}"'#]+/,constants:["true","false","nothing","missing","undef","Inf","pi","NaN","\u03C0","\u212F","ans","PROGRAM_FILE","ARGS","C_NULL","VERSION","DEPOT_PATH","LOAD_PATH"],operators:["!","!=","!==","%","&","*","+","-","/","//","<","<<","<=","==","===","=>",">",">=",">>",">>>","\\","^","|","|>","~","\xF7","\u2208","\u2209","\u220B","\u220C","\u2218","\u221A","\u221B","\u2229","\u222A","\u2248","\u2249","\u2260","\u2261","\u2262","\u2264","\u2265","\u2286","\u2287","\u2288","\u2289","\u228A","\u228B","\u22BB"],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],ident:/π|ℯ|\b(?!\d)\w+\b/,escape:/(?:[abefnrstv\\"'\n\r]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u[0-9A-Fa-f]{4})/,escapes:/\\(?:C\-(@escape|.)|c(@escape|.)|@escape)/,tokenizer:{root:[[/(::)\s*|\b(isa)\s+/,"keyword","@typeanno"],[/\b(isa)(\s*\(@ident\s*,\s*)/,["keyword",{token:"",next:"@typeanno"}]],[/\b(type|struct)[ \t]+/,"keyword","@typeanno"],[/^\s*:@ident[!?]?/,"metatag"],[/(return)(\s*:@ident[!?]?)/,["keyword","metatag"]],[/(\(|\[|\{|@allops)(\s*:@ident[!?]?)/,["","metatag"]],[/:\(/,"metatag","@quote"],[/r"""/,"regexp.delim","@tregexp"],[/r"/,"regexp.delim","@sregexp"],[/raw"""/,"string.delim","@rtstring"],[/[bv]?"""/,"string.delim","@dtstring"],[/raw"/,"string.delim","@rsstring"],[/[bv]?"/,"string.delim","@dsstring"],[/(@ident)\{/,{cases:{"$1@types":{token:"type",next:"@gen"},"@default":{token:"type",next:"@gen"}}}],[/@ident[!?'']?(?=\.?\()/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"keyword.flow"}}],[/@ident[!?']?/,{cases:{"@types":"type","@keywords":"keyword","@constants":"variable","@default":"identifier"}}],[/\$\w+/,"key"],[/\$\(/,"key","@paste"],[/@@@ident/,"annotation"],{include:"@whitespace"},[/'(?:@escapes|.)'/,"string.character"],[/[()\[\]{}]/,"@brackets"],[/@allops/,{cases:{"@keywordops":"keyword","@operators":"operator"}}],[/[;,]/,"delimiter"],[/0[xX][0-9a-fA-F](_?[0-9a-fA-F])*/,"number.hex"],[/0[_oO][0-7](_?[0-7])*/,"number.octal"],[/0[bB][01](_?[01])*/,"number.binary"],[/[+\-]?\d+(\.\d+)?(im?|[eE][+\-]?\d+(\.\d+)?)?/,"number"]],typeanno:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@gen"],[/([a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*)(\s*<:\s*)/,["type","keyword"]],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type","@pop"],["","","@pop"]],gen:[[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*\{/,"type","@push"],[/[a-zA-Z_]\w*(?:\.[a-zA-Z_]\w*)*/,"type"],[/<:/,"keyword"],[/(\})(\s*<:\s*)/,["type",{token:"keyword",next:"@pop"}]],[/\}/,"type","@pop"],{include:"@root"}],quote:[[/\$\(/,"key","@paste"],[/\(/,"@brackets","@paren"],[/\)/,"metatag","@pop"],{include:"@root"}],paste:[[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@paren"],[/\)/,"key","@pop"],{include:"@root"}],paren:[[/\$\(/,"key","@paste"],[/:\(/,"metatag","@quote"],[/\(/,"@brackets","@push"],[/\)/,"@brackets","@pop"],{include:"@root"}],sregexp:[[/^.*/,"invalid"],[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"[imsx]*/,"regexp.delim","@pop"]],tregexp:[[/[^\\"()\[\]{}]/,"regexp"],[/[()\[\]{}]/,"@brackets"],[/\\./,"operator.scss"],[/"(?!"")/,"string"],[/"""[imsx]*/,"regexp.delim","@pop"]],rsstring:[[/^.*/,"invalid"],[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"/,"string.delim","@pop"]],rtstring:[[/[^\\"]/,"string"],[/\\./,"string.escape"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],dsstring:[[/^.*/,"invalid"],[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string.delim","@pop"]],dtstring:[[/[^\\"\$]/,"string"],[/\$/,"","@interpolated"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?!"")/,"string"],[/"""/,"string.delim","@pop"]],interpolated:[[/\(/,{token:"",switchTo:"@interpolated_compound"}],[/[a-zA-Z_]\w*/,"identifier"],["","","@pop"]],interpolated_compound:[[/\)/,"","@pop"],{include:"@root"}],whitespace:[[/[ \t\r\n]+/,""],[/#=/,"comment","@multi_comment"],[/#.*$/,"comment"]],multi_comment:[[/#=/,"comment","@push"],[/=#/,"comment","@pop"],[/=(?!#)|#(?!=)/,"comment"],[/[^#=]+/,"comment"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/kotlin.87f5e113.js b/site/themes/template/static/live-editor/assets/kotlin.87f5e113.js deleted file mode 100644 index 911e7a5ee..000000000 --- a/site/themes/template/static/live-editor/assets/kotlin.87f5e113.js +++ /dev/null @@ -1 +0,0 @@ -var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},t={defaultToken:"",tokenPostfix:".kt",keywords:["as","as?","break","class","continue","do","else","false","for","fun","if","in","!in","interface","is","!is","null","object","package","return","super","this","throw","true","try","typealias","val","var","when","while","by","catch","constructor","delegate","dynamic","field","file","finally","get","import","init","param","property","receiver","set","setparam","where","actual","abstract","annotation","companion","const","crossinline","data","enum","expect","external","final","infix","inline","inner","internal","lateinit","noinline","open","operator","out","override","private","protected","public","reified","sealed","suspend","tailrec","vararg","field","it"],operators:["+","-","*","/","%","=","+=","-=","*=","/=","%=","++","--","&&","||","!","==","!=","===","!==",">","<","<=",">=","[","]","!!","?.","?:","::","..",":","?","->","@",";","$","_"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/@\s*[a-zA-Z_\$][\w\$]*/,"annotation"],[/(@digits)[eE]([\-+]?(@digits))?[fFdD]?/,"number.float"],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?[fFdD]?/,"number.float"],[/0[xX](@hexdigits)[Ll]?/,"number.hex"],[/0(@octaldigits)[Ll]?/,"number.octal"],[/0[bB](@binarydigits)[Ll]?/,"number.binary"],[/(@digits)[fFdD]/,"number.float"],[/(@digits)[lL]?/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"""/,"string","@multistring"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@javadoc"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],javadoc:[[/[^\/*]+/,"comment.doc"],[/\/\*/,"comment.doc","@push"],[/\/\*/,"comment.doc.invalid"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],multistring:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"""/,"string","@pop"],[/./,"string"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/less.ec1a7eba.js b/site/themes/template/static/live-editor/assets/less.ec1a7eba.js deleted file mode 100644 index 8a4ee640f..000000000 --- a/site/themes/template/static/live-editor/assets/less.ec1a7eba.js +++ /dev/null @@ -1,2 +0,0 @@ -var e={wordPattern:/(#?-?\d*\.\d\w*%?)|([@#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},t={defaultToken:"",tokenPostfix:".less",identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",identifierPlus:"-?-?([a-zA-Z:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-:.]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@nestedJSBegin"},["[ \\t\\r\\n]+",""],{include:"@comments"},{include:"@keyword"},{include:"@strings"},{include:"@numbers"},["[*_]?[a-zA-Z\\-\\s]+(?=:.*(;|(\\\\$)))","attribute.name","@attribute"],["url(\\-prefix)?\\(",{token:"tag",next:"@urldeclaration"}],["[{}()\\[\\]]","@brackets"],["[,:;]","delimiter"],["#@identifierPlus","tag.id"],["&","tag"],["\\.@identifierPlus(?=\\()","tag.class","@attribute"],["\\.@identifierPlus","tag.class"],["@identifierPlus","tag"],{include:"@operators"},["@(@identifier(?=[:,\\)]))","variable","@attribute"],["@(@identifier)","variable"],["@","key","@atRules"]],nestedJSBegin:[["``","delimiter.backtick"],["`",{token:"delimiter.backtick",next:"@nestedJSEnd",nextEmbedded:"text/javascript"}]],nestedJSEnd:[["`",{token:"delimiter.backtick",next:"@pop",nextEmbedded:"@pop"}]],operators:[["[<>=\\+\\-\\*\\/\\^\\|\\~]","operator"]],keyword:[["(@[\\s]*import|![\\s]*important|true|false|when|iscolor|isnumber|isstring|iskeyword|isurl|ispixel|ispercentage|isem|hue|saturation|lightness|alpha|lighten|darken|saturate|desaturate|fadein|fadeout|fade|spin|mix|round|ceil|floor|percentage)\\b","keyword"]],urldeclaration:[{include:"@strings"},[`[^)\r -]+`,"string"],["\\)",{token:"tag",next:"@pop"}]],attribute:[{include:"@nestedJSBegin"},{include:"@comments"},{include:"@strings"},{include:"@numbers"},{include:"@keyword"},["[a-zA-Z\\-]+(?=\\()","attribute.value","@attribute"],[">","operator","@pop"],["@identifier","attribute.value"],{include:"@operators"},["@(@identifier)","variable"],["[)\\}]","@brackets","@pop"],["[{}()\\[\\]>]","@brackets"],["[;]","delimiter","@pop"],["[,=:]","delimiter"],["\\s",""],[".","attribute.value"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"attribute.value.number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","attribute.value.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","attribute.value.unit","@pop"]],strings:[['~?"',{token:"string.delimiter",next:"@stringsEndDoubleQuote"}],["~?'",{token:"string.delimiter",next:"@stringsEndQuote"}]],stringsEndDoubleQuote:[['\\\\"',"string"],['"',{token:"string.delimiter",next:"@popall"}],[".","string"]],stringsEndQuote:[["\\\\'","string"],["'",{token:"string.delimiter",next:"@popall"}],[".","string"]],atRules:[{include:"@comments"},{include:"@strings"},["[()]","delimiter"],["[\\{;]","delimiter","@pop"],[".","key"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/lexon.10c18048.js b/site/themes/template/static/live-editor/assets/lexon.10c18048.js deleted file mode 100644 index 6ed06763b..000000000 --- a/site/themes/template/static/live-editor/assets/lexon.10c18048.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"COMMENT"},brackets:[["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:":",close:"."}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"`",close:"`"},{open:'"',close:'"'},{open:"'",close:"'"},{open:":",close:"."}],folding:{markers:{start:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#region"),end:new RegExp("^\\s*(::\\s*|COMMENT\\s+)#endregion")}}},t={tokenPostfix:".lexon",ignoreCase:!0,keywords:["lexon","lex","clause","terms","contracts","may","pay","pays","appoints","into","to"],typeKeywords:["amount","person","key","time","date","asset","text"],operators:["less","greater","equal","le","gt","or","and","add","added","subtract","subtracted","multiply","multiplied","times","divide","divided","is","be","certified"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,"delimiter"],[/\d*\.\d*\.\d*/,"number.semver"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+/,"number"],[/[;,.]/,"delimiter"]],quoted_identifier:[[/[^\\"]+/,"identifier"],[/"/,{token:"identifier.quote",bracket:"@close",next:"@pop"}]],space_identifier_until_period:[[":","delimiter"],[" ",{token:"white",next:"@identifier_rest"}]],identifier_until_period:[{include:"@whitespace"},[":",{token:"delimiter",next:"@identifier_rest"}],[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],identifier_rest:[[/[^\\.]+/,"identifier"],[/\./,{token:"delimiter",bracket:"@close",next:"@pop"}]],semver:[{include:"@whitespace"},[":","delimiter"],[/\d*\.\d*\.\d*/,{token:"number.semver",bracket:"@close",next:"@pop"}]],whitespace:[[/[ \t\r\n]+/,"white"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/liquid.935d383a.js b/site/themes/template/static/live-editor/assets/liquid.935d383a.js deleted file mode 100644 index 995b39098..000000000 --- a/site/themes/template/static/live-editor/assets/liquid.935d383a.js +++ /dev/null @@ -1 +0,0 @@ -import{T as e}from"./vendor.394d6d4c.js";var t=["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[""],["<",">"],["{{","}}"],["{%","%}"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"%",close:"%"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:"+t.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:"+t.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:e.IndentAction.Indent}}]},o={defaultToken:"",tokenPostfix:"",builtinTags:["if","else","elseif","endif","render","assign","capture","endcapture","case","endcase","comment","endcomment","cycle","decrement","for","endfor","include","increment","layout","raw","endraw","render","tablerow","endtablerow","unless","endunless"],builtinFilters:["abs","append","at_least","at_most","capitalize","ceil","compact","date","default","divided_by","downcase","escape","escape_once","first","floor","join","json","last","lstrip","map","minus","modulo","newline_to_br","plus","prepend","remove","remove_first","replace","replace_first","reverse","round","rstrip","size","slice","sort","sort_natural","split","strip","strip_html","strip_newlines","times","truncate","truncatewords","uniq","upcase","url_decode","url_encode","where"],constants:["true","false"],operators:["==","!=",">","<",">=","<="],symbol:/[=>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([:\w]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[//,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,"delimiter.output.liquid"],[/\}\}/,{token:"delimiter.output.liquid",switchTo:"@$S2.$S3"}],[/\{\%/,"delimiter.tag.liquid"],[/raw\s*\%\}/,"delimiter.tag.liquid","@liquidRaw"],[/\%\}/,{token:"delimiter.tag.liquid",switchTo:"@$S2.$S3"}],{include:"liquidRoot"}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,"delimiter.tag.liquid"],[/@identifier/],[/\%\}/,{token:"delimiter.tag.liquid",next:"@root"}]],liquidRoot:[[/\d+(\.\d+)?/,"number.liquid"],[/"[^"]*"/,"string.liquid"],[/'[^']*'/,"string.liquid"],[/\s+/],[/@symbol/,{cases:{"@operators":"operator.liquid","@default":""}}],[/\./],[/@identifier/,{cases:{"@constants":"keyword.liquid","@builtinFilters":"predefined.liquid","@builtinTags":"predefined.liquid","@default":"variable.liquid"}}],[/[^}|%]/,"variable.liquid"]]}};export{n as conf,o as language}; diff --git a/site/themes/template/static/live-editor/assets/lua.c0f1adcc.js b/site/themes/template/static/live-editor/assets/lua.c0f1adcc.js deleted file mode 100644 index 2505d6e76..000000000 --- a/site/themes/template/static/live-editor/assets/lua.c0f1adcc.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"--",blockComment:["--[[","]]"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},o={defaultToken:"",tokenPostfix:".lua",keywords:["and","break","do","else","elseif","end","false","for","function","goto","if","in","local","nil","not","or","repeat","return","then","true","until","while"],brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],operators:["+","-","*","/","%","^","#","==","~=","<=",">=","<",">","=",";",":",",",".","..","..."],symbols:/[=>"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]}]},o={defaultToken:"",tokenPostfix:".m3",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["AND","ANY","ARRAY","AS","BEGIN","BITS","BRANDED","BY","CASE","CONST","DIV","DO","ELSE","ELSIF","END","EVAL","EXCEPT","EXCEPTION","EXIT","EXPORTS","FINALLY","FOR","FROM","GENERIC","IF","IMPORT","IN","INTERFACE","LOCK","LOOP","METHODS","MOD","MODULE","NOT","OBJECT","OF","OR","OVERRIDES","PROCEDURE","RAISE","RAISES","READONLY","RECORD","REF","REPEAT","RETURN","REVEAL","SET","THEN","TO","TRY","TYPE","TYPECASE","UNSAFE","UNTIL","UNTRACED","VALUE","VAR","WHILE","WITH"],reservedConstNames:["ABS","ADR","ADRSIZE","BITSIZE","BYTESIZE","CEILING","DEC","DISPOSE","FALSE","FIRST","FLOAT","FLOOR","INC","ISTYPE","LAST","LOOPHOLE","MAX","MIN","NARROW","NEW","NIL","NUMBER","ORD","ROUND","SUBARRAY","TRUE","TRUNC","TYPECODE","VAL"],reservedTypeNames:["ADDRESS","ANY","BOOLEAN","CARDINAL","CHAR","EXTENDED","INTEGER","LONGCARD","LONGINT","LONGREAL","MUTEX","NULL","REAL","REFANY","ROOT","TEXT"],operators:["+","-","*","/","&","^","."],relations:["=","#","<","<=",">",">=","<:",":"],delimiters:["|","..","=>",",",";",":="],symbols:/[>=<#.,:;+\-*/&^]+/,escapes:/\\(?:[\\fnrt"']|[0-7]{3})/,tokenizer:{root:[[/_\w*/,"invalid"],[/[a-zA-Z][a-zA-Z0-9_]*/,{cases:{"@keywords":{token:"keyword.$0"},"@reservedConstNames":{token:"constant.reserved.$0"},"@reservedTypeNames":{token:"type.reserved.$0"},"@default":"identifier"}}],{include:"@whitespace"},[/[{}()\[\]]/,"@brackets"],[/[0-9]+\.[0-9]+(?:[DdEeXx][\+\-]?[0-9]+)?/,"number.float"],[/[0-9]+(?:\_[0-9a-fA-F]+)?L?/,"number"],[/@symbols/,{cases:{"@operators":"operators","@relations":"operators","@delimiters":"delimiter","@default":"invalid"}}],[/'[^\\']'/,"string.char"],[/(')(@escapes)(')/,["string.char","string.escape","string.char"]],[/'/,"invalid"],[/"([^"\\]|\\.)*$/,"invalid"],[/"/,"string.text","@text"]],text:[[/[^\\"]+/,"string.text"],[/@escapes/,"string.escape"],[/\\./,"invalid"],[/"/,"string.text","@pop"]],comment:[[/\(\*/,"comment","@push"],[/\*\)/,"comment","@pop"],[/./,"comment"]],pragma:[[/<\*/,"keyword.pragma","@push"],[/\*>/,"keyword.pragma","@pop"],[/./,"keyword.pragma"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\(\*/,"comment","@comment"],[/<\*/,"keyword.pragma","@pragma"]]}};export{e as conf,o as language}; diff --git a/site/themes/template/static/live-editor/assets/markdown.1a4a8c12.js b/site/themes/template/static/live-editor/assets/markdown.1a4a8c12.js deleted file mode 100644 index 8c6bef7fa..000000000 --- a/site/themes/template/static/live-editor/assets/markdown.1a4a8c12.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{blockComment:[""]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},t={defaultToken:"",tokenPostfix:".md",control:/[\\`*_\[\]{}()#+\-\.!]/,noncontrol:/[^\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,jsescapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],tokenizer:{root:[[/^\s*\|/,"@rematch","@table_header"],[/^(\s{0,3})(#+)((?:[^\\#]|@escapes)+)((?:#+)?)/,["white","keyword","keyword","keyword"]],[/^\s*(=+|\-+)\s*$/,"keyword"],[/^\s*((\*[ ]?)+)\s*$/,"meta.separator"],[/^\s*>+/,"comment"],[/^\s*([\*\-+:]|\d+\.)\s/,"keyword"],[/^(\t|[ ]{4})[^ ].*$/,"string"],[/^\s*~~~\s*((?:\w|[\/\-#])+)?\s*$/,{token:"string",next:"@codeblock"}],[/^\s*```\s*((?:\w|[\/\-#])+).*$/,{token:"string",next:"@codeblockgh",nextEmbedded:"$1"}],[/^\s*```\s*$/,{token:"string",next:"@codeblock"}],{include:"@linecontent"}],table_header:[{include:"@table_common"},[/[^\|]+/,"keyword.table.header"]],table_body:[{include:"@table_common"},{include:"@linecontent"}],table_common:[[/\s*[\-:]+\s*/,{token:"keyword",switchTo:"table_body"}],[/^\s*\|/,"keyword.table.left"],[/^\s*[^\|]/,"@rematch","@pop"],[/^\s*$/,"@rematch","@pop"],[/\|/,{cases:{"@eos":"keyword.table.right","@default":"keyword.table.middle"}}]],codeblock:[[/^\s*~~~\s*$/,{token:"string",next:"@pop"}],[/^\s*```\s*$/,{token:"string",next:"@pop"}],[/.*$/,"variable.source"]],codeblockgh:[[/```\s*$/,{token:"string",next:"@pop",nextEmbedded:"@pop"}],[/[^`]+/,"variable.source"]],linecontent:[[/&\w+;/,"string.escape"],[/@escapes/,"escape"],[/\b__([^\\_]|@escapes|_(?!_))+__\b/,"strong"],[/\*\*([^\\*]|@escapes|\*(?!\*))+\*\*/,"strong"],[/\b_[^_]+_\b/,"emphasis"],[/\*([^\\*]|@escapes)+\*/,"emphasis"],[/`([^\\`]|@escapes)+`/,"variable"],[/\{+[^}]+\}+/,"string.target"],[/(!?\[)((?:[^\]\\]|@escapes)*)(\]\([^\)]+\))/,["string.link","","string.link"]],[/(!?\[)((?:[^\]\\]|@escapes)*)(\])/,"string.link"],{include:"html"}],html:[[/<(\w+)\/>/,"tag"],[/<(\w+)/,{cases:{"@empty":{token:"tag",next:"@tag.$1"},"@default":{token:"tag",next:"@tag.$1"}}}],[/<\/(\w+)\s*>/,{token:"tag"}],[//,"comment","@pop"],[//,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/<\?((php)|=)?/,{token:"@rematch",switchTo:"@phpInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],phpInSimpleState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3"}],{include:"phpRoot"}],phpInEmbeddedState:[[/<\?((php)|=)?/,"metatag.php"],[/\?>/,{token:"metatag.php",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],{include:"phpRoot"}],phpRoot:[[/[a-zA-Z_]\w*/,{cases:{"@phpKeywords":{token:"keyword.php"},"@phpCompileTimeConstants":{token:"constant.php"},"@default":"identifier.php"}}],[/[$a-zA-Z_]\w*/,{cases:{"@phpPreDefinedVariables":{token:"variable.predefined.php"},"@default":"variable.php"}}],[/[{}]/,"delimiter.bracket.php"],[/[\[\]]/,"delimiter.array.php"],[/[()]/,"delimiter.parenthesis.php"],[/[ \t\r\n]+/],[/(#|\/\/)$/,"comment.php"],[/(#|\/\/)/,"comment.php","@phpLineComment"],[/\/\*/,"comment.php","@phpComment"],[/"/,"string.php","@phpDoubleQuoteString"],[/'/,"string.php","@phpSingleQuoteString"],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,\@]/,"delimiter.php"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.php"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.php"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.php"],[/0[0-7']*[0-7]/,"number.octal.php"],[/0[bB][0-1']*[0-1]/,"number.binary.php"],[/\d[\d']*/,"number.php"],[/\d/,"number.php"]],phpComment:[[/\*\//,"comment.php","@pop"],[/[^*]+/,"comment.php"],[/./,"comment.php"]],phpLineComment:[[/\?>/,{token:"@rematch",next:"@pop"}],[/.$/,"comment.php","@pop"],[/[^?]+$/,"comment.php","@pop"],[/[^?]+/,"comment.php"],[/./,"comment.php"]],phpDoubleQuoteString:[[/[^\\"]+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/"/,"string.php","@pop"]],phpSingleQuoteString:[[/[^\\']+/,"string.php"],[/@escapes/,"string.escape.php"],[/\\./,"string.escape.invalid.php"],[/'/,"string.php","@pop"]]},phpKeywords:["abstract","and","array","as","break","callable","case","catch","cfunction","class","clone","const","continue","declare","default","do","else","elseif","enddeclare","endfor","endforeach","endif","endswitch","endwhile","extends","false","final","for","foreach","function","global","goto","if","implements","interface","instanceof","insteadof","namespace","new","null","object","old_function","or","private","protected","public","resource","static","switch","throw","trait","try","true","use","var","while","xor","die","echo","empty","exit","eval","include","include_once","isset","list","require","require_once","return","print","unset","yield","__construct"],phpCompileTimeConstants:["__CLASS__","__DIR__","__FILE__","__LINE__","__NAMESPACE__","__METHOD__","__FUNCTION__","__TRAIT__"],phpPreDefinedVariables:["$GLOBALS","$_SERVER","$_GET","$_POST","$_FILES","$_REQUEST","$_SESSION","$_ENV","$_COOKIE","$php_errormsg","$HTTP_RAW_POST_DATA","$http_response_header","$argc","$argv"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/pla.56bf1209.js b/site/themes/template/static/live-editor/assets/pla.56bf1209.js deleted file mode 100644 index 9497ddf89..000000000 --- a/site/themes/template/static/live-editor/assets/pla.56bf1209.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"#"},brackets:[["[","]"],["<",">"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}],surroundingPairs:[{open:"[",close:"]"},{open:"<",close:">"},{open:"(",close:")"}]},o={defaultToken:"",tokenPostfix:".pla",brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"<",close:">",token:"delimiter.angle"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:[".i",".o",".mv",".ilb",".ob",".label",".type",".phase",".pair",".symbolic",".symbolic-output",".kiss",".p",".e",".end"],comment:/#.*$/,identifier:/[a-zA-Z]+[a-zA-Z0-9_\-]*/,plaContent:/[01\-~\|]+/,tokenizer:{root:[{include:"@whitespace"},[/@comment/,"comment"],[/\.([a-zA-Z_\-]+)/,{cases:{"@eos":{token:"keyword.$1"},"@keywords":{cases:{".type":{token:"keyword.$1",next:"@type"},"@default":{token:"keyword.$1",next:"@keywordArg"}}},"@default":{token:"keyword.$1"}}}],[/@identifier/,"identifier"],[/@plaContent/,"string"]],whitespace:[[/[ \t\r\n]+/,""]],type:[{include:"@whitespace"},[/\w+/,{token:"type",next:"@pop"}]],keywordArg:[[/[ \t\r\n]+/,{cases:{"@eos":{token:"",next:"@pop"},"@default":""}}],[/@comment/,"comment","@pop"],[/[<>()\[\]]/,{cases:{"@eos":{token:"@brackets",next:"@pop"},"@default":"@brackets"}}],[/\-?\d+/,{cases:{"@eos":{token:"number",next:"@pop"},"@default":"number"}}],[/@identifier/,{cases:{"@eos":{token:"identifier",next:"@pop"},"@default":"identifier"}}],[/[;=]/,{cases:{"@eos":{token:"delimiter",next:"@pop"},"@default":"delimiter"}}]]}};export{e as conf,o as language}; diff --git a/site/themes/template/static/live-editor/assets/postiats.7ceb3472.js b/site/themes/template/static/live-editor/assets/postiats.7ceb3472.js deleted file mode 100644 index 95df21e21..000000000 --- a/site/themes/template/static/live-editor/assets/postiats.7ceb3472.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},t={tokenPostfix:".pats",defaultToken:"invalid",keywords:["abstype","abst0ype","absprop","absview","absvtype","absviewtype","absvt0ype","absviewt0ype","as","and","assume","begin","classdec","datasort","datatype","dataprop","dataview","datavtype","dataviewtype","do","end","extern","extype","extvar","exception","fn","fnx","fun","prfn","prfun","praxi","castfn","if","then","else","ifcase","in","infix","infixl","infixr","prefix","postfix","implmnt","implement","primplmnt","primplement","import","let","local","macdef","macrodef","nonfix","symelim","symintr","overload","of","op","rec","sif","scase","sortdef","sta","stacst","stadef","static","staload","dynload","try","tkindef","typedef","propdef","viewdef","vtypedef","viewtypedef","prval","var","prvar","when","where","with","withtype","withprop","withview","withvtype","withviewtype"],keywords_dlr:["$delay","$ldelay","$arrpsz","$arrptrsize","$d2ctype","$effmask","$effmask_ntm","$effmask_exn","$effmask_ref","$effmask_wrt","$effmask_all","$extern","$extkind","$extype","$extype_struct","$extval","$extfcall","$extmcall","$literal","$myfilename","$mylocation","$myfunction","$lst","$lst_t","$lst_vt","$list","$list_t","$list_vt","$rec","$rec_t","$rec_vt","$record","$record_t","$record_vt","$tup","$tup_t","$tup_vt","$tuple","$tuple_t","$tuple_vt","$break","$continue","$raise","$showtype","$vcopyenv_v","$vcopyenv_vt","$tempenver","$solver_assert","$solver_verify"],keywords_srp:["#if","#ifdef","#ifndef","#then","#elif","#elifdef","#elifndef","#else","#endif","#error","#prerr","#print","#assert","#undef","#define","#include","#require","#pragma","#codegen2","#codegen3"],irregular_keyword_list:["val+","val-","val","case+","case-","case","addr@","addr","fold@","free@","fix@","fix","lam@","lam","llam@","llam","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","view+","view-","view@","view","type+","type-","type","vtype+","vtype-","vtype","vt@ype+","vt@ype-","vt@ype","viewt@ype+","viewt@ype-","viewt@ype","viewtype+","viewtype-","viewtype","prop+","prop-","prop","type+","type-","type","t@ype","t@ype+","t@ype-","abst@ype","abstype","absviewt@ype","absvt@ype","for*","for","while*","while"],keywords_types:["bool","double","byte","int","short","char","void","unit","long","float","string","strptr"],keywords_effects:["0","fun","clo","prf","funclo","cloptr","cloref","ref","ntm","1"],operators:["@","!","|","`",":","$",".","=","#","~","..","...","=>","=<>","=/=>","=>>","=/=>>","<",">","><",".<",">.",".<>.","->","-<>"],brackets:[{open:",(",close:")",token:"delimiter.parenthesis"},{open:"`(",close:")",token:"delimiter.parenthesis"},{open:"%(",close:")",token:"delimiter.parenthesis"},{open:"'(",close:")",token:"delimiter.parenthesis"},{open:"'{",close:"}",token:"delimiter.parenthesis"},{open:"@(",close:")",token:"delimiter.parenthesis"},{open:"@{",close:"}",token:"delimiter.brace"},{open:"@[",close:"]",token:"delimiter.square"},{open:"#[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=>]/,digit:/[0-9]/,digitseq0:/@digit*/,xdigit:/[0-9A-Za-z]/,xdigitseq0:/@xdigit*/,INTSP:/[lLuU]/,FLOATSP:/[fFlL]/,fexponent:/[eE][+-]?[0-9]+/,fexponent_bin:/[pP][+-]?[0-9]+/,deciexp:/\.[0-9]*@fexponent?/,hexiexp:/\.[0-9a-zA-Z]*@fexponent_bin?/,irregular_keywords:/val[+-]?|case[+-]?|addr\@?|fold\@|free\@|fix\@?|lam\@?|llam\@?|prop[+-]?|type[+-]?|view[+-@]?|viewt@?ype[+-]?|t@?ype[+-]?|v(iew)?t@?ype[+-]?|abst@?ype|absv(iew)?t@?ype|for\*?|while\*?/,ESCHAR:/[ntvbrfa\\\?'"\(\[\{]/,start:"root",tokenizer:{root:[{regex:/[ \t\r\n]+/,action:{token:""}},{regex:/\(\*\)/,action:{token:"invalid"}},{regex:/\(\*/,action:{token:"comment",next:"lexing_COMMENT_block_ml"}},{regex:/\(/,action:"@brackets"},{regex:/\)/,action:"@brackets"},{regex:/\[/,action:"@brackets"},{regex:/\]/,action:"@brackets"},{regex:/\{/,action:"@brackets"},{regex:/\}/,action:"@brackets"},{regex:/,\(/,action:"@brackets"},{regex:/,/,action:{token:"delimiter.comma"}},{regex:/;/,action:{token:"delimiter.semicolon"}},{regex:/@\(/,action:"@brackets"},{regex:/@\[/,action:"@brackets"},{regex:/@\{/,action:"@brackets"},{regex:/:/,action:{token:"@rematch",next:"@pop"}}],lexing_EXTCODE:[{regex:/^%}/,action:{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}},{regex:/[^%]+/,action:""}],lexing_DQUOTE:[{regex:/"/,action:{token:"string.quote",next:"@pop"}},{regex:/(\{\$)(@IDENTFST@IDENTRST*)(\})/,action:[{token:"string.escape"},{token:"identifier"},{token:"string.escape"}]},{regex:/\\$/,action:{token:"string.escape"}},{regex:/\\(@ESCHAR|[xX]@xdigit+|@digit+)/,action:{token:"string.escape"}},{regex:/[^\\"]+/,action:{token:"string"}}]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/powerquery.3ae39f94.js b/site/themes/template/static/live-editor/assets/powerquery.3ae39f94.js deleted file mode 100644 index 187e43c90..000000000 --- a/site/themes/template/static/live-editor/assets/powerquery.3ae39f94.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["[","]"],["(",")"],["{","}"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment","identifier"]},{open:"[",close:"]",notIn:["string","comment","identifier"]},{open:"(",close:")",notIn:["string","comment","identifier"]},{open:"{",close:"}",notIn:["string","comment","identifier"]}]},t={defaultToken:"",tokenPostfix:".pq",ignoreCase:!1,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"{",close:"}",token:"delimiter.brackets"},{open:"(",close:")",token:"delimiter.parenthesis"}],operatorKeywords:["and","not","or"],keywords:["as","each","else","error","false","if","in","is","let","meta","otherwise","section","shared","then","true","try","type"],constructors:["#binary","#date","#datetime","#datetimezone","#duration","#table","#time"],constants:["#infinity","#nan","#sections","#shared"],typeKeywords:["action","any","anynonnull","none","null","logical","number","time","date","datetime","datetimezone","duration","text","binary","list","record","table","function"],builtinFunctions:["Access.Database","Action.Return","Action.Sequence","Action.Try","ActiveDirectory.Domains","AdoDotNet.DataSource","AdoDotNet.Query","AdobeAnalytics.Cubes","AnalysisServices.Database","AnalysisServices.Databases","AzureStorage.BlobContents","AzureStorage.Blobs","AzureStorage.Tables","Binary.Buffer","Binary.Combine","Binary.Compress","Binary.Decompress","Binary.End","Binary.From","Binary.FromList","Binary.FromText","Binary.InferContentType","Binary.Length","Binary.ToList","Binary.ToText","BinaryFormat.7BitEncodedSignedInteger","BinaryFormat.7BitEncodedUnsignedInteger","BinaryFormat.Binary","BinaryFormat.Byte","BinaryFormat.ByteOrder","BinaryFormat.Choice","BinaryFormat.Decimal","BinaryFormat.Double","BinaryFormat.Group","BinaryFormat.Length","BinaryFormat.List","BinaryFormat.Null","BinaryFormat.Record","BinaryFormat.SignedInteger16","BinaryFormat.SignedInteger32","BinaryFormat.SignedInteger64","BinaryFormat.Single","BinaryFormat.Text","BinaryFormat.Transform","BinaryFormat.UnsignedInteger16","BinaryFormat.UnsignedInteger32","BinaryFormat.UnsignedInteger64","Byte.From","Character.FromNumber","Character.ToNumber","Combiner.CombineTextByDelimiter","Combiner.CombineTextByEachDelimiter","Combiner.CombineTextByLengths","Combiner.CombineTextByPositions","Combiner.CombineTextByRanges","Comparer.Equals","Comparer.FromCulture","Comparer.Ordinal","Comparer.OrdinalIgnoreCase","Csv.Document","Cube.AddAndExpandDimensionColumn","Cube.AddMeasureColumn","Cube.ApplyParameter","Cube.AttributeMemberId","Cube.AttributeMemberProperty","Cube.CollapseAndRemoveColumns","Cube.Dimensions","Cube.DisplayFolders","Cube.Measures","Cube.Parameters","Cube.Properties","Cube.PropertyKey","Cube.ReplaceDimensions","Cube.Transform","Currency.From","DB2.Database","Date.AddDays","Date.AddMonths","Date.AddQuarters","Date.AddWeeks","Date.AddYears","Date.Day","Date.DayOfWeek","Date.DayOfWeekName","Date.DayOfYear","Date.DaysInMonth","Date.EndOfDay","Date.EndOfMonth","Date.EndOfQuarter","Date.EndOfWeek","Date.EndOfYear","Date.From","Date.FromText","Date.IsInCurrentDay","Date.IsInCurrentMonth","Date.IsInCurrentQuarter","Date.IsInCurrentWeek","Date.IsInCurrentYear","Date.IsInNextDay","Date.IsInNextMonth","Date.IsInNextNDays","Date.IsInNextNMonths","Date.IsInNextNQuarters","Date.IsInNextNWeeks","Date.IsInNextNYears","Date.IsInNextQuarter","Date.IsInNextWeek","Date.IsInNextYear","Date.IsInPreviousDay","Date.IsInPreviousMonth","Date.IsInPreviousNDays","Date.IsInPreviousNMonths","Date.IsInPreviousNQuarters","Date.IsInPreviousNWeeks","Date.IsInPreviousNYears","Date.IsInPreviousQuarter","Date.IsInPreviousWeek","Date.IsInPreviousYear","Date.IsInYearToDate","Date.IsLeapYear","Date.Month","Date.MonthName","Date.QuarterOfYear","Date.StartOfDay","Date.StartOfMonth","Date.StartOfQuarter","Date.StartOfWeek","Date.StartOfYear","Date.ToRecord","Date.ToText","Date.WeekOfMonth","Date.WeekOfYear","Date.Year","DateTime.AddZone","DateTime.Date","DateTime.FixedLocalNow","DateTime.From","DateTime.FromFileTime","DateTime.FromText","DateTime.IsInCurrentHour","DateTime.IsInCurrentMinute","DateTime.IsInCurrentSecond","DateTime.IsInNextHour","DateTime.IsInNextMinute","DateTime.IsInNextNHours","DateTime.IsInNextNMinutes","DateTime.IsInNextNSeconds","DateTime.IsInNextSecond","DateTime.IsInPreviousHour","DateTime.IsInPreviousMinute","DateTime.IsInPreviousNHours","DateTime.IsInPreviousNMinutes","DateTime.IsInPreviousNSeconds","DateTime.IsInPreviousSecond","DateTime.LocalNow","DateTime.Time","DateTime.ToRecord","DateTime.ToText","DateTimeZone.FixedLocalNow","DateTimeZone.FixedUtcNow","DateTimeZone.From","DateTimeZone.FromFileTime","DateTimeZone.FromText","DateTimeZone.LocalNow","DateTimeZone.RemoveZone","DateTimeZone.SwitchZone","DateTimeZone.ToLocal","DateTimeZone.ToRecord","DateTimeZone.ToText","DateTimeZone.ToUtc","DateTimeZone.UtcNow","DateTimeZone.ZoneHours","DateTimeZone.ZoneMinutes","Decimal.From","Diagnostics.ActivityId","Diagnostics.Trace","DirectQueryCapabilities.From","Double.From","Duration.Days","Duration.From","Duration.FromText","Duration.Hours","Duration.Minutes","Duration.Seconds","Duration.ToRecord","Duration.ToText","Duration.TotalDays","Duration.TotalHours","Duration.TotalMinutes","Duration.TotalSeconds","Embedded.Value","Error.Record","Excel.CurrentWorkbook","Excel.Workbook","Exchange.Contents","Expression.Constant","Expression.Evaluate","Expression.Identifier","Facebook.Graph","File.Contents","Folder.Contents","Folder.Files","Function.From","Function.Invoke","Function.InvokeAfter","Function.IsDataSource","GoogleAnalytics.Accounts","Guid.From","HdInsight.Containers","HdInsight.Contents","HdInsight.Files","Hdfs.Contents","Hdfs.Files","Informix.Database","Int16.From","Int32.From","Int64.From","Int8.From","ItemExpression.From","Json.Document","Json.FromValue","Lines.FromBinary","Lines.FromText","Lines.ToBinary","Lines.ToText","List.Accumulate","List.AllTrue","List.Alternate","List.AnyTrue","List.Average","List.Buffer","List.Combine","List.Contains","List.ContainsAll","List.ContainsAny","List.Count","List.Covariance","List.DateTimeZones","List.DateTimes","List.Dates","List.Difference","List.Distinct","List.Durations","List.FindText","List.First","List.FirstN","List.Generate","List.InsertRange","List.Intersect","List.IsDistinct","List.IsEmpty","List.Last","List.LastN","List.MatchesAll","List.MatchesAny","List.Max","List.MaxN","List.Median","List.Min","List.MinN","List.Mode","List.Modes","List.NonNullCount","List.Numbers","List.PositionOf","List.PositionOfAny","List.Positions","List.Product","List.Random","List.Range","List.RemoveFirstN","List.RemoveItems","List.RemoveLastN","List.RemoveMatchingItems","List.RemoveNulls","List.RemoveRange","List.Repeat","List.ReplaceMatchingItems","List.ReplaceRange","List.ReplaceValue","List.Reverse","List.Select","List.Single","List.SingleOrDefault","List.Skip","List.Sort","List.StandardDeviation","List.Sum","List.Times","List.Transform","List.TransformMany","List.Union","List.Zip","Logical.From","Logical.FromText","Logical.ToText","MQ.Queue","MySQL.Database","Number.Abs","Number.Acos","Number.Asin","Number.Atan","Number.Atan2","Number.BitwiseAnd","Number.BitwiseNot","Number.BitwiseOr","Number.BitwiseShiftLeft","Number.BitwiseShiftRight","Number.BitwiseXor","Number.Combinations","Number.Cos","Number.Cosh","Number.Exp","Number.Factorial","Number.From","Number.FromText","Number.IntegerDivide","Number.IsEven","Number.IsNaN","Number.IsOdd","Number.Ln","Number.Log","Number.Log10","Number.Mod","Number.Permutations","Number.Power","Number.Random","Number.RandomBetween","Number.Round","Number.RoundAwayFromZero","Number.RoundDown","Number.RoundTowardZero","Number.RoundUp","Number.Sign","Number.Sin","Number.Sinh","Number.Sqrt","Number.Tan","Number.Tanh","Number.ToText","OData.Feed","Odbc.DataSource","Odbc.Query","OleDb.DataSource","OleDb.Query","Oracle.Database","Percentage.From","PostgreSQL.Database","RData.FromBinary","Record.AddField","Record.Combine","Record.Field","Record.FieldCount","Record.FieldNames","Record.FieldOrDefault","Record.FieldValues","Record.FromList","Record.FromTable","Record.HasFields","Record.RemoveFields","Record.RenameFields","Record.ReorderFields","Record.SelectFields","Record.ToList","Record.ToTable","Record.TransformFields","Replacer.ReplaceText","Replacer.ReplaceValue","RowExpression.Column","RowExpression.From","Salesforce.Data","Salesforce.Reports","SapBusinessWarehouse.Cubes","SapHana.Database","SharePoint.Contents","SharePoint.Files","SharePoint.Tables","Single.From","Soda.Feed","Splitter.SplitByNothing","Splitter.SplitTextByAnyDelimiter","Splitter.SplitTextByDelimiter","Splitter.SplitTextByEachDelimiter","Splitter.SplitTextByLengths","Splitter.SplitTextByPositions","Splitter.SplitTextByRanges","Splitter.SplitTextByRepeatedLengths","Splitter.SplitTextByWhitespace","Sql.Database","Sql.Databases","SqlExpression.SchemaFrom","SqlExpression.ToExpression","Sybase.Database","Table.AddColumn","Table.AddIndexColumn","Table.AddJoinColumn","Table.AddKey","Table.AggregateTableColumn","Table.AlternateRows","Table.Buffer","Table.Column","Table.ColumnCount","Table.ColumnNames","Table.ColumnsOfType","Table.Combine","Table.CombineColumns","Table.Contains","Table.ContainsAll","Table.ContainsAny","Table.DemoteHeaders","Table.Distinct","Table.DuplicateColumn","Table.ExpandListColumn","Table.ExpandRecordColumn","Table.ExpandTableColumn","Table.FillDown","Table.FillUp","Table.FilterWithDataTable","Table.FindText","Table.First","Table.FirstN","Table.FirstValue","Table.FromColumns","Table.FromList","Table.FromPartitions","Table.FromRecords","Table.FromRows","Table.FromValue","Table.Group","Table.HasColumns","Table.InsertRows","Table.IsDistinct","Table.IsEmpty","Table.Join","Table.Keys","Table.Last","Table.LastN","Table.MatchesAllRows","Table.MatchesAnyRows","Table.Max","Table.MaxN","Table.Min","Table.MinN","Table.NestedJoin","Table.Partition","Table.PartitionValues","Table.Pivot","Table.PositionOf","Table.PositionOfAny","Table.PrefixColumns","Table.Profile","Table.PromoteHeaders","Table.Range","Table.RemoveColumns","Table.RemoveFirstN","Table.RemoveLastN","Table.RemoveMatchingRows","Table.RemoveRows","Table.RemoveRowsWithErrors","Table.RenameColumns","Table.ReorderColumns","Table.Repeat","Table.ReplaceErrorValues","Table.ReplaceKeys","Table.ReplaceMatchingRows","Table.ReplaceRelationshipIdentity","Table.ReplaceRows","Table.ReplaceValue","Table.ReverseRows","Table.RowCount","Table.Schema","Table.SelectColumns","Table.SelectRows","Table.SelectRowsWithErrors","Table.SingleRow","Table.Skip","Table.Sort","Table.SplitColumn","Table.ToColumns","Table.ToList","Table.ToRecords","Table.ToRows","Table.TransformColumnNames","Table.TransformColumnTypes","Table.TransformColumns","Table.TransformRows","Table.Transpose","Table.Unpivot","Table.UnpivotOtherColumns","Table.View","Table.ViewFunction","TableAction.DeleteRows","TableAction.InsertRows","TableAction.UpdateRows","Tables.GetRelationships","Teradata.Database","Text.AfterDelimiter","Text.At","Text.BeforeDelimiter","Text.BetweenDelimiters","Text.Clean","Text.Combine","Text.Contains","Text.End","Text.EndsWith","Text.Format","Text.From","Text.FromBinary","Text.Insert","Text.Length","Text.Lower","Text.Middle","Text.NewGuid","Text.PadEnd","Text.PadStart","Text.PositionOf","Text.PositionOfAny","Text.Proper","Text.Range","Text.Remove","Text.RemoveRange","Text.Repeat","Text.Replace","Text.ReplaceRange","Text.Select","Text.Split","Text.SplitAny","Text.Start","Text.StartsWith","Text.ToBinary","Text.ToList","Text.Trim","Text.TrimEnd","Text.TrimStart","Text.Upper","Time.EndOfHour","Time.From","Time.FromText","Time.Hour","Time.Minute","Time.Second","Time.StartOfHour","Time.ToRecord","Time.ToText","Type.AddTableKey","Type.ClosedRecord","Type.Facets","Type.ForFunction","Type.ForRecord","Type.FunctionParameters","Type.FunctionRequiredParameters","Type.FunctionReturn","Type.Is","Type.IsNullable","Type.IsOpenRecord","Type.ListItem","Type.NonNullable","Type.OpenRecord","Type.RecordFields","Type.ReplaceFacets","Type.ReplaceTableKeys","Type.TableColumn","Type.TableKeys","Type.TableRow","Type.TableSchema","Type.Union","Uri.BuildQueryString","Uri.Combine","Uri.EscapeDataString","Uri.Parts","Value.Add","Value.As","Value.Compare","Value.Divide","Value.Equals","Value.Firewall","Value.FromText","Value.Is","Value.Metadata","Value.Multiply","Value.NativeQuery","Value.NullableEquals","Value.RemoveMetadata","Value.ReplaceMetadata","Value.ReplaceType","Value.Subtract","Value.Type","ValueAction.NativeStatement","ValueAction.Replace","Variable.Value","Web.Contents","Web.Page","WebAction.Request","Xml.Document","Xml.Tables"],builtinConstants:["BinaryEncoding.Base64","BinaryEncoding.Hex","BinaryOccurrence.Optional","BinaryOccurrence.Repeating","BinaryOccurrence.Required","ByteOrder.BigEndian","ByteOrder.LittleEndian","Compression.Deflate","Compression.GZip","CsvStyle.QuoteAfterDelimiter","CsvStyle.QuoteAlways","Culture.Current","Day.Friday","Day.Monday","Day.Saturday","Day.Sunday","Day.Thursday","Day.Tuesday","Day.Wednesday","ExtraValues.Error","ExtraValues.Ignore","ExtraValues.List","GroupKind.Global","GroupKind.Local","JoinAlgorithm.Dynamic","JoinAlgorithm.LeftHash","JoinAlgorithm.LeftIndex","JoinAlgorithm.PairwiseHash","JoinAlgorithm.RightHash","JoinAlgorithm.RightIndex","JoinAlgorithm.SortMerge","JoinKind.FullOuter","JoinKind.Inner","JoinKind.LeftAnti","JoinKind.LeftOuter","JoinKind.RightAnti","JoinKind.RightOuter","JoinSide.Left","JoinSide.Right","MissingField.Error","MissingField.Ignore","MissingField.UseNull","Number.E","Number.Epsilon","Number.NaN","Number.NegativeInfinity","Number.PI","Number.PositiveInfinity","Occurrence.All","Occurrence.First","Occurrence.Last","Occurrence.Optional","Occurrence.Repeating","Occurrence.Required","Order.Ascending","Order.Descending","Precision.Decimal","Precision.Double","QuoteStyle.Csv","QuoteStyle.None","RelativePosition.FromEnd","RelativePosition.FromStart","RoundingMode.AwayFromZero","RoundingMode.Down","RoundingMode.ToEven","RoundingMode.TowardZero","RoundingMode.Up","SapHanaDistribution.All","SapHanaDistribution.Connection","SapHanaDistribution.Off","SapHanaDistribution.Statement","SapHanaRangeOperator.Equals","SapHanaRangeOperator.GreaterThan","SapHanaRangeOperator.GreaterThanOrEquals","SapHanaRangeOperator.LessThan","SapHanaRangeOperator.LessThanOrEquals","SapHanaRangeOperator.NotEquals","TextEncoding.Ascii","TextEncoding.BigEndianUnicode","TextEncoding.Unicode","TextEncoding.Utf16","TextEncoding.Utf8","TextEncoding.Windows","TraceLevel.Critical","TraceLevel.Error","TraceLevel.Information","TraceLevel.Verbose","TraceLevel.Warning","WebMethod.Delete","WebMethod.Get","WebMethod.Head","WebMethod.Patch","WebMethod.Post","WebMethod.Put"],builtinTypes:["Action.Type","Any.Type","Binary.Type","BinaryEncoding.Type","BinaryOccurrence.Type","Byte.Type","ByteOrder.Type","Character.Type","Compression.Type","CsvStyle.Type","Currency.Type","Date.Type","DateTime.Type","DateTimeZone.Type","Day.Type","Decimal.Type","Double.Type","Duration.Type","ExtraValues.Type","Function.Type","GroupKind.Type","Guid.Type","Int16.Type","Int32.Type","Int64.Type","Int8.Type","JoinAlgorithm.Type","JoinKind.Type","JoinSide.Type","List.Type","Logical.Type","MissingField.Type","None.Type","Null.Type","Number.Type","Occurrence.Type","Order.Type","Password.Type","Percentage.Type","Precision.Type","QuoteStyle.Type","Record.Type","RelativePosition.Type","RoundingMode.Type","SapHanaDistribution.Type","SapHanaRangeOperator.Type","Single.Type","Table.Type","Text.Type","TextEncoding.Type","Time.Type","TraceLevel.Type","Type.Type","Uri.Type","WebMethod.Type"],tokenizer:{root:[[/#"[\w \.]+"/,"identifier.quote"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+/,"number.hex"],[/\d+([eE][\-+]?\d+)?/,"number"],[/(#?[a-z]+)\b/,{cases:{"@typeKeywords":"type","@keywords":"keyword","@constants":"constant","@constructors":"constructor","@operatorKeywords":"operators","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.Type)\b/,{cases:{"@builtinTypes":"type","@default":"identifier"}}],[/\b([A-Z][a-zA-Z0-9]+\.[A-Z][a-zA-Z0-9]+)\b/,{cases:{"@builtinFunctions":"keyword.function","@builtinConstants":"constant","@default":"identifier"}}],[/\b([a-zA-Z_][\w\.]*)\b/,"identifier"],{include:"@whitespace"},{include:"@comments"},{include:"@strings"},[/[{}()\[\]]/,"@brackets"],[/([=\+<>\-\*&@\?\/!])|([<>]=)|(<>)|(=>)|(\.\.\.)|(\.\.)/,"operators"],[/[,;]/,"delimiter"]],whitespace:[[/\s+/,"white"]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],strings:[['"',"string","@string"]],string:[['""',"string.escape"],['"',"string","@pop"],[".","string"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/powershell.5ee99642.js b/site/themes/template/static/live-editor/assets/powershell.5ee99642.js deleted file mode 100644 index 91fd2153d..000000000 --- a/site/themes/template/static/live-editor/assets/powershell.5ee99642.js +++ /dev/null @@ -1 +0,0 @@ -var e={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#%\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:"#",blockComment:["<#","#>"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},n={defaultToken:"",ignoreCase:!0,tokenPostfix:".ps1",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["begin","break","catch","class","continue","data","define","do","dynamicparam","else","elseif","end","exit","filter","finally","for","foreach","from","function","if","in","param","process","return","switch","throw","trap","try","until","using","var","while","workflow","parallel","sequence","inlinescript","configuration"],helpKeywords:/SYNOPSIS|DESCRIPTION|PARAMETER|EXAMPLE|INPUTS|OUTPUTS|NOTES|LINK|COMPONENT|ROLE|FUNCTIONALITY|FORWARDHELPTARGETNAME|FORWARDHELPCATEGORY|REMOTEHELPRUNSPACE|EXTERNALHELP/,symbols:/[=>/,"comment","@pop"],[/(\.)(@helpKeywords)(?!\w)/,{token:"comment.keyword.$2"}],[/[\.#]/,"comment"]]}};export{e as conf,n as language}; diff --git a/site/themes/template/static/live-editor/assets/protobuf.9812d7f9.js b/site/themes/template/static/live-editor/assets/protobuf.9812d7f9.js deleted file mode 100644 index d566faa3d..000000000 --- a/site/themes/template/static/live-editor/assets/protobuf.9812d7f9.js +++ /dev/null @@ -1,2 +0,0 @@ -var e=["true","false"],t={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"'},{open:"'",close:"'"}],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],autoCloseBefore:`.,=}])>' - `,indentationRules:{increaseIndentPattern:new RegExp("^((?!\\/\\/).)*(\\{[^}\"'`]*|\\([^)\"'`]*|\\[[^\\]\"'`]*)$"),decreaseIndentPattern:new RegExp("^((?!.*?\\/\\*).*\\*/)?\\s*[\\}\\]].*$")}},n={defaultToken:"",tokenPostfix:".proto",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],symbols:/[=>/,{token:"@brackets",bracket:"@close",switchTo:"identifier"}]],field:[{include:"@whitespace"},["group",{cases:{"$S2==proto2":{token:"keyword",switchTo:"@groupDecl.$S2"}}}],[/(@identifier)(\s*)(=)/,["identifier","white",{token:"delimiter",next:"@pop"}]],[/@fullIdentifier|\./,{cases:{"@builtinTypes":"keyword","@default":"type.identifier"}}]],groupDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],["=","operator"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@messageBody.$S2"}],{include:"@constant"}],type:[{include:"@whitespace"},[/@identifier/,"type.identifier","@pop"],[/./,"delimiter"]],identifier:[{include:"@whitespace"},[/@identifier/,"identifier","@pop"]],serviceDecl:[{include:"@whitespace"},[/@identifier/,"identifier"],[/{/,{token:"@brackets",bracket:"@open",switchTo:"@serviceBody.$S2"}]],serviceBody:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],[/option\b/,"keyword","@option.$S2"],[/rpc\b/,"keyword","@rpc.$S2"],[/\[/,{token:"@brackets",bracket:"@open",next:"@options.$S2"}],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],rpc:[{include:"@whitespace"},[/@identifier/,"identifier"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@request.$S2"}],[/{/,{token:"@brackets",bracket:"@open",next:"@methodOptions.$S2"}],[/;/,"delimiter","@pop"]],request:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@returns.$S2"}]],returns:[{include:"@whitespace"},[/returns\b/,"keyword"],[/\(/,{token:"@brackets",bracket:"@open",switchTo:"@response.$S2"}]],response:[{include:"@whitespace"},[/@messageType/,{cases:{stream:{token:"keyword",next:"@type.$S2"},"@default":"type.identifier"}}],[/\)/,{token:"@brackets",bracket:"@close",switchTo:"@rpc.$S2"}]],methodOptions:[{include:"@whitespace"},{include:"@constant"},[/;/,"delimiter"],["option","keyword"],[/@optionName/,"annotation"],[/[()]/,"annotation.brackets"],[/=/,"operator"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringSingle:[[/[^\\']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/'/,{token:"string.quote",bracket:"@close",next:"@pop"}]],constant:[["@boolLit","keyword.constant"],["@hexLit","number.hex"],["@octalLit","number.octal"],["@decimalLit","number"],["@floatLit","number.float"],[/("([^"\\]|\\.)*|'([^'\\]|\\.)*)$/,"string.invalid"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/'/,{token:"string.quote",bracket:"@open",next:"@stringSingle"}],[/{/,{token:"@brackets",bracket:"@open",next:"@prototext"}],[/identifier/,"identifier"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],prototext:[{include:"@whitespace"},{include:"@constant"},[/@identifier/,"identifier"],[/[:;]/,"delimiter"],[/}/,{token:"@brackets",bracket:"@close",next:"@pop"}]]}};export{t as conf,n as language}; diff --git a/site/themes/template/static/live-editor/assets/pug.d4a411ff.js b/site/themes/template/static/live-editor/assets/pug.d4a411ff.js deleted file mode 100644 index 66bb16867..000000000 --- a/site/themes/template/static/live-editor/assets/pug.d4a411ff.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}],folding:{offSide:!0}},t={defaultToken:"",tokenPostfix:".pug",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"}],keywords:["append","block","case","default","doctype","each","else","extends","for","if","in","include","mixin","typeof","unless","var","when"],tags:["a","abbr","acronym","address","area","article","aside","audio","b","base","basefont","bdi","bdo","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","keygen","kbd","label","li","link","map","mark","menu","meta","meter","nav","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strike","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","tracks","tt","u","ul","video","wbr"],symbols:/[\+\-\*\%\&\|\!\=\/\.\,\:]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[[/^(\s*)([a-zA-Z_-][\w-]*)/,{cases:{"$2@tags":{cases:{"@eos":["","tag"],"@default":["",{token:"tag",next:"@tag.$1"}]}},"$2@keywords":["",{token:"keyword.$2"}],"@default":["",""]}}],[/^(\s*)(#[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.id"],"@default":["",{token:"tag.id",next:"@tag.$1"}]}}],[/^(\s*)(\.[a-zA-Z_-][\w-]*)/,{cases:{"@eos":["","tag.class"],"@default":["",{token:"tag.class",next:"@tag.$1"}]}}],[/^(\s*)(\|.*)$/,""],{include:"@whitespace"},[/[a-zA-Z_$][\w$]*/,{cases:{"@keywords":{token:"keyword.$0"},"@default":""}}],[/[{}()\[\]]/,"@brackets"],[/@symbols/,"delimiter"],[/\d+\.\d+([eE][\-+]?\d+)?/,"number.float"],[/\d+/,"number"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],tag:[[/(\.)(\s*$)/,[{token:"delimiter",next:"@blockText.$S2."},""]],[/\s+/,{token:"",next:"@simpleText"}],[/#[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.id",next:"@pop"},"@default":"tag.id"}}],[/\.[a-zA-Z_-][\w-]*/,{cases:{"@eos":{token:"tag.class",next:"@pop"},"@default":"tag.class"}}],[/\(/,{token:"delimiter.parenthesis",next:"@attributeList"}]],simpleText:[[/[^#]+$/,{token:"",next:"@popall"}],[/[^#]+/,{token:""}],[/(#{)([^}]*)(})/,{cases:{"@eos":["interpolation.delimiter","interpolation",{token:"interpolation.delimiter",next:"@popall"}],"@default":["interpolation.delimiter","interpolation","interpolation.delimiter"]}}],[/#$/,{token:"",next:"@popall"}],[/#/,""]],attributeList:[[/\s+/,""],[/(\w+)(\s*=\s*)("|')/,["attribute.name","delimiter",{token:"attribute.value",next:"@value.$3"}]],[/\w+/,"attribute.name"],[/,/,{cases:{"@eos":{token:"attribute.delimiter",next:"@popall"},"@default":"attribute.delimiter"}}],[/\)$/,{token:"delimiter.parenthesis",next:"@popall"}],[/\)/,{token:"delimiter.parenthesis",next:"@pop"}]],whitespace:[[/^(\s*)(\/\/.*)$/,{token:"comment",next:"@blockText.$1.comment"}],[/[ \t\r\n]+/,""],[//,{token:"comment",next:"@pop"}],[/"]},brackets:[[""],["<",">"],["{","}"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"<",close:">"}],onEnterRules:[{beforeText:new RegExp("<(?!(?:"+t.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:new RegExp("<(?!(?:"+t.join("|")+"))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$","i"),action:{indentAction:e.IndentAction.Indent}}]},m={defaultToken:"",tokenPostfix:"",tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.root"}],[/)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)(script)/,["delimiter.html",{token:"tag.html",next:"@script"}]],[/(<)(style)/,["delimiter.html",{token:"tag.html",next:"@style"}]],[/(<)([:\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/(<\/)([\w\-]+)/,["delimiter.html",{token:"tag.html",next:"@otherTag"}]],[/]+/,"metatag.content.html"],[/>/,"metatag.html","@pop"]],comment:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.comment"}],[/-->/,"comment.html","@pop"],[/[^-]+/,"comment.content.html"],[/./,"comment.content.html"]],otherTag:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.otherTag"}],[/\/?>/,"delimiter.html","@pop"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.script"}],[/type/,"attribute.name","@scriptAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],scriptAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterType"}],[/=/,"delimiter","@scriptAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@scriptWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.text/javascript",nextEmbedded:"text/javascript"}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.scriptWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@scriptEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:"@rematch",next:"@pop"}]],scriptEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.scriptEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/script/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],style:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.style"}],[/type/,"attribute.name","@styleAfterType"],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,["delimiter.html","tag.html",{token:"delimiter.html",next:"@pop"}]]],styleAfterType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterType"}],[/=/,"delimiter","@styleAfterTypeEquals"],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleAfterTypeEquals:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleAfterTypeEquals"}],[/"([^"]*)"/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/'([^']*)'/,{token:"attribute.value",switchTo:"@styleWithCustomType.$1"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.text/css",nextEmbedded:"text/css"}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleWithCustomType:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInSimpleState.styleWithCustomType.$S2"}],[/>/,{token:"delimiter.html",next:"@styleEmbedded.$S2",nextEmbedded:"$S2"}],[/"([^"]*)"/,"attribute.value"],[/'([^']*)'/,"attribute.value"],[/[\w\-]+/,"attribute.name"],[/=/,"delimiter"],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:"@rematch",next:"@pop"}]],styleEmbedded:[[/@[^@]/,{token:"@rematch",switchTo:"@razorInEmbeddedState.styleEmbedded.$S2",nextEmbedded:"@pop"}],[/<\/style/,{token:"@rematch",next:"@pop",nextEmbedded:"@pop"}]],razorInSimpleState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3"}]],razorInEmbeddedState:[[/@\*/,"comment.cs","@razorBlockCommentTopLevel"],[/@[{(]/,"metatag.cs","@razorRootTopLevel"],[/(@)(\s*[\w]+)/,["metatag.cs",{token:"identifier.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],[/[})]/,{token:"metatag.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}],[/\*@/,{token:"comment.cs",switchTo:"@$S2.$S3",nextEmbedded:"$S3"}]],razorBlockCommentTopLevel:[[/\*@/,"@rematch","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorBlockComment:[[/\*@/,"comment.cs","@pop"],[/[^*]+/,"comment.cs"],[/./,"comment.cs"]],razorRootTopLevel:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/[})]/,"@rematch","@pop"],{include:"razorCommon"}],razorRoot:[[/\{/,"delimiter.bracket.cs","@razorRoot"],[/\(/,"delimiter.parenthesis.cs","@razorRoot"],[/\}/,"delimiter.bracket.cs","@pop"],[/\)/,"delimiter.parenthesis.cs","@pop"],{include:"razorCommon"}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:"keyword.cs"},"@default":"identifier.cs"}}],[/[\[\]]/,"delimiter.array.cs"],[/[ \t\r\n]+/],[/\/\/.*$/,"comment.cs"],[/@\*/,"comment.cs","@razorBlockComment"],[/"([^"]*)"/,"string.cs"],[/'([^']*)'/,"string.cs"],[/(<)([\w\-]+)(\/>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/(<\/)([\w\-]+)(>)/,["delimiter.html","tag.html","delimiter.html"]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,"delimiter.cs"],[/\d*\d+[eE]([\-+]?\d+)?/,"number.float.cs"],[/\d*\.\d+([eE][\-+]?\d+)?/,"number.float.cs"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,"number.hex.cs"],[/0[0-7']*[0-7]/,"number.octal.cs"],[/0[bB][0-1']*[0-1]/,"number.binary.cs"],[/\d[\d']*/,"number.cs"],[/\d/,"number.cs"]]},razorKeywords:["abstract","as","async","await","base","bool","break","by","byte","case","catch","char","checked","class","const","continue","decimal","default","delegate","do","double","descending","explicit","event","extern","else","enum","false","finally","fixed","float","for","foreach","from","goto","group","if","implicit","in","int","interface","internal","into","is","lock","long","nameof","new","null","namespace","object","operator","out","override","orderby","params","private","protected","public","readonly","ref","return","switch","struct","sbyte","sealed","short","sizeof","stackalloc","static","string","select","this","throw","true","try","typeof","uint","ulong","unchecked","unsafe","ushort","using","var","virtual","volatile","void","when","while","where","yield","model","inject"],escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{o as conf,m as language}; diff --git a/site/themes/template/static/live-editor/assets/redis.3d4c8e9a.js b/site/themes/template/static/live-editor/assets/redis.3d4c8e9a.js deleted file mode 100644 index a3b921da5..000000000 --- a/site/themes/template/static/live-editor/assets/redis.3d4c8e9a.js +++ /dev/null @@ -1 +0,0 @@ -var E={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},S={defaultToken:"",tokenPostfix:".redis",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["APPEND","AUTH","BGREWRITEAOF","BGSAVE","BITCOUNT","BITFIELD","BITOP","BITPOS","BLPOP","BRPOP","BRPOPLPUSH","CLIENT","KILL","LIST","GETNAME","PAUSE","REPLY","SETNAME","CLUSTER","ADDSLOTS","COUNT-FAILURE-REPORTS","COUNTKEYSINSLOT","DELSLOTS","FAILOVER","FORGET","GETKEYSINSLOT","INFO","KEYSLOT","MEET","NODES","REPLICATE","RESET","SAVECONFIG","SET-CONFIG-EPOCH","SETSLOT","SLAVES","SLOTS","COMMAND","COUNT","GETKEYS","CONFIG","GET","REWRITE","SET","RESETSTAT","DBSIZE","DEBUG","OBJECT","SEGFAULT","DECR","DECRBY","DEL","DISCARD","DUMP","ECHO","EVAL","EVALSHA","EXEC","EXISTS","EXPIRE","EXPIREAT","FLUSHALL","FLUSHDB","GEOADD","GEOHASH","GEOPOS","GEODIST","GEORADIUS","GEORADIUSBYMEMBER","GETBIT","GETRANGE","GETSET","HDEL","HEXISTS","HGET","HGETALL","HINCRBY","HINCRBYFLOAT","HKEYS","HLEN","HMGET","HMSET","HSET","HSETNX","HSTRLEN","HVALS","INCR","INCRBY","INCRBYFLOAT","KEYS","LASTSAVE","LINDEX","LINSERT","LLEN","LPOP","LPUSH","LPUSHX","LRANGE","LREM","LSET","LTRIM","MGET","MIGRATE","MONITOR","MOVE","MSET","MSETNX","MULTI","PERSIST","PEXPIRE","PEXPIREAT","PFADD","PFCOUNT","PFMERGE","PING","PSETEX","PSUBSCRIBE","PUBSUB","PTTL","PUBLISH","PUNSUBSCRIBE","QUIT","RANDOMKEY","READONLY","READWRITE","RENAME","RENAMENX","RESTORE","ROLE","RPOP","RPOPLPUSH","RPUSH","RPUSHX","SADD","SAVE","SCARD","SCRIPT","FLUSH","LOAD","SDIFF","SDIFFSTORE","SELECT","SETBIT","SETEX","SETNX","SETRANGE","SHUTDOWN","SINTER","SINTERSTORE","SISMEMBER","SLAVEOF","SLOWLOG","SMEMBERS","SMOVE","SORT","SPOP","SRANDMEMBER","SREM","STRLEN","SUBSCRIBE","SUNION","SUNIONSTORE","SWAPDB","SYNC","TIME","TOUCH","TTL","TYPE","UNSUBSCRIBE","UNLINK","UNWATCH","WAIT","WATCH","ZADD","ZCARD","ZCOUNT","ZINCRBY","ZINTERSTORE","ZLEXCOUNT","ZRANGE","ZRANGEBYLEX","ZREVRANGEBYLEX","ZRANGEBYSCORE","ZRANK","ZREM","ZREMRANGEBYLEX","ZREMRANGEBYRANK","ZREMRANGEBYSCORE","ZREVRANGE","ZREVRANGEBYSCORE","ZREVRANK","ZSCORE","ZUNIONSTORE","SCAN","SSCAN","HSCAN","ZSCAN"],operators:[],builtinFunctions:[],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}],[/"/,{token:"string.double",next:"@stringDouble"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],stringDouble:[[/[^"]+/,"string.double"],[/""/,"string.double"],[/"/,{token:"string.double",next:"@pop"}]],scopes:[]}};export{E as conf,S as language}; diff --git a/site/themes/template/static/live-editor/assets/redshift.1f70c0fe.js b/site/themes/template/static/live-editor/assets/redshift.1f70c0fe.js deleted file mode 100644 index 3c6c2b9a2..000000000 --- a/site/themes/template/static/live-editor/assets/redshift.1f70c0fe.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},_={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["AES128","AES256","ALL","ALLOWOVERWRITE","ANALYSE","ANALYZE","AND","ANY","ARRAY","AS","ASC","AUTHORIZATION","BACKUP","BETWEEN","BINARY","BLANKSASNULL","BOTH","BY","BYTEDICT","BZIP2","CASE","CAST","CHECK","COLLATE","COLUMN","CONSTRAINT","CREATE","CREDENTIALS","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURRENT_USER_ID","DEFAULT","DEFERRABLE","DEFLATE","DEFRAG","DELTA","DELTA32K","DESC","DISABLE","DISTINCT","DO","ELSE","EMPTYASNULL","ENABLE","ENCODE","ENCRYPT","ENCRYPTION","END","EXCEPT","EXPLICIT","FALSE","FOR","FOREIGN","FREEZE","FROM","FULL","GLOBALDICT256","GLOBALDICT64K","GRANT","GROUP","GZIP","HAVING","IDENTITY","IGNORE","ILIKE","IN","INITIALLY","INNER","INTERSECT","INTO","IS","ISNULL","JOIN","LEADING","LEFT","LIKE","LIMIT","LOCALTIME","LOCALTIMESTAMP","LUN","LUNS","LZO","LZOP","MINUS","MOSTLY13","MOSTLY32","MOSTLY8","NATURAL","NEW","NOT","NOTNULL","NULL","NULLS","OFF","OFFLINE","OFFSET","OID","OLD","ON","ONLY","OPEN","OR","ORDER","OUTER","OVERLAPS","PARALLEL","PARTITION","PERCENT","PERMISSIONS","PLACING","PRIMARY","RAW","READRATIO","RECOVER","REFERENCES","RESPECT","REJECTLOG","RESORT","RESTORE","RIGHT","SELECT","SESSION_USER","SIMILAR","SNAPSHOT","SOME","SYSDATE","SYSTEM","TABLE","TAG","TDES","TEXT255","TEXT32K","THEN","TIMESTAMP","TO","TOP","TRAILING","TRUE","TRUNCATECOLUMNS","UNION","UNIQUE","USER","USING","VERBOSE","WALLET","WHEN","WHERE","WITH","WITHOUT"],operators:["AND","BETWEEN","IN","LIKE","NOT","OR","IS","NULL","INTERSECT","UNION","INNER","JOIN","LEFT","OUTER","RIGHT"],builtinFunctions:["current_schema","current_schemas","has_database_privilege","has_schema_privilege","has_table_privilege","age","current_time","current_timestamp","localtime","isfinite","now","ascii","get_bit","get_byte","set_bit","set_byte","to_ascii","approximate percentile_disc","avg","count","listagg","max","median","min","percentile_cont","stddev_samp","stddev_pop","sum","var_samp","var_pop","bit_and","bit_or","bool_and","bool_or","cume_dist","first_value","lag","last_value","lead","nth_value","ratio_to_report","dense_rank","ntile","percent_rank","rank","row_number","case","coalesce","decode","greatest","least","nvl","nvl2","nullif","add_months","at time zone","convert_timezone","current_date","date_cmp","date_cmp_timestamp","date_cmp_timestamptz","date_part_year","dateadd","datediff","date_part","date_trunc","extract","getdate","interval_cmp","last_day","months_between","next_day","sysdate","timeofday","timestamp_cmp","timestamp_cmp_date","timestamp_cmp_timestamptz","timestamptz_cmp","timestamptz_cmp_date","timestamptz_cmp_timestamp","timezone","to_timestamp","trunc","abs","acos","asin","atan","atan2","cbrt","ceil","ceiling","checksum","cos","cot","degrees","dexp","dlog1","dlog10","exp","floor","ln","log","mod","pi","power","radians","random","round","sin","sign","sqrt","tan","to_hex","bpcharcmp","btrim","bttext_pattern_cmp","char_length","character_length","charindex","chr","concat","crc32","func_sha1","initcap","left and rights","len","length","lower","lpad and rpads","ltrim","md5","octet_length","position","quote_ident","quote_literal","regexp_count","regexp_instr","regexp_replace","regexp_substr","repeat","replace","replicate","reverse","rtrim","split_part","strpos","strtol","substring","textlen","translate","trim","upper","cast","convert","to_char","to_date","to_number","json_array_length","json_extract_array_element_text","json_extract_path_text","current_setting","pg_cancel_backend","pg_terminate_backend","set_config","current_database","current_user","current_user_id","pg_backend_pid","pg_last_copy_count","pg_last_copy_id","pg_last_query_id","pg_last_unload_count","session_user","slice_num","user","version","abbrev","acosd","any","area","array_agg","array_append","array_cat","array_dims","array_fill","array_length","array_lower","array_ndims","array_position","array_positions","array_prepend","array_remove","array_replace","array_to_json","array_to_string","array_to_tsvector","array_upper","asind","atan2d","atand","bit","bit_length","bound_box","box","brin_summarize_new_values","broadcast","cardinality","center","circle","clock_timestamp","col_description","concat_ws","convert_from","convert_to","corr","cosd","cotd","covar_pop","covar_samp","current_catalog","current_query","current_role","currval","cursor_to_xml","diameter","div","encode","enum_first","enum_last","enum_range","every","family","format","format_type","generate_series","generate_subscripts","get_current_ts_config","gin_clean_pending_list","grouping","has_any_column_privilege","has_column_privilege","has_foreign_data_wrapper_privilege","has_function_privilege","has_language_privilege","has_sequence_privilege","has_server_privilege","has_tablespace_privilege","has_type_privilege","height","host","hostmask","inet_client_addr","inet_client_port","inet_merge","inet_same_family","inet_server_addr","inet_server_port","isclosed","isempty","isopen","json_agg","json_object","json_object_agg","json_populate_record","json_populate_recordset","json_to_record","json_to_recordset","jsonb_agg","jsonb_object_agg","justify_days","justify_hours","justify_interval","lastval","left","line","localtimestamp","lower_inc","lower_inf","lpad","lseg","make_date","make_interval","make_time","make_timestamp","make_timestamptz","masklen","mode","netmask","network","nextval","npoints","num_nonnulls","num_nulls","numnode","obj_description","overlay","parse_ident","path","pclose","percentile_disc","pg_advisory_lock","pg_advisory_lock_shared","pg_advisory_unlock","pg_advisory_unlock_all","pg_advisory_unlock_shared","pg_advisory_xact_lock","pg_advisory_xact_lock_shared","pg_backup_start_time","pg_blocking_pids","pg_client_encoding","pg_collation_is_visible","pg_column_size","pg_conf_load_time","pg_control_checkpoint","pg_control_init","pg_control_recovery","pg_control_system","pg_conversion_is_visible","pg_create_logical_replication_slot","pg_create_physical_replication_slot","pg_create_restore_point","pg_current_xlog_flush_location","pg_current_xlog_insert_location","pg_current_xlog_location","pg_database_size","pg_describe_object","pg_drop_replication_slot","pg_export_snapshot","pg_filenode_relation","pg_function_is_visible","pg_get_constraintdef","pg_get_expr","pg_get_function_arguments","pg_get_function_identity_arguments","pg_get_function_result","pg_get_functiondef","pg_get_indexdef","pg_get_keywords","pg_get_object_address","pg_get_owned_sequence","pg_get_ruledef","pg_get_serial_sequence","pg_get_triggerdef","pg_get_userbyid","pg_get_viewdef","pg_has_role","pg_identify_object","pg_identify_object_as_address","pg_index_column_has_property","pg_index_has_property","pg_indexam_has_property","pg_indexes_size","pg_is_in_backup","pg_is_in_recovery","pg_is_other_temp_schema","pg_is_xlog_replay_paused","pg_last_committed_xact","pg_last_xact_replay_timestamp","pg_last_xlog_receive_location","pg_last_xlog_replay_location","pg_listening_channels","pg_logical_emit_message","pg_logical_slot_get_binary_changes","pg_logical_slot_get_changes","pg_logical_slot_peek_binary_changes","pg_logical_slot_peek_changes","pg_ls_dir","pg_my_temp_schema","pg_notification_queue_usage","pg_opclass_is_visible","pg_operator_is_visible","pg_opfamily_is_visible","pg_options_to_table","pg_postmaster_start_time","pg_read_binary_file","pg_read_file","pg_relation_filenode","pg_relation_filepath","pg_relation_size","pg_reload_conf","pg_replication_origin_create","pg_replication_origin_drop","pg_replication_origin_oid","pg_replication_origin_progress","pg_replication_origin_session_is_setup","pg_replication_origin_session_progress","pg_replication_origin_session_reset","pg_replication_origin_session_setup","pg_replication_origin_xact_reset","pg_replication_origin_xact_setup","pg_rotate_logfile","pg_size_bytes","pg_size_pretty","pg_sleep","pg_sleep_for","pg_sleep_until","pg_start_backup","pg_stat_file","pg_stop_backup","pg_switch_xlog","pg_table_is_visible","pg_table_size","pg_tablespace_databases","pg_tablespace_location","pg_tablespace_size","pg_total_relation_size","pg_trigger_depth","pg_try_advisory_lock","pg_try_advisory_lock_shared","pg_try_advisory_xact_lock","pg_try_advisory_xact_lock_shared","pg_ts_config_is_visible","pg_ts_dict_is_visible","pg_ts_parser_is_visible","pg_ts_template_is_visible","pg_type_is_visible","pg_typeof","pg_xact_commit_timestamp","pg_xlog_location_diff","pg_xlog_replay_pause","pg_xlog_replay_resume","pg_xlogfile_name","pg_xlogfile_name_offset","phraseto_tsquery","plainto_tsquery","point","polygon","popen","pqserverversion","query_to_xml","querytree","quote_nullable","radius","range_merge","regexp_matches","regexp_split_to_array","regexp_split_to_table","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","right","row_security_active","row_to_json","rpad","scale","set_masklen","setseed","setval","setweight","shobj_description","sind","sprintf","statement_timestamp","stddev","string_agg","string_to_array","strip","substr","table_to_xml","table_to_xml_and_xmlschema","tand","text","to_json","to_regclass","to_regnamespace","to_regoper","to_regoperator","to_regproc","to_regprocedure","to_regrole","to_regtype","to_tsquery","to_tsvector","transaction_timestamp","ts_debug","ts_delete","ts_filter","ts_headline","ts_lexize","ts_parse","ts_rank","ts_rank_cd","ts_rewrite","ts_stat","ts_token_type","tsquery_phrase","tsvector_to_array","tsvector_update_trigger","tsvector_update_trigger_column","txid_current","txid_current_snapshot","txid_snapshot_xip","txid_snapshot_xmax","txid_snapshot_xmin","txid_visible_in_snapshot","unnest","upper_inc","upper_inf","variance","width","width_bucket","xml_is_well_formed","xml_is_well_formed_content","xml_is_well_formed_document","xmlagg","xmlcomment","xmlconcat","xmlelement","xmlexists","xmlforest","xmlparse","xmlpi","xmlroot","xmlserialize","xpath","xpath_exists"],builtinVariables:[],pseudoColumns:[],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@keywords":"keyword","@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[]}};export{e as conf,_ as language}; diff --git a/site/themes/template/static/live-editor/assets/restructuredtext.25dbfef6.js b/site/themes/template/static/live-editor/assets/restructuredtext.25dbfef6.js deleted file mode 100644 index 020351e78..000000000 --- a/site/themes/template/static/live-editor/assets/restructuredtext.25dbfef6.js +++ /dev/null @@ -1 +0,0 @@ -var e={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">",notIn:["string"]}],surroundingPairs:[{open:"(",close:")"},{open:"[",close:"]"},{open:"`",close:"`"}],folding:{markers:{start:new RegExp("^\\s*"),end:new RegExp("^\\s*")}}},n={defaultToken:"",tokenPostfix:".rst",control:/[\\`*_\[\]{}()#+\-\.!]/,escapes:/\\(?:@control)/,empty:["area","base","basefont","br","col","frame","hr","img","input","isindex","link","meta","param"],alphanumerics:/[A-Za-z0-9]/,simpleRefNameWithoutBq:/(?:@alphanumerics[-_+:.]*@alphanumerics)+|(?:@alphanumerics+)/,simpleRefName:/(?:`@phrase`|@simpleRefNameWithoutBq)/,phrase:/@simpleRefNameWithoutBq(?:\s@simpleRefNameWithoutBq)*/,citationName:/[A-Za-z][A-Za-z0-9-_.]*/,blockLiteralStart:/(?:[!"#$%&'()*+,-./:;<=>?@\[\]^_`{|}~]|[\s])/,precedingChars:/(?:[ -:/'"<([{])/,followingChars:/(?:[ -.,:;!?/'")\]}>]|$)/,punctuation:/(=|-|~|`|#|"|\^|\+|\*|:|\.|'|_|\+)/,tokenizer:{root:[[/^(@punctuation{3,}$){1,1}?/,"keyword"],[/^\s*([\*\-+‣•]|[a-zA-Z0-9]+\.|\([a-zA-Z0-9]+\)|[a-zA-Z0-9]+\))\s/,"keyword"],[/([ ]::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],[/(::)\s*$/,"keyword","@blankLineOfLiteralBlocks"],{include:"@tables"},{include:"@explicitMarkupBlocks"},{include:"@inlineMarkup"}],explicitMarkupBlocks:[{include:"@citations"},{include:"@footnotes"},[/^(\.\.\s)(@simpleRefName)(::\s)(.*)$/,[{token:"",next:"subsequentLines"},"keyword","",""]],[/^(\.\.)(\s+)(_)(@simpleRefName)(:)(\s+)(.*)/,[{token:"",next:"hyperlinks"},"","","string.link","","","string.link"]],[/^((?:(?:\.\.)(?:\s+))?)(__)(:)(\s+)(.*)/,[{token:"",next:"subsequentLines"},"","","","string.link"]],[/^(__\s+)(.+)/,["","string.link"]],[/^(\.\.)( \|)([^| ]+[^|]*[^| ]*)(\| )(@simpleRefName)(:: .*)/,[{token:"",next:"subsequentLines"},"","string.link","","keyword",""],"@rawBlocks"],[/(\|)([^| ]+[^|]*[^| ]*)(\|_{0,2})/,["","string.link",""]],[/^(\.\.)([ ].*)$/,[{token:"",next:"@comments"},"comment"]]],inlineMarkup:[{include:"@citationsReference"},{include:"@footnotesReference"},[/(@simpleRefName)(_{1,2})/,["string.link",""]],[/(`)([^<`]+\s+)(<)(.*)(>)(`)(_)/,["","string.link","","string.link","","",""]],[/\*\*([^\\*]|\*(?!\*))+\*\*/,"strong"],[/\*[^*]+\*/,"emphasis"],[/(``)((?:[^`]|\`(?!`))+)(``)/,["","keyword",""]],[/(__\s+)(.+)/,["","keyword"]],[/(:)((?:@simpleRefNameWithoutBq)?)(:`)([^`]+)(`)/,["","keyword","","",""]],[/(`)([^`]+)(`:)((?:@simpleRefNameWithoutBq)?)(:)/,["","","","keyword",""]],[/(`)([^`]+)(`)/,""],[/(_`)(@phrase)(`)/,["","string.link",""]]],citations:[[/^(\.\.\s+\[)((?:@citationName))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],citationsReference:[[/(\[)(@citationName)(\]_)/,["","string.link",""]]],footnotes:[[/^(\.\.\s+\[)((?:[0-9]+))(\]\s+.*)/,[{token:"",next:"@subsequentLines"},"string.link",""]],[/^(\.\.\s+\[)((?:#@simpleRefName?))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]],[/^(\.\.\s+\[)((?:\*))(\]\s+)(.*)/,[{token:"",next:"@subsequentLines"},"string.link","",""]]],footnotesReference:[[/(\[)([0-9]+)(\])(_)/,["","string.link","",""]],[/(\[)(#@simpleRefName?)(\])(_)/,["","string.link","",""]],[/(\[)(\*)(\])(_)/,["","string.link","",""]]],blankLineOfLiteralBlocks:[[/^$/,"","@subsequentLinesOfLiteralBlocks"],[/^.*$/,"","@pop"]],subsequentLinesOfLiteralBlocks:[[/(@blockLiteralStart+)(.*)/,["keyword",""]],[/^(?!blockLiteralStart)/,"","@popall"]],subsequentLines:[[/^[\s]+.*/,""],[/^(?!\s)/,"","@pop"]],hyperlinks:[[/^[\s]+.*/,"string.link"],[/^(?!\s)/,"","@pop"]],comments:[[/^[\s]+.*/,"comment"],[/^(?!\s)/,"","@pop"]],tables:[[/\+-[+-]+/,"keyword"],[/\+=[+=]+/,"keyword"]]}};export{e as conf,n as language}; diff --git a/site/themes/template/static/live-editor/assets/ruby.fa7b3370.js b/site/themes/template/static/live-editor/assets/ruby.fa7b3370.js deleted file mode 100644 index f0f8a7d6a..000000000 --- a/site/themes/template/static/live-editor/assets/ruby.fa7b3370.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"#",blockComment:["=begin","=end"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],indentationRules:{increaseIndentPattern:new RegExp(`^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|("|'|/).*\\4)*(#.*)?$`),decreaseIndentPattern:new RegExp("^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)")}},t={tokenPostfix:".ruby",keywords:["__LINE__","__ENCODING__","__FILE__","BEGIN","END","alias","and","begin","break","case","class","def","defined?","do","else","elsif","end","ensure","for","false","if","in","module","next","nil","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield"],keywordops:["::","..","...","?",":","=>"],builtins:["require","public","private","include","extend","attr_reader","protected","private_class_method","protected_class_method","new"],declarations:["module","class","def","case","do","begin","for","if","while","until","unless"],linedecls:["def","case","do","begin","for","if","while","until","unless"],operators:["^","&","|","<=>","==","===","!~","=~",">",">=","<","<=","<<",">>","+","-","*","/","%","**","~","+@","-@","[]","[]=","`","+=","-=","*=","**=","/=","^=","%=","<<=",">>=","&=","&&=","||=","|="],brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],symbols:/[=>"}],[/%([qws])(@delim)/,{token:"string.$1.delim",switchTo:"@qstring.$1.$2.$2"}],[/%r\(/,{token:"regexp.delim",switchTo:"@pregexp.(.)"}],[/%r\[/,{token:"regexp.delim",switchTo:"@pregexp.[.]"}],[/%r\{/,{token:"regexp.delim",switchTo:"@pregexp.{.}"}],[/%r"}],[/%r(@delim)/,{token:"regexp.delim",switchTo:"@pregexp.$1.$1"}],[/%(x|W|Q?)\(/,{token:"string.$1.delim",switchTo:"@qqstring.$1.(.)"}],[/%(x|W|Q?)\[/,{token:"string.$1.delim",switchTo:"@qqstring.$1.[.]"}],[/%(x|W|Q?)\{/,{token:"string.$1.delim",switchTo:"@qqstring.$1.{.}"}],[/%(x|W|Q?)"}],[/%(x|W|Q?)(@delim)/,{token:"string.$1.delim",switchTo:"@qqstring.$1.$2.$2"}],[/%([rqwsxW]|Q?)./,{token:"invalid",next:"@pop"}],[/./,{token:"invalid",next:"@pop"}]],qstring:[[/\\$/,"string.$S2.escape"],[/\\./,"string.$S2.escape"],[/./,{cases:{"$#==$S4":{token:"string.$S2.delim",next:"@pop"},"$#==$S3":{token:"string.$S2.delim",next:"@push"},"@default":"string.$S2"}}]],qqstring:[[/#/,"string.$S2.escape","@interpolated"],{include:"@qstring"}],whitespace:[[/[ \t\r\n]+/,""],[/^\s*=begin\b/,"comment","@comment"],[/#.*$/,"comment"]],comment:[[/[^=]+/,"comment"],[/^\s*=begin\b/,"comment.invalid"],[/^\s*=end\b.*/,"comment","@pop"],[/[=]/,"comment"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/rust.5efba445.js b/site/themes/template/static/live-editor/assets/rust.5efba445.js deleted file mode 100644 index 278d456d9..000000000 --- a/site/themes/template/static/live-editor/assets/rust.5efba445.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},t={tokenPostfix:".rust",defaultToken:"invalid",keywords:["as","async","await","box","break","const","continue","crate","dyn","else","enum","extern","false","fn","for","if","impl","in","let","loop","match","mod","move","mut","pub","ref","return","self","static","struct","super","trait","true","try","type","unsafe","use","where","while","catch","default","union","static","abstract","alignof","become","do","final","macro","offsetof","override","priv","proc","pure","sizeof","typeof","unsized","virtual","yield"],typeKeywords:["Self","m32","m64","m128","f80","f16","f128","int","uint","float","char","bool","u8","u16","u32","u64","f32","f64","i8","i16","i32","i64","str","Option","Either","c_float","c_double","c_void","FILE","fpos_t","DIR","dirent","c_char","c_schar","c_uchar","c_short","c_ushort","c_int","c_uint","c_long","c_ulong","size_t","ptrdiff_t","clock_t","time_t","c_longlong","c_ulonglong","intptr_t","uintptr_t","off_t","dev_t","ino_t","pid_t","mode_t","ssize_t"],constants:["true","false","Some","None","Left","Right","Ok","Err"],supportConstants:["EXIT_FAILURE","EXIT_SUCCESS","RAND_MAX","EOF","SEEK_SET","SEEK_CUR","SEEK_END","_IOFBF","_IONBF","_IOLBF","BUFSIZ","FOPEN_MAX","FILENAME_MAX","L_tmpnam","TMP_MAX","O_RDONLY","O_WRONLY","O_RDWR","O_APPEND","O_CREAT","O_EXCL","O_TRUNC","S_IFIFO","S_IFCHR","S_IFBLK","S_IFDIR","S_IFREG","S_IFMT","S_IEXEC","S_IWRITE","S_IREAD","S_IRWXU","S_IXUSR","S_IWUSR","S_IRUSR","F_OK","R_OK","W_OK","X_OK","STDIN_FILENO","STDOUT_FILENO","STDERR_FILENO"],supportMacros:["format!","print!","println!","panic!","format_args!","unreachable!","write!","writeln!"],operators:["!","!=","%","%=","&","&=","&&","*","*=","+","+=","-","-=","->",".","..","...","/","/=",":",";","<<","<<=","<","<=","=","==","=>",">",">=",">>",">>=","@","^","^=","|","|=","||","_","?","#"],escapes:/\\([nrt0\"''\\]|x\h{2}|u\{\h{1,6}\})/,delimiters:/[,]/,symbols:/[\#\!\%\&\*\+\-\.\/\:\;\<\=\>\@\^\|_\?]+/,intSuffixes:/[iu](8|16|32|64|128|size)/,floatSuffixes:/f(32|64)/,tokenizer:{root:[[/r(#*)"/,{token:"string.quote",bracket:"@open",next:"@stringraw.$1"}],[/[a-zA-Z][a-zA-Z0-9_]*!?|_[a-zA-Z0-9_]+/,{cases:{"@typeKeywords":"keyword.type","@keywords":"keyword","@supportConstants":"keyword","@supportMacros":"keyword","@constants":"keyword","@default":"identifier"}}],[/\$/,"identifier"],[/'[a-zA-Z_][a-zA-Z0-9_]*(?=[^\'])/,"identifier"],[/'(\S|@escapes)'/,"string.byteliteral"],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],{include:"@numbers"},{include:"@whitespace"},[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}],[/[{}()\[\]<>]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",next:"@pop"}]],stringraw:[[/[^"#]+/,{token:"string"}],[/"(#*)/,{cases:{"$1==$S2":{token:"string.quote",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["#]/,{token:"string"}]],numbers:[[/(0o[0-7_]+)(@intSuffixes)?/,{token:"number"}],[/(0b[0-1_]+)(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(\.[\d][\d_]*)?[eE][+-][\d_]+(@floatSuffixes)?/,{token:"number"}],[/\b(\d\.?[\d_]*)(@floatSuffixes)?\b/,{token:"number"}],[/(0x[\da-fA-F]+)_?(@intSuffixes)?/,{token:"number"}],[/[\d][\d_]*(@intSuffixes?)?/,{token:"number"}]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/sb.433cd117.js b/site/themes/template/static/live-editor/assets/sb.433cd117.js deleted file mode 100644 index dc861b2a8..000000000 --- a/site/themes/template/static/live-editor/assets/sb.433cd117.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"'"},brackets:[["(",")"],["[","]"],["If","EndIf"],["While","EndWhile"],["For","EndFor"],["Sub","EndSub"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]}]},o={defaultToken:"",tokenPostfix:".sb",ignoreCase:!0,brackets:[{token:"delimiter.array",open:"[",close:"]"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"keyword.tag-if",open:"If",close:"EndIf"},{token:"keyword.tag-while",open:"While",close:"EndWhile"},{token:"keyword.tag-for",open:"For",close:"EndFor"},{token:"keyword.tag-sub",open:"Sub",close:"EndSub"}],keywords:["Else","ElseIf","EndFor","EndIf","EndSub","EndWhile","For","Goto","If","Step","Sub","Then","To","While"],tagwords:["If","Sub","While","For"],operators:[">","<","<>","<=",">=","And","Or","+","-","*","/","="],identifier:/[a-zA-Z_][\w]*/,symbols:/[=><:+\-*\/%\.,]+/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},[/(@identifier)(?=[.])/,"type"],[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@operators":"operator","@default":"variable.name"}}],[/([.])(@identifier)/,{cases:{$2:["delimiter","type.member"],"@default":""}}],[/\d*\.\d+/,"number.float"],[/\d+/,"number"],[/[()\[\]]/,"@brackets"],[/@symbols/,{cases:{"@operators":"operator","@default":"delimiter"}}],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],whitespace:[[/[ \t\r\n]+/,""],[/(\').*$/,"comment"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"C?/,"string","@pop"]]}};export{e as conf,o as language}; diff --git a/site/themes/template/static/live-editor/assets/scala.278fc4f2.js b/site/themes/template/static/live-editor/assets/scala.278fc4f2.js deleted file mode 100644 index b97a6b541..000000000 --- a/site/themes/template/static/live-editor/assets/scala.278fc4f2.js +++ /dev/null @@ -1 +0,0 @@ -var e={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>\/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:))")}}},t={tokenPostfix:".scala",keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},\."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,\.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,["string","string.escape",{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[\.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([\-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([\-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/scheme.5384f1be.js b/site/themes/template/static/live-editor/assets/scheme.5384f1be.js deleted file mode 100644 index e514245fe..000000000 --- a/site/themes/template/static/live-editor/assets/scheme.5384f1be.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:";",blockComment:["#|","|#"]},brackets:[["(",")"],["{","}"],["[","]"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'}]},o={defaultToken:"",ignoreCase:!0,tokenPostfix:".scheme",brackets:[{open:"(",close:")",token:"delimiter.parenthesis"},{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"}],keywords:["case","do","let","loop","if","else","when","cons","car","cdr","cond","lambda","lambda*","syntax-rules","format","set!","quote","eval","append","list","list?","member?","load"],constants:["#t","#f"],operators:["eq?","eqv?","equal?","and","or","not","null?"],tokenizer:{root:[[/#[xXoObB][0-9a-fA-F]+/,"number.hex"],[/[+-]?\d+(?:(?:\.\d*)?(?:[eE][+-]?\d+)?)?/,"number.float"],[/(?:\b(?:(define|define-syntax|define-macro))\b)(\s+)((?:\w|\-|\!|\?)*)/,["keyword","white","variable"]],{include:"@whitespace"},{include:"@strings"},[/[a-zA-Z_#][a-zA-Z0-9_\-\?\!\*]*/,{cases:{"@keywords":"keyword","@constants":"constant","@operators":"operators","@default":"identifier"}}]],comment:[[/[^\|#]+/,"comment"],[/#\|/,"comment","@push"],[/\|#/,"comment","@pop"],[/[\|#]/,"comment"]],whitespace:[[/[ \t\r\n]+/,"white"],[/#\|/,"comment","@comment"],[/;.*$/,"comment"]],strings:[[/"$/,"string","@popall"],[/"(?=.)/,"string","@multiLineString"]],multiLineString:[[/[^\\"]+$/,"string","@popall"],[/[^\\"]+/,"string"],[/\\./,"string.escape"],[/"/,"string","@popall"],[/\\$/,"string"]]}};export{e as conf,o as language}; diff --git a/site/themes/template/static/live-editor/assets/scss.19a80714.js b/site/themes/template/static/live-editor/assets/scss.19a80714.js deleted file mode 100644 index 40738909c..000000000 --- a/site/themes/template/static/live-editor/assets/scss.19a80714.js +++ /dev/null @@ -1,3 +0,0 @@ -var e={wordPattern:/(#?-?\d*\.\d\w*%?)|([@$#!.:]?[\w-?]+%?)|[@#!.]/g,comments:{blockComment:["/*","*/"],lineComment:"//"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string","comment"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:new RegExp("^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/"),end:new RegExp("^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/")}}},t={defaultToken:"",tokenPostfix:".scss",ws:`[ -\r\f]*`,identifier:"-?-?([a-zA-Z]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))([\\w\\-]|(\\\\(([0-9a-fA-F]{1,6}\\s?)|[^[0-9a-fA-F])))*",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{root:[{include:"@selector"}],selector:[{include:"@comments"},{include:"@import"},{include:"@variabledeclaration"},{include:"@warndebug"},["[@](include)",{token:"keyword",next:"@includedeclaration"}],["[@](keyframes|-webkit-keyframes|-moz-keyframes|-o-keyframes)",{token:"keyword",next:"@keyframedeclaration"}],["[@](page|content|font-face|-moz-document)",{token:"keyword"}],["[@](charset|namespace)",{token:"keyword",next:"@declarationbody"}],["[@](function)",{token:"keyword",next:"@functiondeclaration"}],["[@](mixin)",{token:"keyword",next:"@mixindeclaration"}],["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@controlstatement"},{include:"@selectorname"},["[&\\*]","tag"],["[>\\+,]","delimiter"],["\\[",{token:"delimiter.bracket",next:"@selectorattribute"}],["{",{token:"delimiter.curly",next:"@selectorbody"}]],selectorbody:[["[*_]?@identifier@ws:(?=(\\s|\\d|[^{;}]*[;}]))","attribute.name","@rulevalue"],{include:"@selector"},["[@](extend)",{token:"keyword",next:"@extendbody"}],["[@](return)",{token:"keyword",next:"@declarationbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],selectorname:[["#{",{token:"meta",next:"@variableinterpolation"}],["(\\.|#(?=[^{])|%|(@identifier)|:)+","tag"]],selectorattribute:[{include:"@term"},["]",{token:"delimiter.bracket",next:"@pop"}]],term:[{include:"@comments"},["url(\\-prefix)?\\(",{token:"meta",next:"@urldeclaration"}],{include:"@functioninvocation"},{include:"@numbers"},{include:"@strings"},{include:"@variablereference"},["(and\\b|or\\b|not\\b)","operator"],{include:"@name"},["([<>=\\+\\-\\*\\/\\^\\|\\~,])","operator"],[",","delimiter"],["!default","literal"],["\\(",{token:"delimiter.parenthesis",next:"@parenthizedterm"}]],rulevalue:[{include:"@term"},["!important","literal"],[";","delimiter","@pop"],["{",{token:"delimiter.curly",switchTo:"@nestedproperty"}],["(?=})",{token:"",next:"@pop"}]],nestedproperty:[["[*_]?@identifier@ws:","attribute.name","@rulevalue"],{include:"@comments"},["}",{token:"delimiter.curly",next:"@pop"}]],warndebug:[["[@](warn|debug)",{token:"keyword",next:"@declarationbody"}]],import:[["[@](import)",{token:"keyword",next:"@declarationbody"}]],variabledeclaration:[["\\$@identifier@ws:","variable.decl","@declarationbody"]],urldeclaration:[{include:"@strings"},[`[^)\r -]+`,"string"],["\\)",{token:"meta",next:"@pop"}]],parenthizedterm:[{include:"@term"},["\\)",{token:"delimiter.parenthesis",next:"@pop"}]],declarationbody:[{include:"@term"},[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],extendbody:[{include:"@selectorname"},["!optional","literal"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}]],variablereference:[["\\$@identifier","variable.ref"],["\\.\\.\\.","operator"],["#{",{token:"meta",next:"@variableinterpolation"}]],variableinterpolation:[{include:"@variablereference"},["}",{token:"meta",next:"@pop"}]],comments:[["\\/\\*","comment","@comment"],["\\/\\/+.*","comment"]],comment:[["\\*\\/","comment","@pop"],[".","comment"]],name:[["@identifier","attribute.value"]],numbers:[["(\\d*\\.)?\\d+([eE][\\-+]?\\d+)?",{token:"number",next:"@units"}],["#[0-9a-fA-F_]+(?!\\w)","number.hex"]],units:[["(em|ex|ch|rem|vmin|vmax|vw|vh|vm|cm|mm|in|px|pt|pc|deg|grad|rad|turn|s|ms|Hz|kHz|%)?","number","@pop"]],functiondeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["{",{token:"delimiter.curly",switchTo:"@functionbody"}]],mixindeclaration:[["@identifier@ws\\(",{token:"meta",next:"@parameterdeclaration"}],["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],parameterdeclaration:[["\\$@identifier@ws:","variable.decl"],["\\.\\.\\.","operator"],[",","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],includedeclaration:[{include:"@functioninvocation"},["@identifier","meta"],[";","delimiter","@pop"],["(?=})",{token:"",next:"@pop"}],["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],keyframedeclaration:[["@identifier","meta"],["{",{token:"delimiter.curly",switchTo:"@keyframebody"}]],keyframebody:[{include:"@term"},["{",{token:"delimiter.curly",next:"@selectorbody"}],["}",{token:"delimiter.curly",next:"@pop"}]],controlstatement:[["[@](if|else|for|while|each|media)",{token:"keyword.flow",next:"@controlstatementdeclaration"}]],controlstatementdeclaration:[["(in|from|through|if|to)\\b",{token:"keyword.flow"}],{include:"@term"},["{",{token:"delimiter.curly",switchTo:"@selectorbody"}]],functionbody:[["[@](return)",{token:"keyword"}],{include:"@variabledeclaration"},{include:"@term"},{include:"@controlstatement"},[";","delimiter"],["}",{token:"delimiter.curly",next:"@pop"}]],functioninvocation:[["@identifier\\(",{token:"meta",next:"@functionarguments"}]],functionarguments:[["\\$@identifier@ws:","attribute.name"],["[,]","delimiter"],{include:"@term"},["\\)",{token:"meta",next:"@pop"}]],strings:[['~?"',{token:"string.delimiter",next:"@stringenddoublequote"}],["~?'",{token:"string.delimiter",next:"@stringendquote"}]],stringenddoublequote:[["\\\\.","string"],['"',{token:"string.delimiter",next:"@pop"}],[".","string"]],stringendquote:[["\\\\.","string"],["'",{token:"string.delimiter",next:"@pop"}],[".","string"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/shell.ba46ea6c.js b/site/themes/template/static/live-editor/assets/shell.ba46ea6c.js deleted file mode 100644 index 4f9643ab0..000000000 --- a/site/themes/template/static/live-editor/assets/shell.ba46ea6c.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"`",close:"`"}]},r={defaultToken:"",ignoreCase:!0,tokenPostfix:".shell",brackets:[{token:"delimiter.bracket",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","then","do","else","elif","while","until","for","in","esac","fi","fin","fil","done","exit","set","unset","export","function"],builtins:["ab","awk","bash","beep","cat","cc","cd","chown","chmod","chroot","clear","cp","curl","cut","diff","echo","find","gawk","gcc","get","git","grep","hg","kill","killall","ln","ls","make","mkdir","openssl","mv","nc","node","npm","ping","ps","restart","rm","rmdir","sed","service","sh","shopt","shred","source","sort","sleep","ssh","start","stop","su","sudo","svn","tee","telnet","top","touch","vi","vim","wall","wc","wget","who","write","yes","zsh"],symbols:/[=>"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},e={defaultToken:"",tokenPostfix:".sol",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["pragma","solidity","contract","library","using","struct","function","modifier","constructor","address","string","bool","Int","Uint","Byte","Fixed","Ufixed","int","int8","int16","int24","int32","int40","int48","int56","int64","int72","int80","int88","int96","int104","int112","int120","int128","int136","int144","int152","int160","int168","int176","int184","int192","int200","int208","int216","int224","int232","int240","int248","int256","uint","uint8","uint16","uint24","uint32","uint40","uint48","uint56","uint64","uint72","uint80","uint88","uint96","uint104","uint112","uint120","uint128","uint136","uint144","uint152","uint160","uint168","uint176","uint184","uint192","uint200","uint208","uint216","uint224","uint232","uint240","uint248","uint256","byte","bytes","bytes1","bytes2","bytes3","bytes4","bytes5","bytes6","bytes7","bytes8","bytes9","bytes10","bytes11","bytes12","bytes13","bytes14","bytes15","bytes16","bytes17","bytes18","bytes19","bytes20","bytes21","bytes22","bytes23","bytes24","bytes25","bytes26","bytes27","bytes28","bytes29","bytes30","bytes31","bytes32","fixed","fixed0x8","fixed0x16","fixed0x24","fixed0x32","fixed0x40","fixed0x48","fixed0x56","fixed0x64","fixed0x72","fixed0x80","fixed0x88","fixed0x96","fixed0x104","fixed0x112","fixed0x120","fixed0x128","fixed0x136","fixed0x144","fixed0x152","fixed0x160","fixed0x168","fixed0x176","fixed0x184","fixed0x192","fixed0x200","fixed0x208","fixed0x216","fixed0x224","fixed0x232","fixed0x240","fixed0x248","fixed0x256","fixed8x8","fixed8x16","fixed8x24","fixed8x32","fixed8x40","fixed8x48","fixed8x56","fixed8x64","fixed8x72","fixed8x80","fixed8x88","fixed8x96","fixed8x104","fixed8x112","fixed8x120","fixed8x128","fixed8x136","fixed8x144","fixed8x152","fixed8x160","fixed8x168","fixed8x176","fixed8x184","fixed8x192","fixed8x200","fixed8x208","fixed8x216","fixed8x224","fixed8x232","fixed8x240","fixed8x248","fixed16x8","fixed16x16","fixed16x24","fixed16x32","fixed16x40","fixed16x48","fixed16x56","fixed16x64","fixed16x72","fixed16x80","fixed16x88","fixed16x96","fixed16x104","fixed16x112","fixed16x120","fixed16x128","fixed16x136","fixed16x144","fixed16x152","fixed16x160","fixed16x168","fixed16x176","fixed16x184","fixed16x192","fixed16x200","fixed16x208","fixed16x216","fixed16x224","fixed16x232","fixed16x240","fixed24x8","fixed24x16","fixed24x24","fixed24x32","fixed24x40","fixed24x48","fixed24x56","fixed24x64","fixed24x72","fixed24x80","fixed24x88","fixed24x96","fixed24x104","fixed24x112","fixed24x120","fixed24x128","fixed24x136","fixed24x144","fixed24x152","fixed24x160","fixed24x168","fixed24x176","fixed24x184","fixed24x192","fixed24x200","fixed24x208","fixed24x216","fixed24x224","fixed24x232","fixed32x8","fixed32x16","fixed32x24","fixed32x32","fixed32x40","fixed32x48","fixed32x56","fixed32x64","fixed32x72","fixed32x80","fixed32x88","fixed32x96","fixed32x104","fixed32x112","fixed32x120","fixed32x128","fixed32x136","fixed32x144","fixed32x152","fixed32x160","fixed32x168","fixed32x176","fixed32x184","fixed32x192","fixed32x200","fixed32x208","fixed32x216","fixed32x224","fixed40x8","fixed40x16","fixed40x24","fixed40x32","fixed40x40","fixed40x48","fixed40x56","fixed40x64","fixed40x72","fixed40x80","fixed40x88","fixed40x96","fixed40x104","fixed40x112","fixed40x120","fixed40x128","fixed40x136","fixed40x144","fixed40x152","fixed40x160","fixed40x168","fixed40x176","fixed40x184","fixed40x192","fixed40x200","fixed40x208","fixed40x216","fixed48x8","fixed48x16","fixed48x24","fixed48x32","fixed48x40","fixed48x48","fixed48x56","fixed48x64","fixed48x72","fixed48x80","fixed48x88","fixed48x96","fixed48x104","fixed48x112","fixed48x120","fixed48x128","fixed48x136","fixed48x144","fixed48x152","fixed48x160","fixed48x168","fixed48x176","fixed48x184","fixed48x192","fixed48x200","fixed48x208","fixed56x8","fixed56x16","fixed56x24","fixed56x32","fixed56x40","fixed56x48","fixed56x56","fixed56x64","fixed56x72","fixed56x80","fixed56x88","fixed56x96","fixed56x104","fixed56x112","fixed56x120","fixed56x128","fixed56x136","fixed56x144","fixed56x152","fixed56x160","fixed56x168","fixed56x176","fixed56x184","fixed56x192","fixed56x200","fixed64x8","fixed64x16","fixed64x24","fixed64x32","fixed64x40","fixed64x48","fixed64x56","fixed64x64","fixed64x72","fixed64x80","fixed64x88","fixed64x96","fixed64x104","fixed64x112","fixed64x120","fixed64x128","fixed64x136","fixed64x144","fixed64x152","fixed64x160","fixed64x168","fixed64x176","fixed64x184","fixed64x192","fixed72x8","fixed72x16","fixed72x24","fixed72x32","fixed72x40","fixed72x48","fixed72x56","fixed72x64","fixed72x72","fixed72x80","fixed72x88","fixed72x96","fixed72x104","fixed72x112","fixed72x120","fixed72x128","fixed72x136","fixed72x144","fixed72x152","fixed72x160","fixed72x168","fixed72x176","fixed72x184","fixed80x8","fixed80x16","fixed80x24","fixed80x32","fixed80x40","fixed80x48","fixed80x56","fixed80x64","fixed80x72","fixed80x80","fixed80x88","fixed80x96","fixed80x104","fixed80x112","fixed80x120","fixed80x128","fixed80x136","fixed80x144","fixed80x152","fixed80x160","fixed80x168","fixed80x176","fixed88x8","fixed88x16","fixed88x24","fixed88x32","fixed88x40","fixed88x48","fixed88x56","fixed88x64","fixed88x72","fixed88x80","fixed88x88","fixed88x96","fixed88x104","fixed88x112","fixed88x120","fixed88x128","fixed88x136","fixed88x144","fixed88x152","fixed88x160","fixed88x168","fixed96x8","fixed96x16","fixed96x24","fixed96x32","fixed96x40","fixed96x48","fixed96x56","fixed96x64","fixed96x72","fixed96x80","fixed96x88","fixed96x96","fixed96x104","fixed96x112","fixed96x120","fixed96x128","fixed96x136","fixed96x144","fixed96x152","fixed96x160","fixed104x8","fixed104x16","fixed104x24","fixed104x32","fixed104x40","fixed104x48","fixed104x56","fixed104x64","fixed104x72","fixed104x80","fixed104x88","fixed104x96","fixed104x104","fixed104x112","fixed104x120","fixed104x128","fixed104x136","fixed104x144","fixed104x152","fixed112x8","fixed112x16","fixed112x24","fixed112x32","fixed112x40","fixed112x48","fixed112x56","fixed112x64","fixed112x72","fixed112x80","fixed112x88","fixed112x96","fixed112x104","fixed112x112","fixed112x120","fixed112x128","fixed112x136","fixed112x144","fixed120x8","fixed120x16","fixed120x24","fixed120x32","fixed120x40","fixed120x48","fixed120x56","fixed120x64","fixed120x72","fixed120x80","fixed120x88","fixed120x96","fixed120x104","fixed120x112","fixed120x120","fixed120x128","fixed120x136","fixed128x8","fixed128x16","fixed128x24","fixed128x32","fixed128x40","fixed128x48","fixed128x56","fixed128x64","fixed128x72","fixed128x80","fixed128x88","fixed128x96","fixed128x104","fixed128x112","fixed128x120","fixed128x128","fixed136x8","fixed136x16","fixed136x24","fixed136x32","fixed136x40","fixed136x48","fixed136x56","fixed136x64","fixed136x72","fixed136x80","fixed136x88","fixed136x96","fixed136x104","fixed136x112","fixed136x120","fixed144x8","fixed144x16","fixed144x24","fixed144x32","fixed144x40","fixed144x48","fixed144x56","fixed144x64","fixed144x72","fixed144x80","fixed144x88","fixed144x96","fixed144x104","fixed144x112","fixed152x8","fixed152x16","fixed152x24","fixed152x32","fixed152x40","fixed152x48","fixed152x56","fixed152x64","fixed152x72","fixed152x80","fixed152x88","fixed152x96","fixed152x104","fixed160x8","fixed160x16","fixed160x24","fixed160x32","fixed160x40","fixed160x48","fixed160x56","fixed160x64","fixed160x72","fixed160x80","fixed160x88","fixed160x96","fixed168x8","fixed168x16","fixed168x24","fixed168x32","fixed168x40","fixed168x48","fixed168x56","fixed168x64","fixed168x72","fixed168x80","fixed168x88","fixed176x8","fixed176x16","fixed176x24","fixed176x32","fixed176x40","fixed176x48","fixed176x56","fixed176x64","fixed176x72","fixed176x80","fixed184x8","fixed184x16","fixed184x24","fixed184x32","fixed184x40","fixed184x48","fixed184x56","fixed184x64","fixed184x72","fixed192x8","fixed192x16","fixed192x24","fixed192x32","fixed192x40","fixed192x48","fixed192x56","fixed192x64","fixed200x8","fixed200x16","fixed200x24","fixed200x32","fixed200x40","fixed200x48","fixed200x56","fixed208x8","fixed208x16","fixed208x24","fixed208x32","fixed208x40","fixed208x48","fixed216x8","fixed216x16","fixed216x24","fixed216x32","fixed216x40","fixed224x8","fixed224x16","fixed224x24","fixed224x32","fixed232x8","fixed232x16","fixed232x24","fixed240x8","fixed240x16","fixed248x8","ufixed","ufixed0x8","ufixed0x16","ufixed0x24","ufixed0x32","ufixed0x40","ufixed0x48","ufixed0x56","ufixed0x64","ufixed0x72","ufixed0x80","ufixed0x88","ufixed0x96","ufixed0x104","ufixed0x112","ufixed0x120","ufixed0x128","ufixed0x136","ufixed0x144","ufixed0x152","ufixed0x160","ufixed0x168","ufixed0x176","ufixed0x184","ufixed0x192","ufixed0x200","ufixed0x208","ufixed0x216","ufixed0x224","ufixed0x232","ufixed0x240","ufixed0x248","ufixed0x256","ufixed8x8","ufixed8x16","ufixed8x24","ufixed8x32","ufixed8x40","ufixed8x48","ufixed8x56","ufixed8x64","ufixed8x72","ufixed8x80","ufixed8x88","ufixed8x96","ufixed8x104","ufixed8x112","ufixed8x120","ufixed8x128","ufixed8x136","ufixed8x144","ufixed8x152","ufixed8x160","ufixed8x168","ufixed8x176","ufixed8x184","ufixed8x192","ufixed8x200","ufixed8x208","ufixed8x216","ufixed8x224","ufixed8x232","ufixed8x240","ufixed8x248","ufixed16x8","ufixed16x16","ufixed16x24","ufixed16x32","ufixed16x40","ufixed16x48","ufixed16x56","ufixed16x64","ufixed16x72","ufixed16x80","ufixed16x88","ufixed16x96","ufixed16x104","ufixed16x112","ufixed16x120","ufixed16x128","ufixed16x136","ufixed16x144","ufixed16x152","ufixed16x160","ufixed16x168","ufixed16x176","ufixed16x184","ufixed16x192","ufixed16x200","ufixed16x208","ufixed16x216","ufixed16x224","ufixed16x232","ufixed16x240","ufixed24x8","ufixed24x16","ufixed24x24","ufixed24x32","ufixed24x40","ufixed24x48","ufixed24x56","ufixed24x64","ufixed24x72","ufixed24x80","ufixed24x88","ufixed24x96","ufixed24x104","ufixed24x112","ufixed24x120","ufixed24x128","ufixed24x136","ufixed24x144","ufixed24x152","ufixed24x160","ufixed24x168","ufixed24x176","ufixed24x184","ufixed24x192","ufixed24x200","ufixed24x208","ufixed24x216","ufixed24x224","ufixed24x232","ufixed32x8","ufixed32x16","ufixed32x24","ufixed32x32","ufixed32x40","ufixed32x48","ufixed32x56","ufixed32x64","ufixed32x72","ufixed32x80","ufixed32x88","ufixed32x96","ufixed32x104","ufixed32x112","ufixed32x120","ufixed32x128","ufixed32x136","ufixed32x144","ufixed32x152","ufixed32x160","ufixed32x168","ufixed32x176","ufixed32x184","ufixed32x192","ufixed32x200","ufixed32x208","ufixed32x216","ufixed32x224","ufixed40x8","ufixed40x16","ufixed40x24","ufixed40x32","ufixed40x40","ufixed40x48","ufixed40x56","ufixed40x64","ufixed40x72","ufixed40x80","ufixed40x88","ufixed40x96","ufixed40x104","ufixed40x112","ufixed40x120","ufixed40x128","ufixed40x136","ufixed40x144","ufixed40x152","ufixed40x160","ufixed40x168","ufixed40x176","ufixed40x184","ufixed40x192","ufixed40x200","ufixed40x208","ufixed40x216","ufixed48x8","ufixed48x16","ufixed48x24","ufixed48x32","ufixed48x40","ufixed48x48","ufixed48x56","ufixed48x64","ufixed48x72","ufixed48x80","ufixed48x88","ufixed48x96","ufixed48x104","ufixed48x112","ufixed48x120","ufixed48x128","ufixed48x136","ufixed48x144","ufixed48x152","ufixed48x160","ufixed48x168","ufixed48x176","ufixed48x184","ufixed48x192","ufixed48x200","ufixed48x208","ufixed56x8","ufixed56x16","ufixed56x24","ufixed56x32","ufixed56x40","ufixed56x48","ufixed56x56","ufixed56x64","ufixed56x72","ufixed56x80","ufixed56x88","ufixed56x96","ufixed56x104","ufixed56x112","ufixed56x120","ufixed56x128","ufixed56x136","ufixed56x144","ufixed56x152","ufixed56x160","ufixed56x168","ufixed56x176","ufixed56x184","ufixed56x192","ufixed56x200","ufixed64x8","ufixed64x16","ufixed64x24","ufixed64x32","ufixed64x40","ufixed64x48","ufixed64x56","ufixed64x64","ufixed64x72","ufixed64x80","ufixed64x88","ufixed64x96","ufixed64x104","ufixed64x112","ufixed64x120","ufixed64x128","ufixed64x136","ufixed64x144","ufixed64x152","ufixed64x160","ufixed64x168","ufixed64x176","ufixed64x184","ufixed64x192","ufixed72x8","ufixed72x16","ufixed72x24","ufixed72x32","ufixed72x40","ufixed72x48","ufixed72x56","ufixed72x64","ufixed72x72","ufixed72x80","ufixed72x88","ufixed72x96","ufixed72x104","ufixed72x112","ufixed72x120","ufixed72x128","ufixed72x136","ufixed72x144","ufixed72x152","ufixed72x160","ufixed72x168","ufixed72x176","ufixed72x184","ufixed80x8","ufixed80x16","ufixed80x24","ufixed80x32","ufixed80x40","ufixed80x48","ufixed80x56","ufixed80x64","ufixed80x72","ufixed80x80","ufixed80x88","ufixed80x96","ufixed80x104","ufixed80x112","ufixed80x120","ufixed80x128","ufixed80x136","ufixed80x144","ufixed80x152","ufixed80x160","ufixed80x168","ufixed80x176","ufixed88x8","ufixed88x16","ufixed88x24","ufixed88x32","ufixed88x40","ufixed88x48","ufixed88x56","ufixed88x64","ufixed88x72","ufixed88x80","ufixed88x88","ufixed88x96","ufixed88x104","ufixed88x112","ufixed88x120","ufixed88x128","ufixed88x136","ufixed88x144","ufixed88x152","ufixed88x160","ufixed88x168","ufixed96x8","ufixed96x16","ufixed96x24","ufixed96x32","ufixed96x40","ufixed96x48","ufixed96x56","ufixed96x64","ufixed96x72","ufixed96x80","ufixed96x88","ufixed96x96","ufixed96x104","ufixed96x112","ufixed96x120","ufixed96x128","ufixed96x136","ufixed96x144","ufixed96x152","ufixed96x160","ufixed104x8","ufixed104x16","ufixed104x24","ufixed104x32","ufixed104x40","ufixed104x48","ufixed104x56","ufixed104x64","ufixed104x72","ufixed104x80","ufixed104x88","ufixed104x96","ufixed104x104","ufixed104x112","ufixed104x120","ufixed104x128","ufixed104x136","ufixed104x144","ufixed104x152","ufixed112x8","ufixed112x16","ufixed112x24","ufixed112x32","ufixed112x40","ufixed112x48","ufixed112x56","ufixed112x64","ufixed112x72","ufixed112x80","ufixed112x88","ufixed112x96","ufixed112x104","ufixed112x112","ufixed112x120","ufixed112x128","ufixed112x136","ufixed112x144","ufixed120x8","ufixed120x16","ufixed120x24","ufixed120x32","ufixed120x40","ufixed120x48","ufixed120x56","ufixed120x64","ufixed120x72","ufixed120x80","ufixed120x88","ufixed120x96","ufixed120x104","ufixed120x112","ufixed120x120","ufixed120x128","ufixed120x136","ufixed128x8","ufixed128x16","ufixed128x24","ufixed128x32","ufixed128x40","ufixed128x48","ufixed128x56","ufixed128x64","ufixed128x72","ufixed128x80","ufixed128x88","ufixed128x96","ufixed128x104","ufixed128x112","ufixed128x120","ufixed128x128","ufixed136x8","ufixed136x16","ufixed136x24","ufixed136x32","ufixed136x40","ufixed136x48","ufixed136x56","ufixed136x64","ufixed136x72","ufixed136x80","ufixed136x88","ufixed136x96","ufixed136x104","ufixed136x112","ufixed136x120","ufixed144x8","ufixed144x16","ufixed144x24","ufixed144x32","ufixed144x40","ufixed144x48","ufixed144x56","ufixed144x64","ufixed144x72","ufixed144x80","ufixed144x88","ufixed144x96","ufixed144x104","ufixed144x112","ufixed152x8","ufixed152x16","ufixed152x24","ufixed152x32","ufixed152x40","ufixed152x48","ufixed152x56","ufixed152x64","ufixed152x72","ufixed152x80","ufixed152x88","ufixed152x96","ufixed152x104","ufixed160x8","ufixed160x16","ufixed160x24","ufixed160x32","ufixed160x40","ufixed160x48","ufixed160x56","ufixed160x64","ufixed160x72","ufixed160x80","ufixed160x88","ufixed160x96","ufixed168x8","ufixed168x16","ufixed168x24","ufixed168x32","ufixed168x40","ufixed168x48","ufixed168x56","ufixed168x64","ufixed168x72","ufixed168x80","ufixed168x88","ufixed176x8","ufixed176x16","ufixed176x24","ufixed176x32","ufixed176x40","ufixed176x48","ufixed176x56","ufixed176x64","ufixed176x72","ufixed176x80","ufixed184x8","ufixed184x16","ufixed184x24","ufixed184x32","ufixed184x40","ufixed184x48","ufixed184x56","ufixed184x64","ufixed184x72","ufixed192x8","ufixed192x16","ufixed192x24","ufixed192x32","ufixed192x40","ufixed192x48","ufixed192x56","ufixed192x64","ufixed200x8","ufixed200x16","ufixed200x24","ufixed200x32","ufixed200x40","ufixed200x48","ufixed200x56","ufixed208x8","ufixed208x16","ufixed208x24","ufixed208x32","ufixed208x40","ufixed208x48","ufixed216x8","ufixed216x16","ufixed216x24","ufixed216x32","ufixed216x40","ufixed224x8","ufixed224x16","ufixed224x24","ufixed224x32","ufixed232x8","ufixed232x16","ufixed232x24","ufixed240x8","ufixed240x16","ufixed248x8","event","enum","let","mapping","private","public","external","inherited","payable","true","false","var","import","constant","if","else","for","else","for","while","do","break","continue","throw","returns","return","suicide","new","is","this","super"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};export{x as conf,e as language}; diff --git a/site/themes/template/static/live-editor/assets/sophia.b9746272.js b/site/themes/template/static/live-editor/assets/sophia.b9746272.js deleted file mode 100644 index 5834294c7..000000000 --- a/site/themes/template/static/live-editor/assets/sophia.b9746272.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["<",">"]],autoClosingPairs:[{open:'"',close:'"',notIn:["string","comment"]},{open:"{",close:"}",notIn:["string","comment"]},{open:"[",close:"]",notIn:["string","comment"]},{open:"(",close:")",notIn:["string","comment"]}]},t={defaultToken:"",tokenPostfix:".aes",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["contract","library","entrypoint","function","stateful","state","hash","signature","tuple","list","address","string","bool","int","record","datatype","type","option","oracle","oracle_query","Call","Bits","Bytes","Oracle","String","Crypto","Address","Auth","Chain","None","Some","bits","bytes","event","let","map","private","public","true","false","var","if","else","throw"],operators:["=",">","<","!","~","?","::",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],[/\d*\d+[eE]([\-+]?\d+)?(@floatsuffix)/,"number.float"],[/\d*\.\d+([eE][\-+]?\d+)?(@floatsuffix)/,"number.float"],[/0[xX][0-9a-fA-F']*[0-9a-fA-F](@integersuffix)/,"number.hex"],[/0[0-7']*[0-7](@integersuffix)/,"number.octal"],[/0[bB][0-1']*[0-1](@integersuffix)/,"number.binary"],[/\d[\d']*\d(@integersuffix)/,"number"],[/\d(@integersuffix)/,"number"],[/[;,.]/,"delimiter"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"],[/'[^\\']'/,"string"],[/(')(@escapes)(')/,["string","string.escape","string"]],[/'/,"string.invalid"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],doccomment:[[/[^\/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[\/*]/,"comment.doc"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/sparql.a6a1947c.js b/site/themes/template/static/live-editor/assets/sparql.a6a1947c.js deleted file mode 100644 index 4da44defd..000000000 --- a/site/themes/template/static/live-editor/assets/sparql.a6a1947c.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"#"},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"'",close:"'",notIn:["string"]},{open:'"',close:'"',notIn:["string"]},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"}]},s={defaultToken:"",tokenPostfix:".rq",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["add","as","asc","ask","base","by","clear","construct","copy","create","data","delete","desc","describe","distinct","drop","false","filter","from","graph","group","having","in","insert","limit","load","minus","move","named","not","offset","optional","order","prefix","reduced","select","service","silent","to","true","undef","union","using","values","where","with"],builtinFunctions:["a","abs","avg","bind","bnode","bound","ceil","coalesce","concat","contains","count","datatype","day","encode_for_uri","exists","floor","group_concat","hours","if","iri","isblank","isiri","isliteral","isnumeric","isuri","lang","langmatches","lcase","max","md5","min","minutes","month","now","rand","regex","replace","round","sameterm","sample","seconds","sha1","sha256","sha384","sha512","str","strafter","strbefore","strdt","strends","strlang","strlen","strstarts","struuid","substr","sum","timezone","tz","ucase","uri","uuid","year"],ignoreCase:!0,tokenizer:{root:[[/<[^\s\u00a0>]*>?/,"tag"],{include:"@strings"},[/#.*/,"comment"],[/[{}()\[\]]/,"@brackets"],[/[;,.]/,"delimiter"],[/[_\w\d]+:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])*/,"tag"],[/:(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/,"tag"],[/[$?]?[_\w\d]+/,{cases:{"@keywords":{token:"keyword"},"@builtinFunctions":{token:"predefined.sql"},"@default":"identifier"}}],[/\^\^/,"operator.sql"],[/\^[*+\-<>=&|^\/!?]*/,"operator.sql"],[/[*+\-<>=&|\/!?]/,"operator.sql"],[/@[a-z\d\-]*/,"metatag.html"],[/\s+/,"white"]],strings:[[/'([^'\\]|\\.)*$/,"string.invalid"],[/'$/,"string.sql","@pop"],[/'/,"string.sql","@stringBody"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/"$/,"string.sql","@pop"],[/"/,"string.sql","@dblStringBody"]],stringBody:[[/[^\\']+/,"string.sql"],[/\\./,"string.escape"],[/'/,"string.sql","@pop"]],dblStringBody:[[/[^\\"]+/,"string.sql"],[/\\./,"string.escape"],[/"/,"string.sql","@pop"]]}};export{e as conf,s as language}; diff --git a/site/themes/template/static/live-editor/assets/sql.f0e722e1.js b/site/themes/template/static/live-editor/assets/sql.f0e722e1.js deleted file mode 100644 index 011c5d91e..000000000 --- a/site/themes/template/static/live-editor/assets/sql.f0e722e1.js +++ /dev/null @@ -1 +0,0 @@ -var E={comments:{lineComment:"--",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},T={defaultToken:"",tokenPostfix:".sql",ignoreCase:!0,brackets:[{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],keywords:["ABORT","ABSOLUTE","ACTION","ADA","ADD","AFTER","ALL","ALLOCATE","ALTER","ALWAYS","ANALYZE","AND","ANY","ARE","AS","ASC","ASSERTION","AT","ATTACH","AUTHORIZATION","AUTOINCREMENT","AVG","BACKUP","BEFORE","BEGIN","BETWEEN","BIT","BIT_LENGTH","BOTH","BREAK","BROWSE","BULK","BY","CASCADE","CASCADED","CASE","CAST","CATALOG","CHAR","CHARACTER","CHARACTER_LENGTH","CHAR_LENGTH","CHECK","CHECKPOINT","CLOSE","CLUSTERED","COALESCE","COLLATE","COLLATION","COLUMN","COMMIT","COMPUTE","CONFLICT","CONNECT","CONNECTION","CONSTRAINT","CONSTRAINTS","CONTAINS","CONTAINSTABLE","CONTINUE","CONVERT","CORRESPONDING","COUNT","CREATE","CROSS","CURRENT","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATE","DAY","DBCC","DEALLOCATE","DEC","DECIMAL","DECLARE","DEFAULT","DEFERRABLE","DEFERRED","DELETE","DENY","DESC","DESCRIBE","DESCRIPTOR","DETACH","DIAGNOSTICS","DISCONNECT","DISK","DISTINCT","DISTRIBUTED","DO","DOMAIN","DOUBLE","DROP","DUMP","EACH","ELSE","END","END-EXEC","ERRLVL","ESCAPE","EXCEPT","EXCEPTION","EXCLUDE","EXCLUSIVE","EXEC","EXECUTE","EXISTS","EXIT","EXPLAIN","EXTERNAL","EXTRACT","FAIL","FALSE","FETCH","FILE","FILLFACTOR","FILTER","FIRST","FLOAT","FOLLOWING","FOR","FOREIGN","FORTRAN","FOUND","FREETEXT","FREETEXTTABLE","FROM","FULL","FUNCTION","GENERATED","GET","GLOB","GLOBAL","GO","GOTO","GRANT","GROUP","GROUPS","HAVING","HOLDLOCK","HOUR","IDENTITY","IDENTITYCOL","IDENTITY_INSERT","IF","IGNORE","IMMEDIATE","IN","INCLUDE","INDEX","INDEXED","INDICATOR","INITIALLY","INNER","INPUT","INSENSITIVE","INSERT","INSTEAD","INT","INTEGER","INTERSECT","INTERVAL","INTO","IS","ISNULL","ISOLATION","JOIN","KEY","KILL","LANGUAGE","LAST","LEADING","LEFT","LEVEL","LIKE","LIMIT","LINENO","LOAD","LOCAL","LOWER","MATCH","MATERIALIZED","MAX","MERGE","MIN","MINUTE","MODULE","MONTH","NAMES","NATIONAL","NATURAL","NCHAR","NEXT","NO","NOCHECK","NONCLUSTERED","NONE","NOT","NOTHING","NOTNULL","NULL","NULLIF","NULLS","NUMERIC","OCTET_LENGTH","OF","OFF","OFFSET","OFFSETS","ON","ONLY","OPEN","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","OPTION","OR","ORDER","OTHERS","OUTER","OUTPUT","OVER","OVERLAPS","PAD","PARTIAL","PARTITION","PASCAL","PERCENT","PIVOT","PLAN","POSITION","PRAGMA","PRECEDING","PRECISION","PREPARE","PRESERVE","PRIMARY","PRINT","PRIOR","PRIVILEGES","PROC","PROCEDURE","PUBLIC","QUERY","RAISE","RAISERROR","RANGE","READ","READTEXT","REAL","RECONFIGURE","RECURSIVE","REFERENCES","REGEXP","REINDEX","RELATIVE","RELEASE","RENAME","REPLACE","REPLICATION","RESTORE","RESTRICT","RETURN","RETURNING","REVERT","REVOKE","RIGHT","ROLLBACK","ROW","ROWCOUNT","ROWGUIDCOL","ROWS","RULE","SAVE","SAVEPOINT","SCHEMA","SCROLL","SECOND","SECTION","SECURITYAUDIT","SELECT","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","SESSION","SESSION_USER","SET","SETUSER","SHUTDOWN","SIZE","SMALLINT","SOME","SPACE","SQL","SQLCA","SQLCODE","SQLERROR","SQLSTATE","SQLWARNING","STATISTICS","SUBSTRING","SUM","SYSTEM_USER","TABLE","TABLESAMPLE","TEMP","TEMPORARY","TEXTSIZE","THEN","TIES","TIME","TIMESTAMP","TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TOP","TRAILING","TRAN","TRANSACTION","TRANSLATE","TRANSLATION","TRIGGER","TRIM","TRUE","TRUNCATE","TRY_CONVERT","TSEQUAL","UNBOUNDED","UNION","UNIQUE","UNKNOWN","UNPIVOT","UPDATE","UPDATETEXT","UPPER","USAGE","USE","USER","USING","VACUUM","VALUE","VALUES","VARCHAR","VARYING","VIEW","VIRTUAL","WAITFOR","WHEN","WHENEVER","WHERE","WHILE","WINDOW","WITH","WITHIN GROUP","WITHOUT","WORK","WRITE","WRITETEXT","YEAR","ZONE"],operators:["ALL","AND","ANY","BETWEEN","EXISTS","IN","LIKE","NOT","OR","SOME","EXCEPT","INTERSECT","UNION","APPLY","CROSS","FULL","INNER","JOIN","LEFT","OUTER","RIGHT","CONTAINS","FREETEXT","IS","NULL","PIVOT","UNPIVOT","MATCHED"],builtinFunctions:["AVG","CHECKSUM_AGG","COUNT","COUNT_BIG","GROUPING","GROUPING_ID","MAX","MIN","SUM","STDEV","STDEVP","VAR","VARP","CUME_DIST","FIRST_VALUE","LAG","LAST_VALUE","LEAD","PERCENTILE_CONT","PERCENTILE_DISC","PERCENT_RANK","COLLATE","COLLATIONPROPERTY","TERTIARY_WEIGHTS","FEDERATION_FILTERING_VALUE","CAST","CONVERT","PARSE","TRY_CAST","TRY_CONVERT","TRY_PARSE","ASYMKEY_ID","ASYMKEYPROPERTY","CERTPROPERTY","CERT_ID","CRYPT_GEN_RANDOM","DECRYPTBYASYMKEY","DECRYPTBYCERT","DECRYPTBYKEY","DECRYPTBYKEYAUTOASYMKEY","DECRYPTBYKEYAUTOCERT","DECRYPTBYPASSPHRASE","ENCRYPTBYASYMKEY","ENCRYPTBYCERT","ENCRYPTBYKEY","ENCRYPTBYPASSPHRASE","HASHBYTES","IS_OBJECTSIGNED","KEY_GUID","KEY_ID","KEY_NAME","SIGNBYASYMKEY","SIGNBYCERT","SYMKEYPROPERTY","VERIFYSIGNEDBYCERT","VERIFYSIGNEDBYASYMKEY","CURSOR_STATUS","DATALENGTH","IDENT_CURRENT","IDENT_INCR","IDENT_SEED","IDENTITY","SQL_VARIANT_PROPERTY","CURRENT_TIMESTAMP","DATEADD","DATEDIFF","DATEFROMPARTS","DATENAME","DATEPART","DATETIME2FROMPARTS","DATETIMEFROMPARTS","DATETIMEOFFSETFROMPARTS","DAY","EOMONTH","GETDATE","GETUTCDATE","ISDATE","MONTH","SMALLDATETIMEFROMPARTS","SWITCHOFFSET","SYSDATETIME","SYSDATETIMEOFFSET","SYSUTCDATETIME","TIMEFROMPARTS","TODATETIMEOFFSET","YEAR","CHOOSE","COALESCE","IIF","NULLIF","ABS","ACOS","ASIN","ATAN","ATN2","CEILING","COS","COT","DEGREES","EXP","FLOOR","LOG","LOG10","PI","POWER","RADIANS","RAND","ROUND","SIGN","SIN","SQRT","SQUARE","TAN","APP_NAME","APPLOCK_MODE","APPLOCK_TEST","ASSEMBLYPROPERTY","COL_LENGTH","COL_NAME","COLUMNPROPERTY","DATABASE_PRINCIPAL_ID","DATABASEPROPERTYEX","DB_ID","DB_NAME","FILE_ID","FILE_IDEX","FILE_NAME","FILEGROUP_ID","FILEGROUP_NAME","FILEGROUPPROPERTY","FILEPROPERTY","FULLTEXTCATALOGPROPERTY","FULLTEXTSERVICEPROPERTY","INDEX_COL","INDEXKEY_PROPERTY","INDEXPROPERTY","OBJECT_DEFINITION","OBJECT_ID","OBJECT_NAME","OBJECT_SCHEMA_NAME","OBJECTPROPERTY","OBJECTPROPERTYEX","ORIGINAL_DB_NAME","PARSENAME","SCHEMA_ID","SCHEMA_NAME","SCOPE_IDENTITY","SERVERPROPERTY","STATS_DATE","TYPE_ID","TYPE_NAME","TYPEPROPERTY","DENSE_RANK","NTILE","RANK","ROW_NUMBER","PUBLISHINGSERVERNAME","OPENDATASOURCE","OPENQUERY","OPENROWSET","OPENXML","CERTENCODED","CERTPRIVATEKEY","CURRENT_USER","HAS_DBACCESS","HAS_PERMS_BY_NAME","IS_MEMBER","IS_ROLEMEMBER","IS_SRVROLEMEMBER","LOGINPROPERTY","ORIGINAL_LOGIN","PERMISSIONS","PWDENCRYPT","PWDCOMPARE","SESSION_USER","SESSIONPROPERTY","SUSER_ID","SUSER_NAME","SUSER_SID","SUSER_SNAME","SYSTEM_USER","USER","USER_ID","USER_NAME","ASCII","CHAR","CHARINDEX","CONCAT","DIFFERENCE","FORMAT","LEFT","LEN","LOWER","LTRIM","NCHAR","PATINDEX","QUOTENAME","REPLACE","REPLICATE","REVERSE","RIGHT","RTRIM","SOUNDEX","SPACE","STR","STUFF","SUBSTRING","UNICODE","UPPER","BINARY_CHECKSUM","CHECKSUM","CONNECTIONPROPERTY","CONTEXT_INFO","CURRENT_REQUEST_ID","ERROR_LINE","ERROR_NUMBER","ERROR_MESSAGE","ERROR_PROCEDURE","ERROR_SEVERITY","ERROR_STATE","FORMATMESSAGE","GETANSINULL","GET_FILESTREAM_TRANSACTION_CONTEXT","HOST_ID","HOST_NAME","ISNULL","ISNUMERIC","MIN_ACTIVE_ROWVERSION","NEWID","NEWSEQUENTIALID","ROWCOUNT_BIG","XACT_STATE","TEXTPTR","TEXTVALID","COLUMNS_UPDATED","EVENTDATA","TRIGGER_NESTLEVEL","UPDATE","CHANGETABLE","CHANGE_TRACKING_CONTEXT","CHANGE_TRACKING_CURRENT_VERSION","CHANGE_TRACKING_IS_COLUMN_IN_MASK","CHANGE_TRACKING_MIN_VALID_VERSION","CONTAINSTABLE","FREETEXTTABLE","SEMANTICKEYPHRASETABLE","SEMANTICSIMILARITYDETAILSTABLE","SEMANTICSIMILARITYTABLE","FILETABLEROOTPATH","GETFILENAMESPACEPATH","GETPATHLOCATOR","PATHNAME","GET_TRANSMISSION_STATUS"],builtinVariables:["@@DATEFIRST","@@DBTS","@@LANGID","@@LANGUAGE","@@LOCK_TIMEOUT","@@MAX_CONNECTIONS","@@MAX_PRECISION","@@NESTLEVEL","@@OPTIONS","@@REMSERVER","@@SERVERNAME","@@SERVICENAME","@@SPID","@@TEXTSIZE","@@VERSION","@@CURSOR_ROWS","@@FETCH_STATUS","@@DATEFIRST","@@PROCID","@@ERROR","@@IDENTITY","@@ROWCOUNT","@@TRANCOUNT","@@CONNECTIONS","@@CPU_BUSY","@@IDLE","@@IO_BUSY","@@PACKET_ERRORS","@@PACK_RECEIVED","@@PACK_SENT","@@TIMETICKS","@@TOTAL_ERRORS","@@TOTAL_READ","@@TOTAL_WRITE"],pseudoColumns:["$ACTION","$IDENTITY","$ROWGUID","$PARTITION"],tokenizer:{root:[{include:"@comments"},{include:"@whitespace"},{include:"@pseudoColumns"},{include:"@numbers"},{include:"@strings"},{include:"@complexIdentifiers"},{include:"@scopes"},[/[;,.]/,"delimiter"],[/[()]/,"@brackets"],[/[\w@#$]+/,{cases:{"@operators":"operator","@builtinVariables":"predefined","@builtinFunctions":"predefined","@keywords":"keyword","@default":"identifier"}}],[/[<>=!%&+\-*/|~^]/,"operator"]],whitespace:[[/\s+/,"white"]],comments:[[/--+.*/,"comment"],[/\/\*/,{token:"comment.quote",next:"@comment"}]],comment:[[/[^*/]+/,"comment"],[/\*\//,{token:"comment.quote",next:"@pop"}],[/./,"comment"]],pseudoColumns:[[/[$][A-Za-z_][\w@#$]*/,{cases:{"@pseudoColumns":"predefined","@default":"identifier"}}]],numbers:[[/0[xX][0-9a-fA-F]*/,"number"],[/[$][+-]*\d*(\.\d*)?/,"number"],[/((\d+(\.\d*)?)|(\.\d+))([eE][\-+]?\d+)?/,"number"]],strings:[[/N'/,{token:"string",next:"@string"}],[/'/,{token:"string",next:"@string"}]],string:[[/[^']+/,"string"],[/''/,"string"],[/'/,{token:"string",next:"@pop"}]],complexIdentifiers:[[/\[/,{token:"identifier.quote",next:"@bracketedIdentifier"}],[/"/,{token:"identifier.quote",next:"@quotedIdentifier"}]],bracketedIdentifier:[[/[^\]]+/,"identifier"],[/]]/,"identifier"],[/]/,{token:"identifier.quote",next:"@pop"}]],quotedIdentifier:[[/[^"]+/,"identifier"],[/""/,"identifier"],[/"/,{token:"identifier.quote",next:"@pop"}]],scopes:[[/BEGIN\s+(DISTRIBUTED\s+)?TRAN(SACTION)?\b/i,"keyword"],[/BEGIN\s+TRY\b/i,{token:"keyword.try"}],[/END\s+TRY\b/i,{token:"keyword.try"}],[/BEGIN\s+CATCH\b/i,{token:"keyword.catch"}],[/END\s+CATCH\b/i,{token:"keyword.catch"}],[/(BEGIN|CASE)\b/i,{token:"keyword.block"}],[/END\b/i,{token:"keyword.block"}],[/WHEN\b/i,{token:"keyword.choice"}],[/THEN\b/i,{token:"keyword.choice"}]]}};export{E as conf,T as language}; diff --git a/site/themes/template/static/live-editor/assets/st.c62e32cc.js b/site/themes/template/static/live-editor/assets/st.c62e32cc.js deleted file mode 100644 index 582250a28..000000000 --- a/site/themes/template/static/live-editor/assets/st.c62e32cc.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//",blockComment:["(*","*)"]},brackets:[["{","}"],["[","]"],["(",")"],["var","end_var"],["var_input","end_var"],["var_output","end_var"],["var_in_out","end_var"],["var_temp","end_var"],["var_global","end_var"],["var_access","end_var"],["var_external","end_var"],["type","end_type"],["struct","end_struct"],["program","end_program"],["function","end_function"],["function_block","end_function_block"],["action","end_action"],["step","end_step"],["initial_step","end_step"],["transaction","end_transaction"],["configuration","end_configuration"],["tcp","end_tcp"],["recource","end_recource"],["channel","end_channel"],["library","end_library"],["folder","end_folder"],["binaries","end_binaries"],["includes","end_includes"],["sources","end_sources"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"/*",close:"*/"},{open:"'",close:"'",notIn:["string_sq"]},{open:'"',close:'"',notIn:["string_dq"]},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"},{open:"var",close:"end_var"},{open:"var_input",close:"end_var"},{open:"var_output",close:"end_var"},{open:"var_in_out",close:"end_var"},{open:"var_temp",close:"end_var"},{open:"var_global",close:"end_var"},{open:"var_access",close:"end_var"},{open:"var_external",close:"end_var"},{open:"type",close:"end_type"},{open:"struct",close:"end_struct"},{open:"program",close:"end_program"},{open:"function",close:"end_function"},{open:"function_block",close:"end_function_block"},{open:"action",close:"end_action"},{open:"step",close:"end_step"},{open:"initial_step",close:"end_step"},{open:"transaction",close:"end_transaction"},{open:"configuration",close:"end_configuration"},{open:"tcp",close:"end_tcp"},{open:"recource",close:"end_recource"},{open:"channel",close:"end_channel"},{open:"library",close:"end_library"},{open:"folder",close:"end_folder"},{open:"binaries",close:"end_binaries"},{open:"includes",close:"end_includes"},{open:"sources",close:"end_sources"}],folding:{markers:{start:new RegExp("^\\s*#pragma\\s+region\\b"),end:new RegExp("^\\s*#pragma\\s+endregion\\b")}}},n={defaultToken:"",tokenPostfix:".st",ignoreCase:!0,brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"}],keywords:["if","end_if","elsif","else","case","of","to","__try","__catch","__finally","do","with","by","while","repeat","end_while","end_repeat","end_case","for","end_for","task","retain","non_retain","constant","with","at","exit","return","interval","priority","address","port","on_channel","then","iec","file","uses","version","packagetype","displayname","copyright","summary","vendor","common_source","from","extends"],constant:["false","true","null"],defineKeywords:["var","var_input","var_output","var_in_out","var_temp","var_global","var_access","var_external","end_var","type","end_type","struct","end_struct","program","end_program","function","end_function","function_block","end_function_block","interface","end_interface","method","end_method","property","end_property","namespace","end_namespace","configuration","end_configuration","tcp","end_tcp","resource","end_resource","channel","end_channel","library","end_library","folder","end_folder","binaries","end_binaries","includes","end_includes","sources","end_sources","action","end_action","step","initial_step","end_step","transaction","end_transaction"],typeKeywords:["int","sint","dint","lint","usint","uint","udint","ulint","real","lreal","time","date","time_of_day","date_and_time","string","bool","byte","word","dword","array","pointer","lword"],operators:["=",">","<",":",":=","<=",">=","<>","&","+","-","*","**","MOD","^","or","and","not","xor","abs","acos","asin","atan","cos","exp","expt","ln","log","sin","sqrt","tan","sel","max","min","limit","mux","shl","shr","rol","ror","indexof","sizeof","adr","adrinst","bitadr","is_valid","ref","ref_to"],builtinVariables:[],builtinFunctions:["sr","rs","tp","ton","tof","eq","ge","le","lt","ne","round","trunc","ctd","\u0441tu","ctud","r_trig","f_trig","move","concat","delete","find","insert","left","len","replace","right","rtc"],symbols:/[=>`?!+*\\\/]/,operatorstart:/[\/=\-+!*%<>&|^~?\u00A1-\u00A7\u00A9\u00AB\u00AC\u00AE\u00B0-\u00B1\u00B6\u00BB\u00BF\u00D7\u00F7\u2016-\u2017\u2020-\u2027\u2030-\u203E\u2041-\u2053\u2055-\u205E\u2190-\u23FF\u2500-\u2775\u2794-\u2BFF\u2E00-\u2E7F\u3001-\u3003\u3008-\u3030]/,operatorend:/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE00-\uFE0F\uFE20-\uFE2F\uE0100-\uE01EF]/,operators:/(@operatorstart)((@operatorstart)|(@operatorend))*/,escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,tokenizer:{root:[{include:"@whitespace"},{include:"@comment"},{include:"@attribute"},{include:"@literal"},{include:"@keyword"},{include:"@invokedmethod"},{include:"@symbol"}],whitespace:[[/\s+/,"white"],[/"""/,"string.quote","@endDblDocString"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string.quote","@popall"],[/"/,"string"]],symbol:[[/[{}()\[\]]/,"@brackets"],[/[<>](?!@symbols)/,"@brackets"],[/[.]/,"delimiter"],[/@operators/,"operator"],[/@symbols/,"operator"]],comment:[[/\/\/\/.*$/,"comment.doc"],[/\/\*\*/,"comment.doc","@commentdocbody"],[/\/\/.*$/,"comment"],[/\/\*/,"comment","@commentbody"]],commentdocbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment.doc","@pop"],[/\:[a-zA-Z]+\:/,"comment.doc.param"],[/./,"comment.doc"]],commentbody:[[/\/\*/,"comment","@commentbody"],[/\*\//,"comment","@pop"],[/./,"comment"]],attribute:[[/@@@identifier/,{cases:{"@attributes":"keyword.control","@default":""}}]],literal:[[/"/,{token:"string.quote",next:"@stringlit"}],[/0[b]([01]_?)+/,"number.binary"],[/0[o]([0-7]_?)+/,"number.octal"],[/0[x]([0-9a-fA-F]_?)+([pP][\-+](\d_?)+)?/,"number.hex"],[/(\d_?)*\.(\d_?)+([eE][\-+]?(\d_?)+)?/,"number.float"],[/(\d_?)+/,"number"]],stringlit:[[/\\\(/,{token:"operator",next:"@interpolatedexpression"}],[/@escapes/,"string"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",next:"@pop"}],[/./,"string"]],interpolatedexpression:[[/\(/,{token:"operator",next:"@interpolatedexpression"}],[/\)/,{token:"operator",next:"@pop"}],{include:"@literal"},{include:"@keyword"},{include:"@symbol"}],keyword:[[/`/,{token:"operator",next:"@escapedkeyword"}],[/@identifier/,{cases:{"@keywords":"keyword","[A-Z][a-zA-Z0-9$]*":"type.identifier","@default":"identifier"}}]],escapedkeyword:[[/`/,{token:"operator",next:"@pop"}],[/./,"identifier"]],invokedmethod:[[/([.])(@identifier)/,{cases:{$2:["delimeter","type.identifier"],"@default":""}}]]}};export{e as conf,t as language}; diff --git a/site/themes/template/static/live-editor/assets/systemverilog.cee76387.js b/site/themes/template/static/live-editor/assets/systemverilog.cee76387.js deleted file mode 100644 index d4b09e135..000000000 --- a/site/themes/template/static/live-editor/assets/systemverilog.cee76387.js +++ /dev/null @@ -1 +0,0 @@ -var e={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"],["begin","end"],["case","endcase"],["casex","endcase"],["casez","endcase"],["checker","endchecker"],["class","endclass"],["clocking","endclocking"],["config","endconfig"],["function","endfunction"],["generate","endgenerate"],["group","endgroup"],["interface","endinterface"],["module","endmodule"],["package","endpackage"],["primitive","endprimitive"],["program","endprogram"],["property","endproperty"],["specify","endspecify"],["sequence","endsequence"],["table","endtable"],["task","endtask"]],autoClosingPairs:[{open:"[",close:"]"},{open:"{",close:"}"},{open:"(",close:")"},{open:"'",close:"'",notIn:["string","comment"]},{open:'"',close:'"',notIn:["string"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{offSide:!1,markers:{start:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:begin|case(x|z)?|class|clocking|config|covergroup|function|generate|interface|module|package|primitive|property|program|sequence|specify|table|task)\\b"),end:new RegExp("^(?:\\s*|.*(?!\\/[\\/\\*])[^\\w])(?:end|endcase|endclass|endclocking|endconfig|endgroup|endfunction|endgenerate|endinterface|endmodule|endpackage|endprimitive|endproperty|endprogram|endsequence|endspecify|endtable|endtask)\\b")}}},n={defaultToken:"",tokenPostfix:".sv",brackets:[{token:"delimiter.curly",open:"{",close:"}"},{token:"delimiter.parenthesis",open:"(",close:")"},{token:"delimiter.square",open:"[",close:"]"},{token:"delimiter.angle",open:"<",close:">"}],keywords:["accept_on","alias","always","always_comb","always_ff","always_latch","and","assert","assign","assume","automatic","before","begin","bind","bins","binsof","bit","break","buf","bufif0","bufif1","byte","case","casex","casez","cell","chandle","checker","class","clocking","cmos","config","const","constraint","context","continue","cover","covergroup","coverpoint","cross","deassign","default","defparam","design","disable","dist","do","edge","else","end","endcase","endchecker","endclass","endclocking","endconfig","endfunction","endgenerate","endgroup","endinterface","endmodule","endpackage","endprimitive","endprogram","endproperty","endspecify","endsequence","endtable","endtask","enum","event","eventually","expect","export","extends","extern","final","first_match","for","force","foreach","forever","fork","forkjoin","function","generate","genvar","global","highz0","highz1","if","iff","ifnone","ignore_bins","illegal_bins","implements","implies","import","incdir","include","initial","inout","input","inside","instance","int","integer","interconnect","interface","intersect","join","join_any","join_none","large","let","liblist","library","local","localparam","logic","longint","macromodule","matches","medium","modport","module","nand","negedge","nettype","new","nexttime","nmos","nor","noshowcancelled","not","notif0","notif1","null","or","output","package","packed","parameter","pmos","posedge","primitive","priority","program","property","protected","pull0","pull1","pulldown","pullup","pulsestyle_ondetect","pulsestyle_onevent","pure","rand","randc","randcase","randsequence","rcmos","real","realtime","ref","reg","reject_on","release","repeat","restrict","return","rnmos","rpmos","rtran","rtranif0","rtranif1","s_always","s_eventually","s_nexttime","s_until","s_until_with","scalared","sequence","shortint","shortreal","showcancelled","signed","small","soft","solve","specify","specparam","static","string","strong","strong0","strong1","struct","super","supply0","supply1","sync_accept_on","sync_reject_on","table","tagged","task","this","throughout","time","timeprecision","timeunit","tran","tranif0","tranif1","tri","tri0","tri1","triand","trior","trireg","type","typedef","union","unique","unique0","unsigned","until","until_with","untyped","use","uwire","var","vectored","virtual","void","wait","wait_order","wand","weak","weak0","weak1","while","wildcard","wire","with","within","wor","xnor","xor"],builtin_gates:["and","nand","nor","or","xor","xnor","buf","not","bufif0","bufif1","notif1","notif0","cmos","nmos","pmos","rcmos","rnmos","rpmos","tran","tranif1","tranif0","rtran","rtranif1","rtranif0"],operators:["=","+=","-=","*=","/=","%=","&=","|=","^=","<<=",">>+","<<<=",">>>=","?",":","+","-","!","~","&","~&","|","~|","^","~^","^~","+","-","*","/","%","==","!=","===","!==","==?","!=?","&&","||","**","<","<=",">",">=","&","|","^",">>","<<",">>>","<<<","++","--","->","<->","inside","dist","::","+:","-:","*>","&&&","|->","|=>","#=#"],symbols:/[=>](?!@symbols)/,"@brackets"],[/@symbols/,{cases:{"@operators":"delimiter","@default":""}}],{include:"@numbers"},[/[;,.]/,"delimiter"],{include:"@strings"}],identifier_or_keyword:[[/@identifier/,{cases:{"@keywords":{token:"keyword.$0"},"@default":"identifier"}}]],numbers:[[/\d+?[\d_]*(?:\.[\d_]+)?[eE][\-+]?\d+/,"number.float"],[/\d+?[\d_]*\.[\d_]+(?:\s*@timeunits)?/,"number.float"],[/(?:\d+?[\d_]*\s*)?'[sS]?[dD]\s*[0-9xXzZ?]+?[0-9xXzZ?_]*/,"number"],[/(?:\d+?[\d_]*\s*)?'[sS]?[bB]\s*[0-1xXzZ?]+?[0-1xXzZ?_]*/,"number.binary"],[/(?:\d+?[\d_]*\s*)?'[sS]?[oO]\s*[0-7xXzZ?]+?[0-7xXzZ?_]*/,"number.octal"],[/(?:\d+?[\d_]*\s*)?'[sS]?[hH]\s*[0-9a-fA-FxXzZ?]+?[0-9a-fA-FxXzZ?_]*/,"number.hex"],[/1step/,"number"],[/[\dxXzZ]+?[\dxXzZ_]*(?:\s*@timeunits)?/,"number"],[/'[01xXzZ]+/,"number"]],module_instance:[{include:"@whitespace"},[/(#?)(\()/,["",{token:"@brackets",next:"@port_connection"}]],[/@identifier\s*[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@symbols|[;={}\[\],]/,{token:"@rematch",next:"@pop"}],[/@identifier/,"type"],[/;/,"delimiter","@pop"]],port_connection:[{include:"@identifier_or_keyword"},{include:"@whitespace"},[/@systemcall/,"variable.predefined"],{include:"@numbers"},{include:"@strings"},[/[,]/,"delimiter"],[/\(/,"@brackets","@port_connection"],[/\)/,"@brackets","@pop"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[\/*]/,"comment"]],strings:[[/"([^"\\]|\\.)*$/,"string.invalid"],[/"/,"string","@string"]],string:[[/[^\\"]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,"string","@pop"]],include:[[/(\s*)(")([\w*\/*]*)(.\w*)(")/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]],[/(\s*)(<)([\w*\/*]*)(.\w*)(>)/,["","string.include.identifier","string.include.identifier","string.include.identifier",{token:"string.include.identifier",next:"@pop"}]]],table:[{include:"@whitespace"},[/[()]/,"@brackets"],[/[:;]/,"delimiter"],[/[01\-*?xXbBrRfFpPnN]/,"variable.predefined"],["endtable","keyword.endtable","@pop"]]}};export{e as conf,n as language}; diff --git a/site/themes/template/static/live-editor/assets/tcl.4589735e.js b/site/themes/template/static/live-editor/assets/tcl.4589735e.js deleted file mode 100644 index d38d1b6b8..000000000 --- a/site/themes/template/static/live-editor/assets/tcl.4589735e.js +++ /dev/null @@ -1 +0,0 @@ -var e={brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}]},t={tokenPostfix:".tcl",specialFunctions:["set","unset","rename","variable","proc","coroutine","foreach","incr","append","lappend","linsert","lreplace"],mainFunctions:["if","then","elseif","else","case","switch","while","for","break","continue","return","package","namespace","catch","exit","eval","expr","uplevel","upvar"],builtinFunctions:["file","info","concat","join","lindex","list","llength","lrange","lsearch","lsort","split","array","parray","binary","format","regexp","regsub","scan","string","subst","dict","cd","clock","exec","glob","pid","pwd","close","eof","fblocked","fconfigure","fcopy","fileevent","flush","gets","open","puts","read","seek","socket","tell","interp","after","auto_execok","auto_load","auto_mkindex","auto_reset","bgerror","error","global","history","load","source","time","trace","unknown","unset","update","vwait","winfo","wm","bind","event","pack","place","grid","font","bell","clipboard","destroy","focus","grab","lower","option","raise","selection","send","tk","tkwait","tk_bisque","tk_focusNext","tk_focusPrev","tk_focusFollowsMouse","tk_popup","tk_setPalette"],symbols:/[=>{throw a.stack?new Error(a.message+` - -`+a.stack):a},0)}}emit(a){this.listeners.forEach(d=>{d(a)})}onUnexpectedError(a){this.unexpectedErrorHandler(a),this.emit(a)}onUnexpectedExternalError(a){this.unexpectedErrorHandler(a)}}const yC=new hC;function EC(e){bC(e)||yC.onUnexpectedError(e)}function QS(e){if(e instanceof Error){let{name:a,message:d}=e;const g=e.stacktrace||e.stack;return{$isError:!0,name:a,message:d,stack:g}}return e}const ZS="Canceled";function bC(e){return e instanceof Error&&e.name===ZS&&e.message===ZS}function TC(e){const a=this;let d=!1,g;return function(){return d||(d=!0,g=e.apply(a,arguments)),g}}var EE;(function(e){function a(R){return R&&typeof R=="object"&&typeof R[Symbol.iterator]=="function"}e.is=a;const d=Object.freeze([]);function g(){return d}e.empty=g;function*t(R){yield R}e.single=t;function p(R){return R||d}e.from=p;function P(R){return!R||R[Symbol.iterator]().next().done===!0}e.isEmpty=P;function J(R){return R[Symbol.iterator]().next().value}e.first=J;function h(R,O){for(const k of R)if(O(k))return!0;return!1}e.some=h;function v(R,O){for(const k of R)if(O(k))return k}e.find=v;function*I(R,O){for(const k of R)O(k)&&(yield k)}e.filter=I;function*X(R,O){let k=0;for(const M of R)yield O(M,k++)}e.map=X;function*se(...R){for(const O of R)for(const k of O)yield k}e.concat=se;function*y(R){for(const O of R)for(const k of O)yield k}e.concatNested=y;function w(R,O,k){let M=k;for(const z of R)M=O(M,z);return M}e.reduce=w;function*D(R,O,k=R.length){for(O<0&&(O+=R.length),k<0?k+=R.length:k>R.length&&(k=R.length);OM===z){const M=R[Symbol.iterator](),z=O[Symbol.iterator]();for(;;){const Y=M.next(),ne=z.next();if(Y.done!==ne.done)return!1;if(Y.done)return!0;if(!k(Y.value,ne.value))return!1}}e.equals=B})(EE||(EE={}));function SC(e){return e}function DC(e,a){}class LC extends Error{constructor(a){super(`Encountered errors while disposing of store. Errors: [${a.join(", ")}]`);this.errors=a}}function $S(e){if(EE.is(e)){let a=[];for(const d of e)if(d)try{d.dispose()}catch(g){a.push(g)}if(a.length===1)throw a[0];if(a.length>1)throw new LC(a);return Array.isArray(e)?[]:e}else if(e)return e.dispose(),e}function AC(...e){return e1(()=>$S(e))}function e1(e){return SC({dispose:TC(()=>{e()})})}class rv{constructor(){this._toDispose=new Set,this._isDisposed=!1}dispose(){this._isDisposed||(this._isDisposed=!0,this.clear())}clear(){try{$S(this._toDispose.values())}finally{this._toDispose.clear()}}add(a){if(!a)return a;if(a===this)throw new Error("Cannot register a disposable on itself!");return this._isDisposed?rv.DISABLE_DISPOSED_WARNING||console.warn(new Error("Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!").stack):this._toDispose.add(a),a}}rv.DISABLE_DISPOSED_WARNING=!1;class n1{constructor(){this._store=new rv,DC(this._store)}dispose(){this._store.dispose()}_register(a){if(a===this)throw new Error("Cannot register a disposable on itself!");return this._store.add(a)}}n1.None=Object.freeze({dispose(){}});class Ys{constructor(a){this.element=a,this.next=Ys.Undefined,this.prev=Ys.Undefined}}Ys.Undefined=new Ys(void 0);class r1{constructor(){this._first=Ys.Undefined,this._last=Ys.Undefined,this._size=0}get size(){return this._size}isEmpty(){return this._first===Ys.Undefined}clear(){let a=this._first;for(;a!==Ys.Undefined;){const d=a.next;a.prev=Ys.Undefined,a.next=Ys.Undefined,a=d}this._first=Ys.Undefined,this._last=Ys.Undefined,this._size=0}unshift(a){return this._insert(a,!1)}push(a){return this._insert(a,!0)}_insert(a,d){const g=new Ys(a);if(this._first===Ys.Undefined)this._first=g,this._last=g;else if(d){const p=this._last;this._last=g,g.prev=p,p.next=g}else{const p=this._first;this._first=g,g.next=p,p.prev=g}this._size+=1;let t=!1;return()=>{t||(t=!0,this._remove(g))}}shift(){if(this._first!==Ys.Undefined){const a=this._first.element;return this._remove(this._first),a}}pop(){if(this._last!==Ys.Undefined){const a=this._last.element;return this._remove(this._last),a}}_remove(a){if(a.prev!==Ys.Undefined&&a.next!==Ys.Undefined){const d=a.prev;d.next=a.next,a.next.prev=d}else a.prev===Ys.Undefined&&a.next===Ys.Undefined?(this._first=Ys.Undefined,this._last=Ys.Undefined):a.next===Ys.Undefined?(this._last=this._last.prev,this._last.next=Ys.Undefined):a.prev===Ys.Undefined&&(this._first=this._first.next,this._first.prev=Ys.Undefined);this._size-=1}*[Symbol.iterator](){let a=this._first;for(;a!==Ys.Undefined;)yield a.element,a=a.next}}var bE;const hh="en";let TE=!1,SE=!1,DE=!1,yh,LE=hh,CC,l_;const Dc=typeof self=="object"?self:typeof global=="object"?global:{};let Uc;typeof Dc.vscode!="undefined"&&typeof Dc.vscode.process!="undefined"?Uc=Dc.vscode.process:typeof process!="undefined"&&(Uc=process);const xC=typeof((bE=Uc==null?void 0:Uc.versions)===null||bE===void 0?void 0:bE.electron)=="string"&&Uc.type==="renderer";if(typeof navigator=="object"&&!xC)l_=navigator.userAgent,TE=l_.indexOf("Windows")>=0,SE=l_.indexOf("Macintosh")>=0,(l_.indexOf("Macintosh")>=0||l_.indexOf("iPad")>=0||l_.indexOf("iPhone")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,DE=l_.indexOf("Linux")>=0,yh=navigator.language,LE=yh;else if(typeof Uc=="object"){TE=Uc.platform==="win32",SE=Uc.platform==="darwin",DE=Uc.platform==="linux",DE&&!!Uc.env.SNAP&&Uc.env.SNAP_REVISION,yh=hh,LE=hh;const e=Uc.env.VSCODE_NLS_CONFIG;if(e)try{const a=JSON.parse(e),d=a.availableLanguages["*"];yh=a.locale,LE=d||hh,CC=a._translationsConfigFile}catch{}}else console.error("Unable to resolve platform.");const tv=TE,IC=SE,t1=function(){if(Dc.setImmediate)return Dc.setImmediate.bind(Dc);if(typeof Dc.postMessage=="function"&&!Dc.importScripts){let d=[];Dc.addEventListener("message",t=>{if(t.data&&t.data.vscodeSetImmediateId)for(let p=0,P=d.length;p{const p=++g;d.push({id:p,callback:t}),Dc.postMessage({vscodeSetImmediateId:p},"*")}}if(typeof(Uc==null?void 0:Uc.nextTick)=="function")return Uc.nextTick.bind(Uc);const a=Promise.resolve();return d=>a.then(d)}(),NC=Dc.performance&&typeof Dc.performance.now=="function";class Eh{constructor(a){this._highResolution=NC&&a,this._startTime=this._now(),this._stopTime=-1}static create(a=!0){return new Eh(a)}stop(){this._stopTime=this._now()}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}_now(){return this._highResolution?Dc.performance.now():Date.now()}}var AE;(function(e){e.None=()=>n1.None;function a(R){return(O,k=null,M)=>{let z=!1,Y;return Y=R(ne=>{if(!z)return Y?Y.dispose():z=!0,O.call(k,ne)},null,M),z&&Y.dispose(),Y}}e.once=a;function d(R,O){return h((k,M=null,z)=>R(Y=>k.call(M,O(Y)),null,z))}e.map=d;function g(R,O){return h((k,M=null,z)=>R(Y=>{O(Y),k.call(M,Y)},null,z))}e.forEach=g;function t(R,O){return h((k,M=null,z)=>R(Y=>O(Y)&&k.call(M,Y),null,z))}e.filter=t;function p(R){return R}e.signal=p;function P(...R){return(O,k=null,M)=>AC(...R.map(z=>z(Y=>O.call(k,Y),null,M)))}e.any=P;function J(R,O,k){let M=k;return d(R,z=>(M=O(M,z),M))}e.reduce=J;function h(R){let O;const k=new Cm({onFirstListenerAdd(){O=R(k.fire,k)},onLastListenerRemove(){O.dispose()}});return k.event}function v(R,O,k=100,M=!1,z){let Y,ne,j,H=0;const K=new Cm({leakWarningThreshold:z,onFirstListenerAdd(){Y=R(ee=>{H++,ne=O(ne,ee),M&&!j&&(K.fire(ne),ne=void 0),clearTimeout(j),j=setTimeout(()=>{const b=ne;ne=void 0,j=void 0,(!M||H>1)&&K.fire(b),H=0},k)})},onLastListenerRemove(){Y.dispose()}});return K.event}e.debounce=v;function I(R,O=(k,M)=>k===M){let k=!0,M;return t(R,z=>{const Y=k||!O(z,M);return k=!1,M=z,Y})}e.latch=I;function X(R,O){return[e.filter(R,O),e.filter(R,k=>!O(k))]}e.split=X;function se(R,O=!1,k=[]){let M=k.slice(),z=R(j=>{M?M.push(j):ne.fire(j)});const Y=()=>{M&&M.forEach(j=>ne.fire(j)),M=null},ne=new Cm({onFirstListenerAdd(){z||(z=R(j=>ne.fire(j)))},onFirstListenerDidAdd(){M&&(O?setTimeout(Y):Y())},onLastListenerRemove(){z&&z.dispose(),z=null}});return ne.event}e.buffer=se;class y{constructor(O){this.event=O}map(O){return new y(d(this.event,O))}forEach(O){return new y(g(this.event,O))}filter(O){return new y(t(this.event,O))}reduce(O,k){return new y(J(this.event,O,k))}latch(){return new y(I(this.event))}debounce(O,k=100,M=!1,z){return new y(v(this.event,O,k,M,z))}on(O,k,M){return this.event(O,k,M)}once(O,k,M){return a(this.event)(O,k,M)}}function w(R){return new y(R)}e.chain=w;function D(R,O,k=M=>M){const M=(...j)=>ne.fire(k(...j)),z=()=>R.on(O,M),Y=()=>R.removeListener(O,M),ne=new Cm({onFirstListenerAdd:z,onLastListenerRemove:Y});return ne.event}e.fromNodeEventEmitter=D;function U(R,O,k=M=>M){const M=(...j)=>ne.fire(k(...j)),z=()=>R.addEventListener(O,M),Y=()=>R.removeEventListener(O,M),ne=new Cm({onFirstListenerAdd:z,onLastListenerRemove:Y});return ne.event}e.fromDOMEventEmitter=U;function B(R){return new Promise(O=>a(R)(O))}e.toPromise=B})(AE||(AE={}));class bh{constructor(a){this._listenerCount=0,this._invocationCount=0,this._elapsedOverall=0,this._name=`${a}_${bh._idPool++}`}start(a){this._stopWatch=new Eh(!0),this._listenerCount=a}stop(){if(this._stopWatch){const a=this._stopWatch.elapsed();this._elapsedOverall+=a,this._invocationCount+=1,console.info(`did FIRE ${this._name}: elapsed_ms: ${a.toFixed(5)}, listener: ${this._listenerCount} (elapsed_overall: ${this._elapsedOverall.toFixed(2)}, invocations: ${this._invocationCount})`),this._stopWatch=void 0}}}bh._idPool=0;class Cm{constructor(a){var d;this._disposed=!1,this._options=a,this._leakageMon=void 0,this._perfMon=((d=this._options)===null||d===void 0?void 0:d._profName)?new bh(this._options._profName):void 0}get event(){return this._event||(this._event=(a,d,g)=>{var t;this._listeners||(this._listeners=new r1);const p=this._listeners.isEmpty();p&&this._options&&this._options.onFirstListenerAdd&&this._options.onFirstListenerAdd(this);const P=this._listeners.push(d?[a,d]:a);p&&this._options&&this._options.onFirstListenerDidAdd&&this._options.onFirstListenerDidAdd(this),this._options&&this._options.onListenerDidAdd&&this._options.onListenerDidAdd(this,a,d);const J=(t=this._leakageMon)===null||t===void 0?void 0:t.check(this._listeners.size),h=e1(()=>{J&&J(),this._disposed||(P(),this._options&&this._options.onLastListenerRemove&&(this._listeners&&!this._listeners.isEmpty()||this._options.onLastListenerRemove(this)))});return g instanceof rv?g.add(h):Array.isArray(g)&&g.push(h),h}),this._event}fire(a){var d,g;if(this._listeners){this._deliveryQueue||(this._deliveryQueue=new r1);for(let t of this._listeners)this._deliveryQueue.push([t,a]);for((d=this._perfMon)===null||d===void 0||d.start(this._deliveryQueue.size);this._deliveryQueue.size>0;){const[t,p]=this._deliveryQueue.shift();try{typeof t=="function"?t.call(void 0,p):t[0].call(t[1],p)}catch(P){EC(P)}}(g=this._perfMon)===null||g===void 0||g.stop()}}dispose(){var a,d,g,t,p;this._disposed||(this._disposed=!0,(a=this._listeners)===null||a===void 0||a.clear(),(d=this._deliveryQueue)===null||d===void 0||d.clear(),(t=(g=this._options)===null||g===void 0?void 0:g.onLastListenerRemove)===null||t===void 0||t.call(g),(p=this._leakageMon)===null||p===void 0||p.dispose())}}function kC(e){let a=[],d=Object.getPrototypeOf(e);for(;Object.prototype!==d;)a=a.concat(Object.getOwnPropertyNames(d)),d=Object.getPrototypeOf(d);return a}function CE(e){const a=[];for(const d of kC(e))typeof e[d]=="function"&&a.push(d);return a}function RC(e,a){const d=t=>function(){const p=Array.prototype.slice.call(arguments,0);return a(t,p)};let g={};for(const t of e)g[t]=d(t);return g}function OC(e){return e.split(/\r\n|\r|\n/)}function PC(e){for(let a=0,d=e.length;a=0;d--){const g=e.charCodeAt(d);if(g!==32&&g!==9)return d}return-1}function a1(e){return e>=65&&e<=90}const wC="$initialize";class FC{constructor(a,d,g,t){this.vsWorker=a,this.req=d,this.method=g,this.args=t,this.type=0}}class i1{constructor(a,d,g,t){this.vsWorker=a,this.seq=d,this.res=g,this.err=t,this.type=1}}class GC{constructor(a,d,g,t){this.vsWorker=a,this.req=d,this.eventName=g,this.arg=t,this.type=2}}class BC{constructor(a,d,g){this.vsWorker=a,this.req=d,this.event=g,this.type=3}}class UC{constructor(a,d){this.vsWorker=a,this.req=d,this.type=4}}class VC{constructor(a){this._workerId=-1,this._handler=a,this._lastSentReq=0,this._pendingReplies=Object.create(null),this._pendingEmitters=new Map,this._pendingEvents=new Map}setWorkerId(a){this._workerId=a}sendMessage(a,d){const g=String(++this._lastSentReq);return new Promise((t,p)=>{this._pendingReplies[g]={resolve:t,reject:p},this._send(new FC(this._workerId,g,a,d))})}listen(a,d){let g=null;const t=new Cm({onFirstListenerAdd:()=>{g=String(++this._lastSentReq),this._pendingEmitters.set(g,t),this._send(new GC(this._workerId,g,a,d))},onLastListenerRemove:()=>{this._pendingEmitters.delete(g),this._send(new UC(this._workerId,g)),g=null}});return t.event}handleMessage(a){!a||!a.vsWorker||this._workerId!==-1&&a.vsWorker!==this._workerId||this._handleMessage(a)}_handleMessage(a){switch(a.type){case 1:return this._handleReplyMessage(a);case 0:return this._handleRequestMessage(a);case 2:return this._handleSubscribeEventMessage(a);case 3:return this._handleEventMessage(a);case 4:return this._handleUnsubscribeEventMessage(a)}}_handleReplyMessage(a){if(!this._pendingReplies[a.seq]){console.warn("Got reply to unknown seq");return}let d=this._pendingReplies[a.seq];if(delete this._pendingReplies[a.seq],a.err){let g=a.err;a.err.$isError&&(g=new Error,g.name=a.err.name,g.message=a.err.message,g.stack=a.err.stack),d.reject(g);return}d.resolve(a.res)}_handleRequestMessage(a){let d=a.req;this._handler.handleMessage(a.method,a.args).then(t=>{this._send(new i1(this._workerId,d,t,void 0))},t=>{t.detail instanceof Error&&(t.detail=QS(t.detail)),this._send(new i1(this._workerId,d,void 0,QS(t)))})}_handleSubscribeEventMessage(a){const d=a.req,g=this._handler.handleEvent(a.eventName,a.arg)(t=>{this._send(new BC(this._workerId,d,t))});this._pendingEvents.set(d,g)}_handleEventMessage(a){if(!this._pendingEmitters.has(a.req)){console.warn("Got event for unknown req");return}this._pendingEmitters.get(a.req).fire(a.event)}_handleUnsubscribeEventMessage(a){if(!this._pendingEvents.has(a.req)){console.warn("Got unsubscribe for unknown req");return}this._pendingEvents.get(a.req).dispose(),this._pendingEvents.delete(a.req)}_send(a){let d=[];if(a.type===0)for(let g=0;gfunction(){const J=Array.prototype.slice.call(arguments,0);return a(P,J)},t=P=>function(J){return d(P,J)};let p={};for(const P of e){if(s1(P)){p[P]=t(P);continue}if(o1(P)){p[P]=d(P,void 0);continue}p[P]=g(P)}return p}class jC{constructor(a,d){this._requestHandlerFactory=d,this._requestHandler=null,this._protocol=new VC({sendMessage:(g,t)=>{a(g,t)},handleMessage:(g,t)=>this._handleMessage(g,t),handleEvent:(g,t)=>this._handleEvent(g,t)})}onmessage(a){this._protocol.handleMessage(a)}_handleMessage(a,d){if(a===wC)return this.initialize(d[0],d[1],d[2],d[3]);if(!this._requestHandler||typeof this._requestHandler[a]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+a));try{return Promise.resolve(this._requestHandler[a].apply(this._requestHandler,d))}catch(g){return Promise.reject(g)}}_handleEvent(a,d){if(!this._requestHandler)throw new Error("Missing requestHandler");if(s1(a)){const g=this._requestHandler[a].call(this._requestHandler,d);if(typeof g!="function")throw new Error(`Missing dynamic event ${a} on request handler.`);return g}if(o1(a)){const g=this._requestHandler[a];if(typeof g!="function")throw new Error(`Missing event ${a} on request handler.`);return g}throw new Error(`Malformed event name ${a}`)}initialize(a,d,g,t){this._protocol.setWorkerId(a);const J=WC(t,(h,v)=>this._protocol.sendMessage(h,v),(h,v)=>this._protocol.listen(h,v));return this._requestHandlerFactory?(this._requestHandler=this._requestHandlerFactory(J),Promise.resolve(CE(this._requestHandler))):(d&&(typeof d.baseUrl!="undefined"&&delete d.baseUrl,typeof d.paths!="undefined"&&typeof d.paths.vs!="undefined"&&delete d.paths.vs,typeof d.trustedTypesPolicy!==void 0&&delete d.trustedTypesPolicy,d.catchError=!0,Dc.require.config(d)),new Promise((h,v)=>{Dc.require([g],X=>{if(this._requestHandler=X.create(J),!this._requestHandler){v(new Error("No RequestHandler!"));return}h(CE(this._requestHandler))},v)}))}}class xm{constructor(a,d,g,t){this.originalStart=a,this.originalLength=d,this.modifiedStart=g,this.modifiedLength=t}getOriginalEnd(){return this.originalStart+this.originalLength}getModifiedEnd(){return this.modifiedStart+this.modifiedLength}}function l1(e,a){return(a<<5)-a+e|0}function HC(e,a){a=l1(149417,a);for(let d=0,g=e.length;d0||this.m_modifiedCount>0)&&this.m_changes.push(new xm(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=1073741824,this.m_modifiedStart=1073741824}AddOriginalElement(a,d){this.m_originalStart=Math.min(this.m_originalStart,a),this.m_modifiedStart=Math.min(this.m_modifiedStart,d),this.m_originalCount++}AddModifiedElement(a,d){this.m_originalStart=Math.min(this.m_originalStart,a),this.m_modifiedStart=Math.min(this.m_modifiedStart,d),this.m_modifiedCount++}getChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes}getReverseChanges(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes}}class Im{constructor(a,d,g=null){this.ContinueProcessingPredicate=g,this._originalSequence=a,this._modifiedSequence=d;const[t,p,P]=Im._getElements(a),[J,h,v]=Im._getElements(d);this._hasStrings=P&&v,this._originalStringElements=t,this._originalElementsOrHash=p,this._modifiedStringElements=J,this._modifiedElementsOrHash=h,this.m_forwardHistory=[],this.m_reverseHistory=[]}static _isStringArray(a){return a.length>0&&typeof a[0]=="string"}static _getElements(a){const d=a.getElements();if(Im._isStringArray(d)){const g=new Int32Array(d.length);for(let t=0,p=d.length;t=a&&t>=g&&this.ElementsAreEqual(d,t);)d--,t--;if(a>d||g>t){let X;return g<=t?($_.Assert(a===d+1,"originalStart should only be one more than originalEnd"),X=[new xm(a,0,g,t-g+1)]):a<=d?($_.Assert(g===t+1,"modifiedStart should only be one more than modifiedEnd"),X=[new xm(a,d-a+1,g,0)]):($_.Assert(a===d+1,"originalStart should only be one more than originalEnd"),$_.Assert(g===t+1,"modifiedStart should only be one more than modifiedEnd"),X=[]),X}const P=[0],J=[0],h=this.ComputeRecursionPoint(a,d,g,t,P,J,p),v=P[0],I=J[0];if(h!==null)return h;if(!p[0]){const X=this.ComputeDiffRecursive(a,v,g,I,p);let se=[];return p[0]?se=[new xm(v+1,d-(v+1)+1,I+1,t-(I+1)+1)]:se=this.ComputeDiffRecursive(v+1,d,I+1,t,p),this.ConcatenateChanges(X,se)}return[new xm(a,d-a+1,g,t-g+1)]}WALKTRACE(a,d,g,t,p,P,J,h,v,I,X,se,y,w,D,U,B,R){let O=null,k=null,M=new u1,z=d,Y=g,ne=y[0]-U[0]-t,j=-1073741824,H=this.m_forwardHistory.length-1;do{const K=ne+a;K===z||K=0&&(v=this.m_forwardHistory[H],a=v[0],z=1,Y=v.length-1)}while(--H>=-1);if(O=M.getReverseChanges(),R[0]){let K=y[0]+1,ee=U[0]+1;if(O!==null&&O.length>0){const b=O[O.length-1];K=Math.max(K,b.getOriginalEnd()),ee=Math.max(ee,b.getModifiedEnd())}k=[new xm(K,se-K+1,ee,D-ee+1)]}else{M=new u1,z=P,Y=J,ne=y[0]-U[0]-h,j=1073741824,H=B?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{const K=ne+p;K===z||K=I[K+1]?(X=I[K+1]-1,w=X-ne-h,X>j&&M.MarkNextChange(),j=X+1,M.AddOriginalElement(X+1,w+1),ne=K+1-p):(X=I[K-1],w=X-ne-h,X>j&&M.MarkNextChange(),j=X,M.AddModifiedElement(X+1,w+1),ne=K-1-p),H>=0&&(I=this.m_reverseHistory[H],p=I[0],z=1,Y=I.length-1)}while(--H>=-1);k=M.getChanges()}return this.ConcatenateChanges(O,k)}ComputeRecursionPoint(a,d,g,t,p,P,J){let h=0,v=0,I=0,X=0,se=0,y=0;a--,g--,p[0]=0,P[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];const w=d-a+(t-g),D=w+1,U=new Int32Array(D),B=new Int32Array(D),R=t-g,O=d-a,k=a-g,M=d-t,Y=(O-R)%2==0;U[R]=a,B[O]=d,J[0]=!1;for(let ne=1;ne<=w/2+1;ne++){let j=0,H=0;I=this.ClipDiagonalBound(R-ne,ne,R,D),X=this.ClipDiagonalBound(R+ne,ne,R,D);for(let ee=I;ee<=X;ee+=2){ee===I||eej+H&&(j=h,H=v),!Y&&Math.abs(ee-O)<=ne-1&&h>=B[ee])return p[0]=h,P[0]=v,b<=B[ee]&&1447>0&&ne<=1447+1?this.WALKTRACE(R,I,X,k,O,se,y,M,U,B,h,d,p,v,t,P,Y,J):null}const K=(j-a+(H-g)-ne)/2;if(this.ContinueProcessingPredicate!==null&&!this.ContinueProcessingPredicate(j,K))return J[0]=!0,p[0]=j,P[0]=H,K>0&&1447>0&&ne<=1447+1?this.WALKTRACE(R,I,X,k,O,se,y,M,U,B,h,d,p,v,t,P,Y,J):(a++,g++,[new xm(a,d-a+1,g,t-g+1)]);se=this.ClipDiagonalBound(O-ne,ne,O,D),y=this.ClipDiagonalBound(O+ne,ne,O,D);for(let ee=se;ee<=y;ee+=2){ee===se||ee=B[ee+1]?h=B[ee+1]-1:h=B[ee-1],v=h-(ee-O)-M;const b=h;for(;h>a&&v>g&&this.ElementsAreEqual(h,v);)h--,v--;if(B[ee]=h,Y&&Math.abs(ee-R)<=ne&&h<=U[ee])return p[0]=h,P[0]=v,b>=U[ee]&&1447>0&&ne<=1447+1?this.WALKTRACE(R,I,X,k,O,se,y,M,U,B,h,d,p,v,t,P,Y,J):null}if(ne<=1447){let ee=new Int32Array(X-I+2);ee[0]=R-I+1,eg.Copy2(U,I,ee,1,X-I+1),this.m_forwardHistory.push(ee),ee=new Int32Array(y-se+2),ee[0]=O-se+1,eg.Copy2(B,se,ee,1,y-se+1),this.m_reverseHistory.push(ee)}}return this.WALKTRACE(R,I,X,k,O,se,y,M,U,B,h,d,p,v,t,P,Y,J)}PrettifyChanges(a){for(let d=0;d0,J=g.modifiedLength>0;for(;g.originalStart+g.originalLength=0;d--){const g=a[d];let t=0,p=0;if(d>0){const X=a[d-1];t=X.originalStart+X.originalLength,p=X.modifiedStart+X.modifiedLength}const P=g.originalLength>0,J=g.modifiedLength>0;let h=0,v=this._boundaryScore(g.originalStart,g.originalLength,g.modifiedStart,g.modifiedLength);for(let X=1;;X++){const se=g.originalStart-X,y=g.modifiedStart-X;if(sev&&(v=D,h=X)}g.originalStart-=h,g.modifiedStart-=h;const I=[null];if(d>0&&this.ChangesOverlap(a[d-1],a[d],I)){a[d-1]=I[0],a.splice(d,1),d++;continue}}if(this._hasStrings)for(let d=1,g=a.length;d0&&y>h&&(h=y,v=X,I=se)}return h>0?[v,I]:null}_contiguousSequenceScore(a,d,g){let t=0;for(let p=0;p=this._originalElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._originalStringElements[a])}_OriginalRegionIsBoundary(a,d){if(this._OriginalIsBoundary(a)||this._OriginalIsBoundary(a-1))return!0;if(d>0){const g=a+d;if(this._OriginalIsBoundary(g-1)||this._OriginalIsBoundary(g))return!0}return!1}_ModifiedIsBoundary(a){return a<=0||a>=this._modifiedElementsOrHash.length-1?!0:this._hasStrings&&/^\s*$/.test(this._modifiedStringElements[a])}_ModifiedRegionIsBoundary(a,d){if(this._ModifiedIsBoundary(a)||this._ModifiedIsBoundary(a-1))return!0;if(d>0){const g=a+d;if(this._ModifiedIsBoundary(g-1)||this._ModifiedIsBoundary(g))return!0}return!1}_boundaryScore(a,d,g,t){const p=this._OriginalRegionIsBoundary(a,d)?1:0,P=this._ModifiedRegionIsBoundary(g,t)?1:0;return p+P}ConcatenateChanges(a,d){let g=[];if(a.length===0||d.length===0)return d.length>0?d:a;if(this.ChangesOverlap(a[a.length-1],d[0],g)){const t=new Array(a.length+d.length-1);return eg.Copy(a,0,t,0,a.length-1),t[a.length-1]=g[0],eg.Copy(d,1,t,a.length,d.length-1),t}else{const t=new Array(a.length+d.length);return eg.Copy(a,0,t,0,a.length),eg.Copy(d,0,t,a.length,d.length),t}}ChangesOverlap(a,d,g){if($_.Assert(a.originalStart<=d.originalStart,"Left change is not less than or equal to right change"),$_.Assert(a.modifiedStart<=d.modifiedStart,"Left change is not less than or equal to right change"),a.originalStart+a.originalLength>=d.originalStart||a.modifiedStart+a.modifiedLength>=d.modifiedStart){const t=a.originalStart;let p=a.originalLength;const P=a.modifiedStart;let J=a.modifiedLength;return a.originalStart+a.originalLength>=d.originalStart&&(p=d.originalStart+d.originalLength-a.originalStart),a.modifiedStart+a.modifiedLength>=d.modifiedStart&&(J=d.modifiedStart+d.modifiedLength-a.modifiedStart),g[0]=new xm(t,p,P,J),!0}else return g[0]=null,!1}ClipDiagonalBound(a,d,g,t){if(a>=0&&a=zC&&e<=XC||e>=qC&&e<=YC}function Th(e,a,d,g){let t="",p=0,P=-1,J=0,h=0;for(let v=0;v<=e.length;++v){if(v2){const I=t.lastIndexOf(d);I===-1?(t="",p=0):(t=t.slice(0,I),p=t.length-1-t.lastIndexOf(d)),P=v,J=0;continue}else if(t.length!==0){t="",p=0,P=v,J=0;continue}}a&&(t+=t.length>0?`${d}..`:"..",p=2)}else t.length>0?t+=`${d}${e.slice(P+1,v)}`:t=e.slice(P+1,v),p=v-P-1;P=v,J=0}else h===Nm&&J!==-1?++J:J=-1}return t}function d1(e,a){if(a===null||typeof a!="object")throw new f1("pathObject","Object",a);const d=a.dir||a.root,g=a.base||`${a.name||""}${a.ext||""}`;return d?d===a.root?`${d}${g}`:`${d}${e}${g}`:g}const Mu={resolve(...e){let a="",d="",g=!1;for(let t=e.length-1;t>=-1;t--){let p;if(t>=0){if(p=e[t],zl(p,"path"),p.length===0)continue}else a.length===0?p=xE():(p=KC[`=${a}`]||xE(),(p===void 0||p.slice(0,2).toLowerCase()!==a.toLowerCase()&&p.charCodeAt(2)===Xu)&&(p=`${a}\\`));const P=p.length;let J=0,h="",v=!1;const I=p.charCodeAt(0);if(P===1)Ho(I)&&(J=1,v=!0);else if(Ho(I))if(v=!0,Ho(p.charCodeAt(1))){let X=2,se=X;for(;X2&&Ho(p.charCodeAt(2))&&(v=!0,J=3));if(h.length>0)if(a.length>0){if(h.toLowerCase()!==a.toLowerCase())continue}else a=h;if(g){if(a.length>0)break}else if(d=`${p.slice(J)}\\${d}`,g=v,v&&a.length>0)break}return d=Th(d,!g,"\\",Ho),g?`${a}\\${d}`:`${a}${d}`||"."},normalize(e){zl(e,"path");const a=e.length;if(a===0)return".";let d=0,g,t=!1;const p=e.charCodeAt(0);if(a===1)return IE(p)?"\\":e;if(Ho(p))if(t=!0,Ho(e.charCodeAt(1))){let J=2,h=J;for(;J2&&Ho(e.charCodeAt(2))&&(t=!0,d=3));let P=d0&&Ho(e.charCodeAt(a-1))&&(P+="\\"),g===void 0?t?`\\${P}`:P:t?`${g}\\${P}`:`${g}${P}`},isAbsolute(e){zl(e,"path");const a=e.length;if(a===0)return!1;const d=e.charCodeAt(0);return Ho(d)||a>2&&Rm(d)&&e.charCodeAt(1)===km&&Ho(e.charCodeAt(2))},join(...e){if(e.length===0)return".";let a,d;for(let p=0;p0&&(a===void 0?a=d=P:a+=`\\${P}`)}if(a===void 0)return".";let g=!0,t=0;if(typeof d=="string"&&Ho(d.charCodeAt(0))){++t;const p=d.length;p>1&&Ho(d.charCodeAt(1))&&(++t,p>2&&(Ho(d.charCodeAt(2))?++t:g=!1))}if(g){for(;t=2&&(a=`\\${a.slice(t)}`)}return Mu.normalize(a)},relative(e,a){if(zl(e,"from"),zl(a,"to"),e===a)return"";const d=Mu.resolve(e),g=Mu.resolve(a);if(d===g||(e=d.toLowerCase(),a=g.toLowerCase(),e===a))return"";let t=0;for(;tt&&e.charCodeAt(p-1)===Xu;)p--;const P=p-t;let J=0;for(;JJ&&a.charCodeAt(h-1)===Xu;)h--;const v=h-J,I=PI){if(a.charCodeAt(J+se)===Xu)return g.slice(J+se+1);if(se===2)return g.slice(J+se)}P>I&&(e.charCodeAt(t+se)===Xu?X=se:se===2&&(X=3)),X===-1&&(X=0)}let y="";for(se=t+X+1;se<=p;++se)(se===p||e.charCodeAt(se)===Xu)&&(y+=y.length===0?"..":"\\..");return J+=X,y.length>0?`${y}${g.slice(J,h)}`:(g.charCodeAt(J)===Xu&&++J,g.slice(J,h))},toNamespacedPath(e){if(typeof e!="string")return e;if(e.length===0)return"";const a=Mu.resolve(e);if(a.length<=2)return e;if(a.charCodeAt(0)===Xu){if(a.charCodeAt(1)===Xu){const d=a.charCodeAt(2);if(d!==QC&&d!==Nm)return`\\\\?\\UNC\\${a.slice(2)}`}}else if(Rm(a.charCodeAt(0))&&a.charCodeAt(1)===km&&a.charCodeAt(2)===Xu)return`\\\\?\\${a}`;return e},dirname(e){zl(e,"path");const a=e.length;if(a===0)return".";let d=-1,g=0;const t=e.charCodeAt(0);if(a===1)return Ho(t)?e:".";if(Ho(t)){if(d=g=1,Ho(e.charCodeAt(1))){let J=2,h=J;for(;J2&&Ho(e.charCodeAt(2))?3:2,g=d);let p=-1,P=!0;for(let J=a-1;J>=g;--J)if(Ho(e.charCodeAt(J))){if(!P){p=J;break}}else P=!1;if(p===-1){if(d===-1)return".";p=d}return e.slice(0,p)},basename(e,a){a!==void 0&&zl(a,"ext"),zl(e,"path");let d=0,g=-1,t=!0,p;if(e.length>=2&&Rm(e.charCodeAt(0))&&e.charCodeAt(1)===km&&(d=2),a!==void 0&&a.length>0&&a.length<=e.length){if(a===e)return"";let P=a.length-1,J=-1;for(p=e.length-1;p>=d;--p){const h=e.charCodeAt(p);if(Ho(h)){if(!t){d=p+1;break}}else J===-1&&(t=!1,J=p+1),P>=0&&(h===a.charCodeAt(P)?--P==-1&&(g=p):(P=-1,g=J))}return d===g?g=J:g===-1&&(g=e.length),e.slice(d,g)}for(p=e.length-1;p>=d;--p)if(Ho(e.charCodeAt(p))){if(!t){d=p+1;break}}else g===-1&&(t=!1,g=p+1);return g===-1?"":e.slice(d,g)},extname(e){zl(e,"path");let a=0,d=-1,g=0,t=-1,p=!0,P=0;e.length>=2&&e.charCodeAt(1)===km&&Rm(e.charCodeAt(0))&&(a=g=2);for(let J=e.length-1;J>=a;--J){const h=e.charCodeAt(J);if(Ho(h)){if(!p){g=J+1;break}continue}t===-1&&(p=!1,t=J+1),h===Nm?d===-1?d=J:P!==1&&(P=1):d!==-1&&(P=-1)}return d===-1||t===-1||P===0||P===1&&d===t-1&&d===g+1?"":e.slice(d,t)},format:d1.bind(null,"\\"),parse(e){zl(e,"path");const a={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return a;const d=e.length;let g=0,t=e.charCodeAt(0);if(d===1)return Ho(t)?(a.root=a.dir=e,a):(a.base=a.name=e,a);if(Ho(t)){if(g=1,Ho(e.charCodeAt(1))){let X=2,se=X;for(;X0&&(a.root=e.slice(0,g));let p=-1,P=g,J=-1,h=!0,v=e.length-1,I=0;for(;v>=g;--v){if(t=e.charCodeAt(v),Ho(t)){if(!h){P=v+1;break}continue}J===-1&&(h=!1,J=v+1),t===Nm?p===-1?p=v:I!==1&&(I=1):p!==-1&&(I=-1)}return J!==-1&&(p===-1||I===0||I===1&&p===J-1&&p===P+1?a.base=a.name=e.slice(P,J):(a.name=e.slice(P,p),a.base=e.slice(P,J),a.ext=e.slice(p,J))),P>0&&P!==g?a.dir=e.slice(0,P-1):a.dir=a.root,a},sep:"\\",delimiter:";",win32:null,posix:null},Yu={resolve(...e){let a="",d=!1;for(let g=e.length-1;g>=-1&&!d;g--){const t=g>=0?e[g]:xE();zl(t,"path"),t.length!==0&&(a=`${t}/${a}`,d=t.charCodeAt(0)===Vc)}return a=Th(a,!d,"/",IE),d?`/${a}`:a.length>0?a:"."},normalize(e){if(zl(e,"path"),e.length===0)return".";const a=e.charCodeAt(0)===Vc,d=e.charCodeAt(e.length-1)===Vc;return e=Th(e,!a,"/",IE),e.length===0?a?"/":d?"./":".":(d&&(e+="/"),a?`/${e}`:e)},isAbsolute(e){return zl(e,"path"),e.length>0&&e.charCodeAt(0)===Vc},join(...e){if(e.length===0)return".";let a;for(let d=0;d0&&(a===void 0?a=g:a+=`/${g}`)}return a===void 0?".":Yu.normalize(a)},relative(e,a){if(zl(e,"from"),zl(a,"to"),e===a||(e=Yu.resolve(e),a=Yu.resolve(a),e===a))return"";const d=1,g=e.length,t=g-d,p=1,P=a.length-p,J=tJ){if(a.charCodeAt(p+v)===Vc)return a.slice(p+v+1);if(v===0)return a.slice(p+v)}else t>J&&(e.charCodeAt(d+v)===Vc?h=v:v===0&&(h=0));let I="";for(v=d+h+1;v<=g;++v)(v===g||e.charCodeAt(v)===Vc)&&(I+=I.length===0?"..":"/..");return`${I}${a.slice(p+h)}`},toNamespacedPath(e){return e},dirname(e){if(zl(e,"path"),e.length===0)return".";const a=e.charCodeAt(0)===Vc;let d=-1,g=!0;for(let t=e.length-1;t>=1;--t)if(e.charCodeAt(t)===Vc){if(!g){d=t;break}}else g=!1;return d===-1?a?"/":".":a&&d===1?"//":e.slice(0,d)},basename(e,a){a!==void 0&&zl(a,"ext"),zl(e,"path");let d=0,g=-1,t=!0,p;if(a!==void 0&&a.length>0&&a.length<=e.length){if(a===e)return"";let P=a.length-1,J=-1;for(p=e.length-1;p>=0;--p){const h=e.charCodeAt(p);if(h===Vc){if(!t){d=p+1;break}}else J===-1&&(t=!1,J=p+1),P>=0&&(h===a.charCodeAt(P)?--P==-1&&(g=p):(P=-1,g=J))}return d===g?g=J:g===-1&&(g=e.length),e.slice(d,g)}for(p=e.length-1;p>=0;--p)if(e.charCodeAt(p)===Vc){if(!t){d=p+1;break}}else g===-1&&(t=!1,g=p+1);return g===-1?"":e.slice(d,g)},extname(e){zl(e,"path");let a=-1,d=0,g=-1,t=!0,p=0;for(let P=e.length-1;P>=0;--P){const J=e.charCodeAt(P);if(J===Vc){if(!t){d=P+1;break}continue}g===-1&&(t=!1,g=P+1),J===Nm?a===-1?a=P:p!==1&&(p=1):a!==-1&&(p=-1)}return a===-1||g===-1||p===0||p===1&&a===g-1&&a===d+1?"":e.slice(a,g)},format:d1.bind(null,"/"),parse(e){zl(e,"path");const a={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return a;const d=e.charCodeAt(0)===Vc;let g;d?(a.root="/",g=1):g=0;let t=-1,p=0,P=-1,J=!0,h=e.length-1,v=0;for(;h>=g;--h){const I=e.charCodeAt(h);if(I===Vc){if(!J){p=h+1;break}continue}P===-1&&(J=!1,P=h+1),I===Nm?t===-1?t=h:v!==1&&(v=1):t!==-1&&(v=-1)}if(P!==-1){const I=p===0&&d?1:p;t===-1||v===0||v===1&&t===P-1&&t===p+1?a.base=a.name=e.slice(I,P):(a.name=e.slice(I,t),a.base=e.slice(I,P),a.ext=e.slice(t,P))}return p>0?a.dir=e.slice(0,p-1):d&&(a.dir="/"),a},sep:"/",delimiter:":",win32:null,posix:null};Yu.win32=Mu.win32=Mu,Yu.posix=Mu.posix=Yu,c_==="win32"?Mu.normalize:Yu.normalize,c_==="win32"?Mu.resolve:Yu.resolve,c_==="win32"?Mu.relative:Yu.relative,c_==="win32"?Mu.dirname:Yu.dirname,c_==="win32"?Mu.basename:Yu.basename,c_==="win32"?Mu.extname:Yu.extname,c_==="win32"?Mu.sep:Yu.sep;const ZC=/^\w[\w\d+.-]*$/,$C=/^\//,ex=/^\/\//;function p1(e,a){if(!e.scheme&&a)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${e.authority}", path: "${e.path}", query: "${e.query}", fragment: "${e.fragment}"}`);if(e.scheme&&!ZC.test(e.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(e.path){if(e.authority){if(!$C.test(e.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(ex.test(e.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}function nx(e,a){return!e&&!a?"file":e}function rx(e,a){switch(e){case"https":case"http":case"file":a?a[0]!==jd&&(a=jd+a):a=jd;break}return a}const ol="",jd="/",tx=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class u_{constructor(a,d,g,t,p,P=!1){typeof a=="object"?(this.scheme=a.scheme||ol,this.authority=a.authority||ol,this.path=a.path||ol,this.query=a.query||ol,this.fragment=a.fragment||ol):(this.scheme=nx(a,P),this.authority=d||ol,this.path=rx(this.scheme,g||ol),this.query=t||ol,this.fragment=p||ol,p1(this,P))}static isUri(a){return a instanceof u_?!0:a?typeof a.authority=="string"&&typeof a.fragment=="string"&&typeof a.path=="string"&&typeof a.query=="string"&&typeof a.scheme=="string"&&typeof a.fsPath=="string"&&typeof a.with=="function"&&typeof a.toString=="function":!1}get fsPath(){return NE(this,!1)}with(a){if(!a)return this;let{scheme:d,authority:g,path:t,query:p,fragment:P}=a;return d===void 0?d=this.scheme:d===null&&(d=ol),g===void 0?g=this.authority:g===null&&(g=ol),t===void 0?t=this.path:t===null&&(t=ol),p===void 0?p=this.query:p===null&&(p=ol),P===void 0?P=this.fragment:P===null&&(P=ol),d===this.scheme&&g===this.authority&&t===this.path&&p===this.query&&P===this.fragment?this:new rg(d,g,t,p,P)}static parse(a,d=!1){const g=tx.exec(a);return g?new rg(g[2]||ol,Sh(g[4]||ol),Sh(g[5]||ol),Sh(g[7]||ol),Sh(g[9]||ol),d):new rg(ol,ol,ol,ol,ol)}static file(a){let d=ol;if(tv&&(a=a.replace(/\\/g,jd)),a[0]===jd&&a[1]===jd){const g=a.indexOf(jd,2);g===-1?(d=a.substring(2),a=jd):(d=a.substring(2,g),a=a.substring(g)||jd)}return new rg("file",d,a,ol,ol)}static from(a){const d=new rg(a.scheme,a.authority,a.path,a.query,a.fragment);return p1(d,!0),d}static joinPath(a,...d){if(!a.path)throw new Error("[UriError]: cannot call joinPath on URI without path");let g;return tv&&a.scheme==="file"?g=u_.file(Mu.join(NE(a,!0),...d)).path:g=Yu.join(a.path,...d),a.with({path:g})}toString(a=!1){return kE(this,a)}toJSON(){return this}static revive(a){if(a){if(a instanceof u_)return a;{const d=new rg(a);return d._formatted=a.external,d._fsPath=a._sep===m1?a.fsPath:null,d}}else return a}}const m1=tv?1:void 0;class rg extends u_{constructor(){super(...arguments);this._formatted=null,this._fsPath=null}get fsPath(){return this._fsPath||(this._fsPath=NE(this,!1)),this._fsPath}toString(a=!1){return a?kE(this,!0):(this._formatted||(this._formatted=kE(this,!1)),this._formatted)}toJSON(){const a={$mid:1};return this._fsPath&&(a.fsPath=this._fsPath,a._sep=m1),this._formatted&&(a.external=this._formatted),this.path&&(a.path=this.path),this.scheme&&(a.scheme=this.scheme),this.authority&&(a.authority=this.authority),this.query&&(a.query=this.query),this.fragment&&(a.fragment=this.fragment),a}}const _1={[58]:"%3A",[47]:"%2F",[63]:"%3F",[35]:"%23",[91]:"%5B",[93]:"%5D",[64]:"%40",[33]:"%21",[36]:"%24",[38]:"%26",[39]:"%27",[40]:"%28",[41]:"%29",[42]:"%2A",[43]:"%2B",[44]:"%2C",[59]:"%3B",[61]:"%3D",[32]:"%20"};function g1(e,a){let d,g=-1;for(let t=0;t=97&&p<=122||p>=65&&p<=90||p>=48&&p<=57||p===45||p===46||p===95||p===126||a&&p===47)g!==-1&&(d+=encodeURIComponent(e.substring(g,t)),g=-1),d!==void 0&&(d+=e.charAt(t));else{d===void 0&&(d=e.substr(0,t));const P=_1[p];P!==void 0?(g!==-1&&(d+=encodeURIComponent(e.substring(g,t)),g=-1),d+=P):g===-1&&(g=t)}}return g!==-1&&(d+=encodeURIComponent(e.substring(g))),d!==void 0?d:e}function ax(e){let a;for(let d=0;d1&&e.scheme==="file"?d=`//${e.authority}${e.path}`:e.path.charCodeAt(0)===47&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&e.path.charCodeAt(2)===58?a?d=e.path.substr(1):d=e.path[1].toLowerCase()+e.path.substr(2):d=e.path,tv&&(d=d.replace(/\//g,"\\")),d}function kE(e,a){const d=a?ax:g1;let g="",{scheme:t,authority:p,path:P,query:J,fragment:h}=e;if(t&&(g+=t,g+=":"),(p||t==="file")&&(g+=jd,g+=jd),p){let v=p.indexOf("@");if(v!==-1){const I=p.substr(0,v);p=p.substr(v+1),v=I.indexOf(":"),v===-1?g+=d(I,!1):(g+=d(I.substr(0,v),!1),g+=":",g+=d(I.substr(v+1),!1)),g+="@"}p=p.toLowerCase(),v=p.indexOf(":"),v===-1?g+=d(p,!1):(g+=d(p.substr(0,v),!1),g+=p.substr(v))}if(P){if(P.length>=3&&P.charCodeAt(0)===47&&P.charCodeAt(2)===58){const v=P.charCodeAt(1);v>=65&&v<=90&&(P=`/${String.fromCharCode(v+32)}:${P.substr(3)}`)}else if(P.length>=2&&P.charCodeAt(1)===58){const v=P.charCodeAt(0);v>=65&&v<=90&&(P=`${String.fromCharCode(v+32)}:${P.substr(2)}`)}g+=d(P,!0)}return J&&(g+="?",g+=d(J,!1)),h&&(g+="#",g+=a?h:g1(h,!1)),g}function v1(e){try{return decodeURIComponent(e)}catch{return e.length>3?e.substr(0,3)+v1(e.substr(3)):e}}const h1=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function Sh(e){return e.match(h1)?e.replace(h1,a=>v1(a)):e}class wf{constructor(a,d){this.lineNumber=a,this.column=d}with(a=this.lineNumber,d=this.column){return a===this.lineNumber&&d===this.column?this:new wf(a,d)}delta(a=0,d=0){return this.with(this.lineNumber+a,this.column+d)}equals(a){return wf.equals(this,a)}static equals(a,d){return!a&&!d?!0:!!a&&!!d&&a.lineNumber===d.lineNumber&&a.column===d.column}isBefore(a){return wf.isBefore(this,a)}static isBefore(a,d){return a.lineNumberg||a===g&&d>t?(this.startLineNumber=g,this.startColumn=t,this.endLineNumber=a,this.endColumn=d):(this.startLineNumber=a,this.startColumn=d,this.endLineNumber=g,this.endColumn=t)}isEmpty(){return Al.isEmpty(this)}static isEmpty(a){return a.startLineNumber===a.endLineNumber&&a.startColumn===a.endColumn}containsPosition(a){return Al.containsPosition(this,a)}static containsPosition(a,d){return!(d.lineNumbera.endLineNumber||d.lineNumber===a.startLineNumber&&d.columna.endColumn)}containsRange(a){return Al.containsRange(this,a)}static containsRange(a,d){return!(d.startLineNumbera.endLineNumber||d.endLineNumber>a.endLineNumber||d.startLineNumber===a.startLineNumber&&d.startColumna.endColumn)}strictContainsRange(a){return Al.strictContainsRange(this,a)}static strictContainsRange(a,d){return!(d.startLineNumbera.endLineNumber||d.endLineNumber>a.endLineNumber||d.startLineNumber===a.startLineNumber&&d.startColumn<=a.startColumn||d.endLineNumber===a.endLineNumber&&d.endColumn>=a.endColumn)}plusRange(a){return Al.plusRange(this,a)}static plusRange(a,d){let g,t,p,P;return d.startLineNumbera.endLineNumber?(p=d.endLineNumber,P=d.endColumn):d.endLineNumber===a.endLineNumber?(p=d.endLineNumber,P=Math.max(d.endColumn,a.endColumn)):(p=a.endLineNumber,P=a.endColumn),new Al(g,t,p,P)}intersectRanges(a){return Al.intersectRanges(this,a)}static intersectRanges(a,d){let g=a.startLineNumber,t=a.startColumn,p=a.endLineNumber,P=a.endColumn,J=d.startLineNumber,h=d.startColumn,v=d.endLineNumber,I=d.endColumn;return gv?(p=v,P=I):p===v&&(P=Math.min(P,I)),g>p||g===p&&t>P?null:new Al(g,t,p,P)}equalsRange(a){return Al.equalsRange(this,a)}static equalsRange(a,d){return!!a&&!!d&&a.startLineNumber===d.startLineNumber&&a.startColumn===d.startColumn&&a.endLineNumber===d.endLineNumber&&a.endColumn===d.endColumn}getEndPosition(){return Al.getEndPosition(this)}static getEndPosition(a){return new wf(a.endLineNumber,a.endColumn)}getStartPosition(){return Al.getStartPosition(this)}static getStartPosition(a){return new wf(a.startLineNumber,a.startColumn)}toString(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"}setEndPosition(a,d){return new Al(this.startLineNumber,this.startColumn,a,d)}setStartPosition(a,d){return new Al(a,d,this.endLineNumber,this.endColumn)}collapseToStart(){return Al.collapseToStart(this)}static collapseToStart(a){return new Al(a.startLineNumber,a.startColumn,a.startLineNumber,a.startColumn)}static fromPositions(a,d=a){return new Al(a.lineNumber,a.column,d.lineNumber,d.column)}static lift(a){return a?new Al(a.startLineNumber,a.startColumn,a.endLineNumber,a.endColumn):null}static isIRange(a){return a&&typeof a.startLineNumber=="number"&&typeof a.startColumn=="number"&&typeof a.endLineNumber=="number"&&typeof a.endColumn=="number"}static areIntersectingOrTouching(a,d){return!(a.endLineNumbera.startLineNumber}}const ix=3;function y1(e,a,d,g){return new Im(e,a,d).ComputeDiff(g)}class E1{constructor(a){const d=[],g=[];for(let t=0,p=a.length;t0&&d.originalLength<20&&d.modifiedLength>0&&d.modifiedLength<20&&p()){const y=g.createCharSequence(a,d.originalStart,d.originalStart+d.originalLength-1),w=t.createCharSequence(a,d.modifiedStart,d.modifiedStart+d.modifiedLength-1);let D=y1(y,w,p,!0).changes;J&&(D=sx(D)),se=[];for(let U=0,B=D.length;U1&&D>1;){const U=se.charCodeAt(w-2),B=y.charCodeAt(D-2);if(U!==B)break;w--,D--}(w>1||D>1)&&this._pushTrimWhitespaceCharChange(t,p+1,1,w,P+1,1,D)}{let w=OE(se,1),D=OE(y,1);const U=se.length+1,B=y.length+1;for(;w!0;const a=Date.now();return()=>Date.now()-a255?255:e|0}function tg(e){return e<0?0:e>4294967295?4294967295:e|0}class cx{constructor(a,d){this._prefixSumIndexOfResultBrand=void 0,this.index=a,this.remainder=d}}class ux{constructor(a){this.values=a,this.prefixSum=new Uint32Array(a.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}insertValues(a,d){a=tg(a);const g=this.values,t=this.prefixSum,p=d.length;return p===0?!1:(this.values=new Uint32Array(g.length+p),this.values.set(g.subarray(0,a),0),this.values.set(g.subarray(a),a+p),this.values.set(d,a),a-1=0&&this.prefixSum.set(t.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}changeValue(a,d){return a=tg(a),d=tg(d),this.values[a]===d?!1:(this.values[a]=d,a-1=g.length)return!1;let p=g.length-a;return d>=p&&(d=p),d===0?!1:(this.values=new Uint32Array(g.length-d),this.values.set(g.subarray(0,a),0),this.values.set(g.subarray(a+d),a),this.prefixSum=new Uint32Array(this.values.length),a-1=0&&this.prefixSum.set(t.subarray(0,this.prefixSumValidIndex[0]+1)),!0)}getTotalSum(){return this.values.length===0?0:this._getPrefixSum(this.values.length-1)}getPrefixSum(a){return a<0?0:(a=tg(a),this._getPrefixSum(a))}_getPrefixSum(a){if(a<=this.prefixSumValidIndex[0])return this.prefixSum[a];let d=this.prefixSumValidIndex[0]+1;d===0&&(this.prefixSum[0]=this.values[0],d++),a>=this.values.length&&(a=this.values.length-1);for(let g=d;g<=a;g++)this.prefixSum[g]=this.prefixSum[g-1]+this.values[g];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],a),this.prefixSum[a]}getIndexOf(a){a=Math.floor(a),this.getTotalSum();let d=0,g=this.values.length-1,t=0,p=0,P=0;for(;d<=g;)if(t=d+(g-d)/2|0,p=this.prefixSum[t],P=p-this.values[t],a=p)d=t+1;else break;return new cx(t,a-P)}}class fx{constructor(a,d,g,t){this._uri=a,this._lines=d,this._eol=g,this._versionId=t,this._lineStarts=null,this._cachedTextValue=null}dispose(){this._lines.length=0}get version(){return this._versionId}getText(){return this._cachedTextValue===null&&(this._cachedTextValue=this._lines.join(this._eol)),this._cachedTextValue}onEvents(a){a.eol&&a.eol!==this._eol&&(this._eol=a.eol,this._lineStarts=null);const d=a.changes;for(const g of d)this._acceptDeleteRange(g.range),this._acceptInsertText(new wf(g.range.startLineNumber,g.range.startColumn),g.text);this._versionId=a.versionId,this._cachedTextValue=null}_ensureLineStarts(){if(!this._lineStarts){const a=this._eol.length,d=this._lines.length,g=new Uint32Array(d);for(let t=0;t/?";function px(e=""){let a="(-?\\d*\\.\\d\\w*)|([^";for(const d of dx)e.indexOf(d)>=0||(a+="\\"+d);return a+="\\s]+)",new RegExp(a,"g")}const mx=px();function _x(e){let a=mx;if(e&&e instanceof RegExp)if(e.global)a=e;else{let d="g";e.ignoreCase&&(d+="i"),e.multiline&&(d+="m"),e.unicode&&(d+="u"),a=new RegExp(e.source,d)}return a.lastIndex=0,a}const gx={maxLen:1e3,windowSize:15,timeBudget:150};function S1(e,a,d,g,t=gx){if(d.length>t.maxLen){let v=e-t.maxLen/2;return v<0?v=0:g+=v,d=d.substring(v,e+t.maxLen/2),S1(e,a,d,g,t)}const p=Date.now(),P=e-1-g;let J=-1,h=null;for(let v=1;!(Date.now()-p>=t.timeBudget);v++){const I=P-t.windowSize*v;a.lastIndex=Math.max(0,I);const X=vx(a,d,P,J);if(!X&&h||(h=X,I<=0))break;J=I}if(h){let v={word:h[0],startColumn:g+1+h.index,endColumn:g+1+h.index+h[0].length};return a.lastIndex=0,v}return null}function vx(e,a,d,g){let t;for(;t=e.exec(a);){const p=t.index||0;if(p<=d&&e.lastIndex>=d)return t;if(g>0&&p>g)return null}return null}class PE{constructor(a){let d=T1(a);this._defaultValue=d,this._asciiMap=PE._createAsciiMap(d),this._map=new Map}static _createAsciiMap(a){let d=new Uint8Array(256);for(let g=0;g<256;g++)d[g]=a;return d}set(a,d){let g=T1(d);a>=0&&a<256?this._asciiMap[a]=g:this._map.set(a,g)}get(a){return a>=0&&a<256?this._asciiMap[a]:this._map.get(a)||this._defaultValue}}class hx{constructor(a,d,g){const t=new Uint8Array(a*d);for(let p=0,P=a*d;pd&&(d=h),J>g&&(g=J),v>g&&(g=v)}d++,g++;let t=new hx(g,d,0);for(let p=0,P=a.length;p=this._maxCharCode?0:this._states.get(a,d)}}let ME=null;function Ex(){return ME===null&&(ME=new yx([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),ME}let ov=null;function bx(){if(ov===null){ov=new PE(0);const e=` <>'"\u3001\u3002\uFF61\uFF64\uFF0C\uFF0E\uFF1A\uFF1B\u2018\u3008\u300C\u300E\u3014\uFF08\uFF3B\uFF5B\uFF62\uFF63\uFF5D\uFF3D\uFF09\u3015\u300F\u300D\u3009\u2019\uFF40\uFF5E\u2026`;for(let d=0;dt);if(t>0){const J=d.charCodeAt(t-1),h=d.charCodeAt(P);(J===40&&h===41||J===91&&h===93||J===123&&h===125)&&P--}return{range:{startLineNumber:g,startColumn:t+1,endLineNumber:g,endColumn:P+2},url:d.substring(t,P+1)}}static computeLinks(a,d=Ex()){const g=bx();let t=[];for(let p=1,P=a.getLineCount();p<=P;p++){const J=a.getLineContent(p),h=J.length;let v=0,I=0,X=0,se=1,y=!1,w=!1,D=!1,U=!1;for(;v=0?(t+=g?1:-1,t<0?t=a.length-1:t%=a.length,a[t]):null}}wE.INSTANCE=new wE;const D1=Object.freeze(function(e,a){const d=setTimeout(e.bind(a),0);return{dispose(){clearTimeout(d)}}});var Lh;(function(e){function a(d){return d===e.None||d===e.Cancelled||d instanceof Ah?!0:!d||typeof d!="object"?!1:typeof d.isCancellationRequested=="boolean"&&typeof d.onCancellationRequested=="function"}e.isCancellationToken=a,e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:AE.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:D1})})(Lh||(Lh={}));class Ah{constructor(){this._isCancelled=!1,this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?D1:(this._emitter||(this._emitter=new Cm),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}}class Sx{constructor(a){this._token=void 0,this._parentListener=void 0,this._parentListener=a&&a.onCancellationRequested(this.cancel,this)}get token(){return this._token||(this._token=new Ah),this._token}cancel(){this._token?this._token instanceof Ah&&this._token.cancel():this._token=Lh.Cancelled}dispose(a=!1){a&&this.cancel(),this._parentListener&&this._parentListener.dispose(),this._token?this._token instanceof Ah&&this._token.dispose():this._token=Lh.None}}class FE{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(a,d){this._keyCodeToStr[a]=d,this._strToKeyCode[d.toLowerCase()]=a}keyCodeToStr(a){return this._keyCodeToStr[a]}strToKeyCode(a){return this._strToKeyCode[a.toLowerCase()]||0}}const Ch=new FE,GE=new FE,BE=new FE,Dx=new Array(230),Lx={},Ax=[],Cx=Object.create(null),xx=Object.create(null),L1=[],UE=[];for(let e=0;e<=193;e++)L1[e]=-1;for(let e=0;e<=126;e++)UE[e]=-1;(function(){const e="",a=[[0,1,0,"None",0,"unknown",0,"VK_UNKNOWN",e,e],[0,1,1,"Hyper",0,e,0,e,e,e],[0,1,2,"Super",0,e,0,e,e,e],[0,1,3,"Fn",0,e,0,e,e,e],[0,1,4,"FnLock",0,e,0,e,e,e],[0,1,5,"Suspend",0,e,0,e,e,e],[0,1,6,"Resume",0,e,0,e,e,e],[0,1,7,"Turbo",0,e,0,e,e,e],[0,1,8,"Sleep",0,e,0,"VK_SLEEP",e,e],[0,1,9,"WakeUp",0,e,0,e,e,e],[31,0,10,"KeyA",31,"A",65,"VK_A",e,e],[32,0,11,"KeyB",32,"B",66,"VK_B",e,e],[33,0,12,"KeyC",33,"C",67,"VK_C",e,e],[34,0,13,"KeyD",34,"D",68,"VK_D",e,e],[35,0,14,"KeyE",35,"E",69,"VK_E",e,e],[36,0,15,"KeyF",36,"F",70,"VK_F",e,e],[37,0,16,"KeyG",37,"G",71,"VK_G",e,e],[38,0,17,"KeyH",38,"H",72,"VK_H",e,e],[39,0,18,"KeyI",39,"I",73,"VK_I",e,e],[40,0,19,"KeyJ",40,"J",74,"VK_J",e,e],[41,0,20,"KeyK",41,"K",75,"VK_K",e,e],[42,0,21,"KeyL",42,"L",76,"VK_L",e,e],[43,0,22,"KeyM",43,"M",77,"VK_M",e,e],[44,0,23,"KeyN",44,"N",78,"VK_N",e,e],[45,0,24,"KeyO",45,"O",79,"VK_O",e,e],[46,0,25,"KeyP",46,"P",80,"VK_P",e,e],[47,0,26,"KeyQ",47,"Q",81,"VK_Q",e,e],[48,0,27,"KeyR",48,"R",82,"VK_R",e,e],[49,0,28,"KeyS",49,"S",83,"VK_S",e,e],[50,0,29,"KeyT",50,"T",84,"VK_T",e,e],[51,0,30,"KeyU",51,"U",85,"VK_U",e,e],[52,0,31,"KeyV",52,"V",86,"VK_V",e,e],[53,0,32,"KeyW",53,"W",87,"VK_W",e,e],[54,0,33,"KeyX",54,"X",88,"VK_X",e,e],[55,0,34,"KeyY",55,"Y",89,"VK_Y",e,e],[56,0,35,"KeyZ",56,"Z",90,"VK_Z",e,e],[22,0,36,"Digit1",22,"1",49,"VK_1",e,e],[23,0,37,"Digit2",23,"2",50,"VK_2",e,e],[24,0,38,"Digit3",24,"3",51,"VK_3",e,e],[25,0,39,"Digit4",25,"4",52,"VK_4",e,e],[26,0,40,"Digit5",26,"5",53,"VK_5",e,e],[27,0,41,"Digit6",27,"6",54,"VK_6",e,e],[28,0,42,"Digit7",28,"7",55,"VK_7",e,e],[29,0,43,"Digit8",29,"8",56,"VK_8",e,e],[30,0,44,"Digit9",30,"9",57,"VK_9",e,e],[21,0,45,"Digit0",21,"0",48,"VK_0",e,e],[3,1,46,"Enter",3,"Enter",13,"VK_RETURN",e,e],[9,1,47,"Escape",9,"Escape",27,"VK_ESCAPE",e,e],[1,1,48,"Backspace",1,"Backspace",8,"VK_BACK",e,e],[2,1,49,"Tab",2,"Tab",9,"VK_TAB",e,e],[10,1,50,"Space",10,"Space",32,"VK_SPACE",e,e],[83,0,51,"Minus",83,"-",189,"VK_OEM_MINUS","-","OEM_MINUS"],[81,0,52,"Equal",81,"=",187,"VK_OEM_PLUS","=","OEM_PLUS"],[87,0,53,"BracketLeft",87,"[",219,"VK_OEM_4","[","OEM_4"],[89,0,54,"BracketRight",89,"]",221,"VK_OEM_6","]","OEM_6"],[88,0,55,"Backslash",88,"\\",220,"VK_OEM_5","\\","OEM_5"],[0,0,56,"IntlHash",0,e,0,e,e,e],[80,0,57,"Semicolon",80,";",186,"VK_OEM_1",";","OEM_1"],[90,0,58,"Quote",90,"'",222,"VK_OEM_7","'","OEM_7"],[86,0,59,"Backquote",86,"`",192,"VK_OEM_3","`","OEM_3"],[82,0,60,"Comma",82,",",188,"VK_OEM_COMMA",",","OEM_COMMA"],[84,0,61,"Period",84,".",190,"VK_OEM_PERIOD",".","OEM_PERIOD"],[85,0,62,"Slash",85,"/",191,"VK_OEM_2","/","OEM_2"],[8,1,63,"CapsLock",8,"CapsLock",20,"VK_CAPITAL",e,e],[59,1,64,"F1",59,"F1",112,"VK_F1",e,e],[60,1,65,"F2",60,"F2",113,"VK_F2",e,e],[61,1,66,"F3",61,"F3",114,"VK_F3",e,e],[62,1,67,"F4",62,"F4",115,"VK_F4",e,e],[63,1,68,"F5",63,"F5",116,"VK_F5",e,e],[64,1,69,"F6",64,"F6",117,"VK_F6",e,e],[65,1,70,"F7",65,"F7",118,"VK_F7",e,e],[66,1,71,"F8",66,"F8",119,"VK_F8",e,e],[67,1,72,"F9",67,"F9",120,"VK_F9",e,e],[68,1,73,"F10",68,"F10",121,"VK_F10",e,e],[69,1,74,"F11",69,"F11",122,"VK_F11",e,e],[70,1,75,"F12",70,"F12",123,"VK_F12",e,e],[0,1,76,"PrintScreen",0,e,0,e,e,e],[79,1,77,"ScrollLock",79,"ScrollLock",145,"VK_SCROLL",e,e],[7,1,78,"Pause",7,"PauseBreak",19,"VK_PAUSE",e,e],[19,1,79,"Insert",19,"Insert",45,"VK_INSERT",e,e],[14,1,80,"Home",14,"Home",36,"VK_HOME",e,e],[11,1,81,"PageUp",11,"PageUp",33,"VK_PRIOR",e,e],[20,1,82,"Delete",20,"Delete",46,"VK_DELETE",e,e],[13,1,83,"End",13,"End",35,"VK_END",e,e],[12,1,84,"PageDown",12,"PageDown",34,"VK_NEXT",e,e],[17,1,85,"ArrowRight",17,"RightArrow",39,"VK_RIGHT","Right",e],[15,1,86,"ArrowLeft",15,"LeftArrow",37,"VK_LEFT","Left",e],[18,1,87,"ArrowDown",18,"DownArrow",40,"VK_DOWN","Down",e],[16,1,88,"ArrowUp",16,"UpArrow",38,"VK_UP","Up",e],[78,1,89,"NumLock",78,"NumLock",144,"VK_NUMLOCK",e,e],[108,1,90,"NumpadDivide",108,"NumPad_Divide",111,"VK_DIVIDE",e,e],[103,1,91,"NumpadMultiply",103,"NumPad_Multiply",106,"VK_MULTIPLY",e,e],[106,1,92,"NumpadSubtract",106,"NumPad_Subtract",109,"VK_SUBTRACT",e,e],[104,1,93,"NumpadAdd",104,"NumPad_Add",107,"VK_ADD",e,e],[3,1,94,"NumpadEnter",3,e,0,e,e,e],[94,1,95,"Numpad1",94,"NumPad1",97,"VK_NUMPAD1",e,e],[95,1,96,"Numpad2",95,"NumPad2",98,"VK_NUMPAD2",e,e],[96,1,97,"Numpad3",96,"NumPad3",99,"VK_NUMPAD3",e,e],[97,1,98,"Numpad4",97,"NumPad4",100,"VK_NUMPAD4",e,e],[98,1,99,"Numpad5",98,"NumPad5",101,"VK_NUMPAD5",e,e],[99,1,100,"Numpad6",99,"NumPad6",102,"VK_NUMPAD6",e,e],[100,1,101,"Numpad7",100,"NumPad7",103,"VK_NUMPAD7",e,e],[101,1,102,"Numpad8",101,"NumPad8",104,"VK_NUMPAD8",e,e],[102,1,103,"Numpad9",102,"NumPad9",105,"VK_NUMPAD9",e,e],[93,1,104,"Numpad0",93,"NumPad0",96,"VK_NUMPAD0",e,e],[107,1,105,"NumpadDecimal",107,"NumPad_Decimal",110,"VK_DECIMAL",e,e],[92,0,106,"IntlBackslash",92,"OEM_102",226,"VK_OEM_102",e,e],[58,1,107,"ContextMenu",58,"ContextMenu",93,e,e,e],[0,1,108,"Power",0,e,0,e,e,e],[0,1,109,"NumpadEqual",0,e,0,e,e,e],[71,1,110,"F13",71,"F13",124,"VK_F13",e,e],[72,1,111,"F14",72,"F14",125,"VK_F14",e,e],[73,1,112,"F15",73,"F15",126,"VK_F15",e,e],[74,1,113,"F16",74,"F16",127,"VK_F16",e,e],[75,1,114,"F17",75,"F17",128,"VK_F17",e,e],[76,1,115,"F18",76,"F18",129,"VK_F18",e,e],[77,1,116,"F19",77,"F19",130,"VK_F19",e,e],[0,1,117,"F20",0,e,0,"VK_F20",e,e],[0,1,118,"F21",0,e,0,"VK_F21",e,e],[0,1,119,"F22",0,e,0,"VK_F22",e,e],[0,1,120,"F23",0,e,0,"VK_F23",e,e],[0,1,121,"F24",0,e,0,"VK_F24",e,e],[0,1,122,"Open",0,e,0,e,e,e],[0,1,123,"Help",0,e,0,e,e,e],[0,1,124,"Select",0,e,0,e,e,e],[0,1,125,"Again",0,e,0,e,e,e],[0,1,126,"Undo",0,e,0,e,e,e],[0,1,127,"Cut",0,e,0,e,e,e],[0,1,128,"Copy",0,e,0,e,e,e],[0,1,129,"Paste",0,e,0,e,e,e],[0,1,130,"Find",0,e,0,e,e,e],[0,1,131,"AudioVolumeMute",112,"AudioVolumeMute",173,"VK_VOLUME_MUTE",e,e],[0,1,132,"AudioVolumeUp",113,"AudioVolumeUp",175,"VK_VOLUME_UP",e,e],[0,1,133,"AudioVolumeDown",114,"AudioVolumeDown",174,"VK_VOLUME_DOWN",e,e],[105,1,134,"NumpadComma",105,"NumPad_Separator",108,"VK_SEPARATOR",e,e],[110,0,135,"IntlRo",110,"ABNT_C1",193,"VK_ABNT_C1",e,e],[0,1,136,"KanaMode",0,e,0,e,e,e],[0,0,137,"IntlYen",0,e,0,e,e,e],[0,1,138,"Convert",0,e,0,e,e,e],[0,1,139,"NonConvert",0,e,0,e,e,e],[0,1,140,"Lang1",0,e,0,e,e,e],[0,1,141,"Lang2",0,e,0,e,e,e],[0,1,142,"Lang3",0,e,0,e,e,e],[0,1,143,"Lang4",0,e,0,e,e,e],[0,1,144,"Lang5",0,e,0,e,e,e],[0,1,145,"Abort",0,e,0,e,e,e],[0,1,146,"Props",0,e,0,e,e,e],[0,1,147,"NumpadParenLeft",0,e,0,e,e,e],[0,1,148,"NumpadParenRight",0,e,0,e,e,e],[0,1,149,"NumpadBackspace",0,e,0,e,e,e],[0,1,150,"NumpadMemoryStore",0,e,0,e,e,e],[0,1,151,"NumpadMemoryRecall",0,e,0,e,e,e],[0,1,152,"NumpadMemoryClear",0,e,0,e,e,e],[0,1,153,"NumpadMemoryAdd",0,e,0,e,e,e],[0,1,154,"NumpadMemorySubtract",0,e,0,e,e,e],[0,1,155,"NumpadClear",0,e,0,e,e,e],[0,1,156,"NumpadClearEntry",0,e,0,e,e,e],[5,1,0,e,5,"Ctrl",17,"VK_CONTROL",e,e],[4,1,0,e,4,"Shift",16,"VK_SHIFT",e,e],[6,1,0,e,6,"Alt",18,"VK_MENU",e,e],[57,1,0,e,57,"Meta",0,"VK_COMMAND",e,e],[5,1,157,"ControlLeft",5,e,0,"VK_LCONTROL",e,e],[4,1,158,"ShiftLeft",4,e,0,"VK_LSHIFT",e,e],[6,1,159,"AltLeft",6,e,0,"VK_LMENU",e,e],[57,1,160,"MetaLeft",57,e,0,"VK_LWIN",e,e],[5,1,161,"ControlRight",5,e,0,"VK_RCONTROL",e,e],[4,1,162,"ShiftRight",4,e,0,"VK_RSHIFT",e,e],[6,1,163,"AltRight",6,e,0,"VK_RMENU",e,e],[57,1,164,"MetaRight",57,e,0,"VK_RWIN",e,e],[0,1,165,"BrightnessUp",0,e,0,e,e,e],[0,1,166,"BrightnessDown",0,e,0,e,e,e],[0,1,167,"MediaPlay",0,e,0,e,e,e],[0,1,168,"MediaRecord",0,e,0,e,e,e],[0,1,169,"MediaFastForward",0,e,0,e,e,e],[0,1,170,"MediaRewind",0,e,0,e,e,e],[114,1,171,"MediaTrackNext",119,"MediaTrackNext",176,"VK_MEDIA_NEXT_TRACK",e,e],[115,1,172,"MediaTrackPrevious",120,"MediaTrackPrevious",177,"VK_MEDIA_PREV_TRACK",e,e],[116,1,173,"MediaStop",121,"MediaStop",178,"VK_MEDIA_STOP",e,e],[0,1,174,"Eject",0,e,0,e,e,e],[117,1,175,"MediaPlayPause",122,"MediaPlayPause",179,"VK_MEDIA_PLAY_PAUSE",e,e],[0,1,176,"MediaSelect",123,"LaunchMediaPlayer",181,"VK_MEDIA_LAUNCH_MEDIA_SELECT",e,e],[0,1,177,"LaunchMail",124,"LaunchMail",180,"VK_MEDIA_LAUNCH_MAIL",e,e],[0,1,178,"LaunchApp2",125,"LaunchApp2",183,"VK_MEDIA_LAUNCH_APP2",e,e],[0,1,179,"LaunchApp1",0,e,0,"VK_MEDIA_LAUNCH_APP1",e,e],[0,1,180,"SelectTask",0,e,0,e,e,e],[0,1,181,"LaunchScreenSaver",0,e,0,e,e,e],[0,1,182,"BrowserSearch",115,"BrowserSearch",170,"VK_BROWSER_SEARCH",e,e],[0,1,183,"BrowserHome",116,"BrowserHome",172,"VK_BROWSER_HOME",e,e],[112,1,184,"BrowserBack",117,"BrowserBack",166,"VK_BROWSER_BACK",e,e],[113,1,185,"BrowserForward",118,"BrowserForward",167,"VK_BROWSER_FORWARD",e,e],[0,1,186,"BrowserStop",0,e,0,"VK_BROWSER_STOP",e,e],[0,1,187,"BrowserRefresh",0,e,0,"VK_BROWSER_REFRESH",e,e],[0,1,188,"BrowserFavorites",0,e,0,"VK_BROWSER_FAVORITES",e,e],[0,1,189,"ZoomToggle",0,e,0,e,e,e],[0,1,190,"MailReply",0,e,0,e,e,e],[0,1,191,"MailForward",0,e,0,e,e,e],[0,1,192,"MailSend",0,e,0,e,e,e],[109,1,0,e,109,"KeyInComposition",229,e,e,e],[111,1,0,e,111,"ABNT_C2",194,"VK_ABNT_C2",e,e],[91,1,0,e,91,"OEM_8",223,"VK_OEM_8",e,e],[0,1,0,e,0,e,0,"VK_CLEAR",e,e],[0,1,0,e,0,e,0,"VK_KANA",e,e],[0,1,0,e,0,e,0,"VK_HANGUL",e,e],[0,1,0,e,0,e,0,"VK_JUNJA",e,e],[0,1,0,e,0,e,0,"VK_FINAL",e,e],[0,1,0,e,0,e,0,"VK_HANJA",e,e],[0,1,0,e,0,e,0,"VK_KANJI",e,e],[0,1,0,e,0,e,0,"VK_CONVERT",e,e],[0,1,0,e,0,e,0,"VK_NONCONVERT",e,e],[0,1,0,e,0,e,0,"VK_ACCEPT",e,e],[0,1,0,e,0,e,0,"VK_MODECHANGE",e,e],[0,1,0,e,0,e,0,"VK_SELECT",e,e],[0,1,0,e,0,e,0,"VK_PRINT",e,e],[0,1,0,e,0,e,0,"VK_EXECUTE",e,e],[0,1,0,e,0,e,0,"VK_SNAPSHOT",e,e],[0,1,0,e,0,e,0,"VK_HELP",e,e],[0,1,0,e,0,e,0,"VK_APPS",e,e],[0,1,0,e,0,e,0,"VK_PROCESSKEY",e,e],[0,1,0,e,0,e,0,"VK_PACKET",e,e],[0,1,0,e,0,e,0,"VK_DBE_SBCSCHAR",e,e],[0,1,0,e,0,e,0,"VK_DBE_DBCSCHAR",e,e],[0,1,0,e,0,e,0,"VK_ATTN",e,e],[0,1,0,e,0,e,0,"VK_CRSEL",e,e],[0,1,0,e,0,e,0,"VK_EXSEL",e,e],[0,1,0,e,0,e,0,"VK_EREOF",e,e],[0,1,0,e,0,e,0,"VK_PLAY",e,e],[0,1,0,e,0,e,0,"VK_ZOOM",e,e],[0,1,0,e,0,e,0,"VK_NONAME",e,e],[0,1,0,e,0,e,0,"VK_PA1",e,e],[0,1,0,e,0,e,0,"VK_OEM_CLEAR",e,e]];let d=[],g=[];for(const t of a){const[p,P,J,h,v,I,X,se,y,w]=t;if(g[J]||(g[J]=!0,Ax[J]=h,Cx[h]=J,xx[h.toLowerCase()]=J,P&&(L1[J]=v,v!==0&&v!==3&&v!==5&&v!==4&&v!==6&&v!==57&&(UE[v]=J))),!d[v]){if(d[v]=!0,!I)throw new Error(`String representation missing for key code ${v} around scan code ${h}`);Ch.define(v,I),GE.define(v,y||I),BE.define(v,w||y||I)}X&&(Dx[X]=v),se&&(Lx[se]=v)}UE[3]=46})();var A1;(function(e){function a(J){return Ch.keyCodeToStr(J)}e.toString=a;function d(J){return Ch.strToKeyCode(J)}e.fromString=d;function g(J){return GE.keyCodeToStr(J)}e.toUserSettingsUS=g;function t(J){return BE.keyCodeToStr(J)}e.toUserSettingsGeneral=t;function p(J){return GE.strToKeyCode(J)||BE.strToKeyCode(J)}e.fromUserSettings=p;function P(J){if(J>=93&&J<=108)return null;switch(J){case 16:return"Up";case 18:return"Down";case 15:return"Left";case 17:return"Right"}return Ch.keyCodeToStr(J)}e.toElectronAccelerator=P})(A1||(A1={}));function Ix(e,a){const d=(a&65535)<<16>>>0;return(e|d)>>>0}class Hd extends Al{constructor(a,d,g,t){super(a,d,g,t);this.selectionStartLineNumber=a,this.selectionStartColumn=d,this.positionLineNumber=g,this.positionColumn=t}toString(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"}equalsSelection(a){return Hd.selectionsEqual(this,a)}static selectionsEqual(a,d){return a.selectionStartLineNumber===d.selectionStartLineNumber&&a.selectionStartColumn===d.selectionStartColumn&&a.positionLineNumber===d.positionLineNumber&&a.positionColumn===d.positionColumn}getDirection(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?0:1}setEndPosition(a,d){return this.getDirection()===0?new Hd(this.startLineNumber,this.startColumn,a,d):new Hd(a,d,this.startLineNumber,this.startColumn)}getPosition(){return new wf(this.positionLineNumber,this.positionColumn)}setStartPosition(a,d){return this.getDirection()===0?new Hd(a,d,this.endLineNumber,this.endColumn):new Hd(this.endLineNumber,this.endColumn,a,d)}static fromPositions(a,d=a){return new Hd(a.lineNumber,a.column,d.lineNumber,d.column)}static liftSelection(a){return new Hd(a.selectionStartLineNumber,a.selectionStartColumn,a.positionLineNumber,a.positionColumn)}static selectionsArrEqual(a,d){if(a&&!d||!a&&d)return!1;if(!a&&!d)return!0;if(a.length!==d.length)return!1;for(let g=0,t=a.length;gthis._lines.length)d=this._lines.length,g=this._lines[d-1].length+1,t=!0;else{let p=this._lines[d-1].length+1;g<1?(g=1,t=!0):g>p&&(g=p,t=!0)}return t?{lineNumber:d,column:g}:a}}class ig{constructor(a,d){this._host=a,this._models=Object.create(null),this._foreignModuleFactory=d,this._foreignModule=null}dispose(){this._models=Object.create(null)}_getModel(a){return this._models[a]}_getModels(){let a=[];return Object.keys(this._models).forEach(d=>a.push(this._models[d])),a}acceptNewModel(a){this._models[a.url]=new Rx(u_.parse(a.url),a.lines,a.EOL,a.versionId)}acceptModelChanged(a,d){if(!this._models[a])return;this._models[a].onEvents(d)}acceptRemovedModel(a){!this._models[a]||delete this._models[a]}computeDiff(a,d,g,t){return ag(this,void 0,void 0,function*(){const p=this._getModel(a),P=this._getModel(d);if(!p||!P)return null;const J=p.getLinesContent(),h=P.getLinesContent(),I=new lx(J,h,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:g,shouldMakePrettyDiff:!0,maxComputationTime:t}).computeDiff(),X=I.changes.length>0?!1:this._modelsAreIdentical(p,P);return{quitEarly:I.quitEarly,identical:X,changes:I.changes}})}_modelsAreIdentical(a,d){const g=a.getLineCount(),t=d.getLineCount();if(g!==t)return!1;for(let p=1;p<=g;p++){const P=a.getLineContent(p),J=d.getLineContent(p);if(P!==J)return!1}return!0}computeMoreMinimalEdits(a,d){return ag(this,void 0,void 0,function*(){const g=this._getModel(a);if(!g)return d;const t=[];let p;d=d.slice(0).sort((P,J)=>{if(P.range&&J.range)return Al.compareRangesUsingStarts(P.range,J.range);let h=P.range?0:1,v=J.range?0:1;return h-v});for(let{range:P,text:J,eol:h}of d){if(typeof h=="number"&&(p=h),Al.isEmpty(P)&&!J)continue;const v=g.getValueInRange(P);if(J=J.replace(/\r\n|\n|\r/g,g.eol),v===J)continue;if(Math.max(J.length,v.length)>ig._diffLimit){t.push({range:P,text:J});continue}const I=JC(v,J,!1),X=g.offsetAt(Al.lift(P).getStartPosition());for(const se of I){const y=g.positionAt(X+se.originalStart),w=g.positionAt(X+se.originalStart+se.originalLength),D={text:J.substr(se.modifiedStart,se.modifiedLength),range:{startLineNumber:y.lineNumber,startColumn:y.column,endLineNumber:w.lineNumber,endColumn:w.column}};g.getValueInRange(D.range)!==D.text&&t.push(D)}}return typeof p=="number"&&t.push({eol:p,text:"",range:{startLineNumber:0,startColumn:0,endLineNumber:0,endColumn:0}}),t})}computeLinks(a){return ag(this,void 0,void 0,function*(){let d=this._getModel(a);return d?Tx(d):null})}textualSuggest(a,d,g,t){return ag(this,void 0,void 0,function*(){const p=new Eh(!0),P=new RegExp(g,t),J=new Set;e:for(let h of a){const v=this._getModel(h);if(!!v){for(let I of v.words(P))if(!(I===d||!isNaN(Number(I)))&&(J.add(I),J.size>ig._suggestionsLimit))break e}}return{words:Array.from(J),duration:p.elapsed()}})}computeWordRanges(a,d,g,t){return ag(this,void 0,void 0,function*(){let p=this._getModel(a);if(!p)return Object.create(null);const P=new RegExp(g,t),J=Object.create(null);for(let h=d.startLineNumber;hthis._host.fhr(J,h)),getMirrorModels:()=>this._getModels()};return this._foreignModuleFactory?(this._foreignModule=this._foreignModuleFactory(P,d),Promise.resolve(CE(this._foreignModule))):Promise.reject(new Error("Unexpected usage"))}fmr(a,d){if(!this._foreignModule||typeof this._foreignModule[a]!="function")return Promise.reject(new Error("Missing requestHandler or method: "+a));try{return Promise.resolve(this._foreignModule[a].apply(this._foreignModule,d))}catch(g){return Promise.reject(g)}}}ig._diffLimit=1e5,ig._suggestionsLimit=1e4,typeof importScripts=="function"&&(Dc.monaco=kx());let JE=!1;function a0(e){if(JE)return;JE=!0;const a=new jC(d=>{self.postMessage(d)},d=>new ig(d,e));self.onmessage=d=>{a.onmessage(d.data)}}self.onmessage=e=>{JE||a0(null)};var Mr=function(e,a,d){if(d||arguments.length===2)for(var g=0,t=a.length,p;g0&&p[p.length-1])&&(v[0]===6||v[0]===2)){d=0;continue}if(v[0]===3&&(!p||v[1]>p[0]&&v[1]=0;Fe--){var Ze=Ae(Q[Fe],Fe);if(Ze)return Ze}}e.forEachRight=J;function h(Q,Ae){if(Q!==void 0)for(var Fe=0;Fe=0;Fe--){var Ze=Q[Fe];if(Ae(Ze,Fe))return Ze}}e.findLast=B;function R(Q,Ae,Fe){for(var Ze=Fe||0;Ze=0;Ze--)if(Ae(Q[Ze],Ze))return Ze;return-1}e.findLastIndex=O;function k(Q,Ae){for(var Fe=0;Fe0;return!1}e.some=q;function ue(Q,Ae,Fe){for(var Ze,Gn=0;Gn0&&e.Debug.assertGreaterThanOrEqual(Fe(Ae[Yn],Ae[Yn-1]),0);n:for(var _r=Gn;Gn_r&&e.Debug.assertGreaterThanOrEqual(Fe(Q[Gn],Q[Gn-1]),0),Fe(Ae[Yn],Q[Gn])){case-1:Ze.push(Ae[Yn]);continue e;case 0:continue e;case 1:continue n}}return Ze}e.relativeComplement=Sn;function Me(Q,Ae){for(var Fe=0,Ze=0,Gn=Q;Ze>1),Et=Fe(Q[kr],kr);switch(Ze(Et,Ae)){case-1:Yn=kr+1;break;case 0:return kr;case 1:_r=kr-1;break}}return~Yn}e.binarySearchKey=he;function ln(Q,Ae,Fe,Ze,Gn){if(Q&&Q.length>0){var Yn=Q.length;if(Yn>0){var _r=Ze===void 0||Ze<0?0:Ze,kr=Gn===void 0||_r+Gn>Yn-1?Yn-1:_r+Gn,Et=void 0;for(arguments.length<=2?(Et=Q[_r],_r++):Et=Fe;_r<=kr;)Et=Ae(Et,Q[_r],_r),_r++;return Et}}return Fe}e.reduceLeft=ln;var sn=Object.prototype.hasOwnProperty;function An(Q,Ae){return sn.call(Q,Ae)}e.hasProperty=An;function Un(Q,Ae){return sn.call(Q,Ae)?Q[Ae]:void 0}e.getProperty=Un;function pr(Q){var Ae=[];for(var Fe in Q)sn.call(Q,Fe)&&Ae.push(Fe);return Ae}e.getOwnKeys=pr;function Cr(Q){var Ae=[];do for(var Fe=Object.getOwnPropertyNames(Q),Ze=0,Gn=Fe;ZeAe?1:0)}e.compareStringsCaseInsensitive=Bt;function Tr(Q,Ae){return yr(Q,Ae)}e.compareStringsCaseSensitive=Tr;function vr(Q){return Q?Bt:Tr}e.getStringComparer=vr;var Br=function(){var Q,Ae,Fe=kr();return Et;function Ze(Vt,Ea,da){if(Vt===Ea)return 0;if(Vt===void 0)return-1;if(Ea===void 0)return 1;var ai=da(Vt,Ea);return ai<0?-1:ai>0?1:0}function Gn(Vt){var Ea=new Intl.Collator(Vt,{usage:"sort",sensitivity:"variant"}).compare;return function(da,ai){return Ze(da,ai,Ea)}}function Yn(Vt){if(Vt!==void 0)return _r();return function(da,ai){return Ze(da,ai,Ea)};function Ea(da,ai){return da.localeCompare(ai)}}function _r(){return function(da,ai){return Ze(da,ai,Vt)};function Vt(da,ai){return Ea(da.toUpperCase(),ai.toUpperCase())||Ea(da,ai)}function Ea(da,ai){return daai?1:0}}function kr(){return typeof Intl=="object"&&typeof Intl.Collator=="function"?Gn:typeof String.prototype.localeCompare=="function"&&typeof String.prototype.toLocaleUpperCase=="function"&&"a".localeCompare("B")<0?Yn:_r}function Et(Vt){return Vt===void 0?Q||(Q=Fe(Vt)):Vt==="en-US"?Ae||(Ae=Fe(Vt)):Fe(Vt)}}(),Wr,tt;function er(){return tt}e.getUILocale=er;function Zt(Q){tt!==Q&&(tt=Q,Wr=void 0)}e.setUILocale=Zt;function Ra(Q,Ae){var Fe=Wr||(Wr=Br(tt));return Fe(Q,Ae)}e.compareStringsCaseSensitiveUI=Ra;function Va(Q,Ae,Fe,Ze){return Q===Ae?0:Q===void 0?-1:Ae===void 0?1:Ze(Q[Fe],Ae[Fe])}e.compareProperties=Va;function bi(Q,Ae){return Kr(Q?1:0,Ae?1:0)}e.compareBooleans=bi;function Fa(Q,Ae,Fe){for(var Ze=Math.min(2,Math.floor(Q.length*.34)),Gn=Math.floor(Q.length*.4)+1,Yn,_r=0,kr=Ae;_rFe?_r-Fe:1),Vt=Math.floor(Ae.length>Fe+_r?Fe+_r:Ae.length);Gn[0]=_r;for(var Ea=_r,da=1;daFe)return;var wi=Ze;Ze=Gn,Gn=wi}var Gi=Ze[Ae.length];return Gi>Fe?void 0:Gi}function Di(Q,Ae){var Fe=Q.length-Ae.length;return Fe>=0&&Q.indexOf(Ae,Fe)===Fe}e.endsWith=Di;function Vi(Q,Ae){return Di(Q,Ae)?Q.slice(0,Q.length-Ae.length):Q}e.removeSuffix=Vi;function ni(Q,Ae){return Di(Q,Ae)?Q.slice(0,Q.length-Ae.length):void 0}e.tryRemoveSuffix=ni;function Ti(Q,Ae){return Q.indexOf(Ae)!==-1}e.stringContains=Ti;function Ci(Q){for(var Ae=Q.length,Fe=Ae-1;Fe>0;Fe--){var Ze=Q.charCodeAt(Fe);if(Ze>=48&&Ze<=57)do--Fe,Ze=Q.charCodeAt(Fe);while(Fe>0&&Ze>=48&&Ze<=57);else if(Fe>4&&(Ze===110||Ze===78)){if(--Fe,Ze=Q.charCodeAt(Fe),Ze!==105&&Ze!==73||(--Fe,Ze=Q.charCodeAt(Fe),Ze!==109&&Ze!==77))break;--Fe,Ze=Q.charCodeAt(Fe)}else break;if(Ze!==45&&Ze!==46)break;Ae=Fe}return Ae===Q.length?Q:Q.slice(0,Ae)}e.removeMinAndVersionNumbers=Ci;function Zi(Q,Ae){for(var Fe=0;FeGn&&(Gn=Et.prefix.length,Ze=kr)}return Ze}e.findBestPatternMatch=za;function fi(Q,Ae){return Q.lastIndexOf(Ae,0)===0}e.startsWith=fi;function Wi(Q,Ae){return fi(Q,Ae)?Q.substr(Ae.length):Q}e.removePrefix=Wi;function _o(Q,Ae,Fe){return Fe===void 0&&(Fe=dt),fi(Fe(Q),Fe(Ae))?Q.substring(Ae.length):void 0}e.tryRemovePrefix=_o;function No(Q,Ae){var Fe=Q.prefix,Ze=Q.suffix;return Ae.length>=Fe.length+Ze.length&&fi(Ae,Fe)&&Di(Ae,Ze)}function Mo(Q,Ae){return function(Fe){return Q(Fe)&&Ae(Fe)}}e.and=Mo;function yo(){for(var Q=[],Ae=0;Ae=0&&e.isWhiteSpaceLike(Q.charCodeAt(Ae));)Ae--;return Q.slice(0,Ae+1)}})(un||(un={}));var un;(function(e){var a;(function(d){d[d.Off=0]="Off",d[d.Error=1]="Error",d[d.Warning=2]="Warning",d[d.Info=3]="Info",d[d.Verbose=4]="Verbose"})(a=e.LogLevel||(e.LogLevel={})),function(d){var g,t=0;d.currentLogLevel=a.Warning,d.isDebugging=!1;function p(){return g!=null?g:g=new e.Version(e.version)}d.getTypeScriptVersion=p;function P(an){return d.currentLogLevel<=an}d.shouldLog=P;function J(an,vn){d.loggingHost&&P(an)&&d.loggingHost.log(an,vn)}function h(an){J(a.Info,an)}d.log=h,function(an){function vn(ie){J(a.Error,ie)}an.error=vn;function Nn(ie){J(a.Warning,ie)}an.warn=Nn;function Kn(ie){J(a.Info,ie)}an.log=Kn;function $e(ie){J(a.Verbose,ie)}an.trace=$e}(h=d.log||(d.log={}));var v={};function I(){return t}d.getAssertionLevel=I;function X(an){var vn=t;if(t=an,an>vn)for(var Nn=0,Kn=e.getOwnKeys(v);Nn=ie.level&&(d[$e]=ie,v[$e]=void 0)}}d.setAssertionLevel=X;function se(an){return t>=an}d.shouldAssert=se;function y(an,vn){return se(an)?!0:(v[vn]={level:an,assertion:d[vn]},d[vn]=e.noop,!1)}function w(an,vn){var Nn=new Error(an?"Debug Failure. "+an:"Debug Failure.");throw Error.captureStackTrace&&Error.captureStackTrace(Nn,vn||w),Nn}d.fail=w;function D(an,vn,Nn){return w((vn||"Unexpected node.")+`\r -Node `+N(an.kind)+" was unexpected.",Nn||D)}d.failBadSyntaxKind=D;function U(an,vn,Nn,Kn){an||(vn=vn?"False expression: "+vn:"False expression.",Nn&&(vn+=`\r -Verbose Debug Information: `+(typeof Nn=="string"?Nn:Nn())),w(vn,Kn||U))}d.assert=U;function B(an,vn,Nn,Kn,$e){if(an!==vn){var ie=Nn?Kn?Nn+" "+Kn:Nn:"";w("Expected "+an+" === "+vn+". "+ie,$e||B)}}d.assertEqual=B;function R(an,vn,Nn,Kn){an>=vn&&w("Expected "+an+" < "+vn+". "+(Nn||""),Kn||R)}d.assertLessThan=R;function O(an,vn,Nn){an>vn&&w("Expected "+an+" <= "+vn,Nn||O)}d.assertLessThanOrEqual=O;function k(an,vn,Nn){an= "+vn,Nn||k)}d.assertGreaterThanOrEqual=k;function M(an,vn,Nn){an==null&&w(vn,Nn||M)}d.assertIsDefined=M;function z(an,vn,Nn){return M(an,vn,Nn||z),an}d.checkDefined=z,d.assertDefined=z;function Y(an,vn,Nn){for(var Kn=0,$e=an;Kn<$e.length;Kn++){var ie=$e[Kn];M(ie,vn,Nn||Y)}}d.assertEachIsDefined=Y;function ne(an,vn,Nn){return Y(an,vn,Nn||ne),an}d.checkEachDefined=ne,d.assertEachDefined=ne;function j(an,vn,Nn){vn===void 0&&(vn="Illegal value:");var Kn=typeof an=="object"&&e.hasProperty(an,"kind")&&e.hasProperty(an,"pos")&&N?"SyntaxKind: "+N(an.kind):JSON.stringify(an);return w(vn+" "+Kn,Nn||j)}d.assertNever=j;function H(an,vn,Nn,Kn){y(1,"assertEachNode")&&U(vn===void 0||e.every(an,vn),Nn||"Unexpected node.",function(){return"Node array did not pass test '"+C(vn)+"'."},Kn||H)}d.assertEachNode=H;function K(an,vn,Nn,Kn){y(1,"assertNode")&&U(an!==void 0&&(vn===void 0||vn(an)),Nn||"Unexpected node.",function(){return"Node "+N(an==null?void 0:an.kind)+" did not pass test '"+C(vn)+"'."},Kn||K)}d.assertNode=K;function ee(an,vn,Nn,Kn){y(1,"assertNotNode")&&U(an===void 0||vn===void 0||!vn(an),Nn||"Unexpected node.",function(){return"Node "+N(an.kind)+" should not have passed test '"+C(vn)+"'."},Kn||ee)}d.assertNotNode=ee;function b(an,vn,Nn,Kn){y(1,"assertOptionalNode")&&U(vn===void 0||an===void 0||vn(an),Nn||"Unexpected node.",function(){return"Node "+N(an==null?void 0:an.kind)+" did not pass test '"+C(vn)+"'."},Kn||b)}d.assertOptionalNode=b;function A(an,vn,Nn,Kn){y(1,"assertOptionalToken")&&U(vn===void 0||an===void 0||an.kind===vn,Nn||"Unexpected node.",function(){return"Node "+N(an==null?void 0:an.kind)+" was not a '"+N(vn)+"' token."},Kn||A)}d.assertOptionalToken=A;function E(an,vn,Nn){y(1,"assertMissingNode")&&U(an===void 0,vn||"Unexpected node.",function(){return"Node "+N(an.kind)+" was unexpected'."},Nn||E)}d.assertMissingNode=E;function x(an){}d.type=x;function C(an){if(typeof an!="function")return"";if(an.hasOwnProperty("name"))return an.name;var vn=Function.prototype.toString.call(an),Nn=/^function\s+([\w\$]+)\s*\(/.exec(vn);return Nn?Nn[1]:""}d.getFunctionName=C;function m(an){return"{ name: "+e.unescapeLeadingUnderscores(an.escapedName)+"; flags: "+ge(an.flags)+"; declarations: "+e.map(an.declarations,function(vn){return N(vn.kind)})+" }"}d.formatSymbol=m;function c(an,vn,Nn){an===void 0&&(an=0);var Kn=f(vn);if(an===0)return Kn.length>0&&Kn[0][0]===0?Kn[0][1]:"0";if(Nn){for(var $e="",ie=an,dn=0,Tn=Kn;dnan)break;oe!==0&&oe&an&&($e=""+$e+($e?"|":"")+Be,ie&=~oe)}if(ie===0)return $e}else for(var Te=0,qe=Kn;Te=0;return qn?Sn(an,ie,Tn,vn.message):oe?Me(an,ie,Tn,vn.message):e.noop}function ze(an,vn){return function(){return an(),vn.apply(this,arguments)}}function Cn(an,vn){var Nn=we(C(an),vn);return ze(Nn,an)}d.deprecate=Cn}(e.Debug||(e.Debug={}))})(un||(un={}));var un;(function(e){var a=/^(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\.(0|[1-9]\d*)(?:\-([a-z0-9-.]+))?(?:\+([a-z0-9-.]+))?)?)?$/i,d=/^(?:0|[1-9]\d*|[a-z-][a-z0-9-]*)(?:\.(?:0|[1-9]\d*|[a-z-][a-z0-9-]*))*$/i,g=/^[a-z0-9-]+(?:\.[a-z0-9-]+)*$/i,t=/^(0|[1-9]\d*)$/,p=function(){function H(K,ee,b,A,E){if(ee===void 0&&(ee=0),b===void 0&&(b=0),A===void 0&&(A=""),E===void 0&&(E=""),typeof K=="string"){var x=e.Debug.checkDefined(P(K),"Invalid version");K=x.major,ee=x.minor,b=x.patch,A=x.prerelease,E=x.build}e.Debug.assert(K>=0,"Invalid argument: major"),e.Debug.assert(ee>=0,"Invalid argument: minor"),e.Debug.assert(b>=0,"Invalid argument: patch"),e.Debug.assert(!A||d.test(A),"Invalid argument: prerelease"),e.Debug.assert(!E||g.test(E),"Invalid argument: build"),this.major=K,this.minor=ee,this.patch=b,this.prerelease=A?A.split("."):e.emptyArray,this.build=E?E.split("."):e.emptyArray}return H.tryParse=function(K){var ee=P(K);if(!!ee){var b=ee.major,A=ee.minor,E=ee.patch,x=ee.prerelease,C=ee.build;return new H(b,A,E,x,C)}},H.prototype.compareTo=function(K){return this===K?0:K===void 0?1:e.compareValues(this.major,K.major)||e.compareValues(this.minor,K.minor)||e.compareValues(this.patch,K.patch)||J(this.prerelease,K.prerelease)},H.prototype.increment=function(K){switch(K){case"major":return new H(this.major+1,0,0);case"minor":return new H(this.major,this.minor+1,0);case"patch":return new H(this.major,this.minor,this.patch+1);default:return e.Debug.assertNever(K)}},H.prototype.toString=function(){var K=this.major+"."+this.minor+"."+this.patch;return e.some(this.prerelease)&&(K+="-"+this.prerelease.join(".")),e.some(this.build)&&(K+="+"+this.build.join(".")),K},H.zero=new H(0,0,0),H}();e.Version=p;function P(H){var K=a.exec(H);if(!!K){var ee=K[1],b=K[2],A=b===void 0?"0":b,E=K[3],x=E===void 0?"0":E,C=K[4],m=C===void 0?"":C,c=K[5],f=c===void 0?"":c;if(!(m&&!d.test(m))&&!(f&&!g.test(f)))return{major:parseInt(ee,10),minor:parseInt(A,10),patch:parseInt(x,10),prerelease:m,build:f}}}function J(H,K){if(H===K)return 0;if(H.length===0)return K.length===0?0:1;if(K.length===0)return-1;for(var ee=Math.min(H.length,K.length),b=0;b|>=|=)?\s*([a-z0-9-+.*]+)$/i;function w(H){for(var K=[],ee=0,b=e.trimString(H).split(v);ee=",b.version)),R(A.major)||ee.push(R(A.minor)?O("<",A.version.increment("major")):R(A.patch)?O("<",A.version.increment("minor")):O("<=",A.version)),!0):!1}function B(H,K,ee){var b=D(K);if(!b)return!1;var A=b.version,E=b.major,x=b.minor,C=b.patch;if(R(E))(H==="<"||H===">")&&ee.push(O("<",p.zero));else switch(H){case"~":ee.push(O(">=",A)),ee.push(O("<",A.increment(R(x)?"major":"minor")));break;case"^":ee.push(O(">=",A)),ee.push(O("<",A.increment(A.major>0||R(x)?"major":A.minor>0||R(C)?"minor":"patch")));break;case"<":case">=":ee.push(O(H,A));break;case"<=":case">":ee.push(R(x)?O(H==="<="?"<":">=",A.increment("major")):R(C)?O(H==="<="?"<":">=",A.increment("minor")):O(H,A));break;case"=":case void 0:R(x)||R(C)?(ee.push(O(">=",A)),ee.push(O("<",A.increment(R(x)?"major":"minor")))):ee.push(O("=",A));break;default:return!1}return!0}function R(H){return H==="*"||H==="x"||H==="X"}function O(H,K){return{operator:H,operand:K}}function k(H,K){if(K.length===0)return!0;for(var ee=0,b=K;ee":return b>0;case">=":return b>=0;case"=":return b===0;default:return e.Debug.assertNever(K)}}function Y(H){return e.map(H,ne).join(" || ")||"*"}function ne(H){return e.map(H,j).join(" ")}function j(H){return""+H.operator+H.operand}})(un||(un={}));var un;(function(e){function a(J,h){return typeof J=="object"&&typeof J.timeOrigin=="number"&&typeof J.mark=="function"&&typeof J.measure=="function"&&typeof J.now=="function"&&typeof h=="function"}function d(){if(typeof performance=="object"&&typeof PerformanceObserver=="function"&&a(performance,PerformanceObserver))return{shouldWriteNativeEvents:!0,performance,PerformanceObserver}}function g(){if(typeof process!="undefined"&&process.nextTick&&!process.browser&&typeof module=="object"&&typeof require=="function")try{var J,h={},v=h.performance,I=h.PerformanceObserver;if(a(v,I)){J=v;var X=new e.Version(process.versions.node),se=new e.VersionRange("<12.16.3 || 13 <13.13");return se.test(X)&&(J={get timeOrigin(){return v.timeOrigin},now:function(){return v.now()},mark:function(y){return v.mark(y)},measure:function(y,w,D){w===void 0&&(w="nodeStart"),D===void 0&&(D="__performance.measure-fix__",v.mark(D)),v.measure(y,w,D),D==="__performance.measure-fix__"&&v.clearMarks("__performance.measure-fix__")}}),{shouldWriteNativeEvents:!1,performance:J,PerformanceObserver:I}}}catch{}}var t=d()||g(),p=t==null?void 0:t.performance;function P(){return t}e.tryGetNativePerformanceHooks=P,e.timestamp=p?function(){return p.now()}:Date.now?Date.now:function(){return+new Date}})(un||(un={}));var un;(function(e){(function(a){var d,g;function t(O,k,M,z){return O?p(k,M,z):a.nullTimer}a.createTimerIf=t;function p(O,k,M){var z=0;return{enter:Y,exit:ne};function Y(){++z==1&&X(k)}function ne(){--z==0?(X(M),se(O,k,M)):z<0&&e.Debug.fail("enter/exit count does not match.")}}a.createTimer=p,a.nullTimer={enter:e.noop,exit:e.noop};var P=!1,J=e.timestamp(),h=new e.Map,v=new e.Map,I=new e.Map;function X(O){var k;if(P){var M=(k=v.get(O))!==null&&k!==void 0?k:0;v.set(O,M+1),h.set(O,e.timestamp()),g==null||g.mark(O)}}a.mark=X;function se(O,k,M){var z,Y;if(P){var ne=(z=M!==void 0?h.get(M):void 0)!==null&&z!==void 0?z:e.timestamp(),j=(Y=k!==void 0?h.get(k):void 0)!==null&&Y!==void 0?Y:J,H=I.get(O)||0;I.set(O,H+(ne-j)),g==null||g.measure(O,k,M)}}a.measure=se;function y(O){return v.get(O)||0}a.getCount=y;function w(O){return I.get(O)||0}a.getDuration=w;function D(O){I.forEach(function(k,M){return O(M,k)})}a.forEachMeasure=D;function U(){return P}a.isEnabled=U;function B(O){var k;return O===void 0&&(O=e.sys),P||(P=!0,d||(d=e.tryGetNativePerformanceHooks()),d&&(J=d.performance.timeOrigin,(d.shouldWriteNativeEvents||((k=O==null?void 0:O.cpuProfilingEnabled)===null||k===void 0?void 0:k.call(O))||(O==null?void 0:O.debugMode))&&(g=d.performance))),!0}a.enable=B;function R(){P&&(h.clear(),v.clear(),I.clear(),g=void 0,P=!1)}a.disable=R})(e.performance||(e.performance={}))})(un||(un={}));var un;(function(e){var a,d={logEvent:e.noop,logErrEvent:e.noop,logPerfEvent:e.noop,logInfoEvent:e.noop,logStartCommand:e.noop,logStopCommand:e.noop,logStartUpdateProgram:e.noop,logStopUpdateProgram:e.noop,logStartUpdateGraph:e.noop,logStopUpdateGraph:e.noop,logStartResolveModule:e.noop,logStopResolveModule:e.noop,logStartParseSourceFile:e.noop,logStopParseSourceFile:e.noop,logStartReadFile:e.noop,logStopReadFile:e.noop,logStartBindFile:e.noop,logStopBindFile:e.noop,logStartScheduledOperation:e.noop,logStopScheduledOperation:e.noop},g;try{var t=(a={}.TS_ETW_MODULE_PATH)!==null&&a!==void 0?a:"./node_modules/@microsoft/typescript-etw";g=void 0}catch{g=void 0}e.perfLogger=g&&g.logEvent?g:d})(un||(un={}));var un;(function(e){var a;(function(d){var g,t=0,p=0,P,J=[],h,v=[];function I(ne,j,H){if(e.Debug.assert(!e.tracing,"Tracing already started"),g===void 0)try{g=void 0}catch(E){throw new Error(`tracing requires having fs -(original error: `+(E.message||E)+")")}P=ne,J.length=0,h===void 0&&(h=e.combinePaths(j,"legend.json")),g.existsSync(j)||g.mkdirSync(j,{recursive:!0});var K=P==="build"?"."+process.pid+"-"+ ++t:P==="server"?"."+process.pid:"",ee=e.combinePaths(j,"trace"+K+".json"),b=e.combinePaths(j,"types"+K+".json");v.push({configFilePath:H,tracePath:ee,typesPath:b}),p=g.openSync(ee,"w"),e.tracing=d;var A={cat:"__metadata",ph:"M",ts:1e3*e.timestamp(),pid:1,tid:1};g.writeSync(p,`[ -`+[Dt({name:"process_name",args:{name:"tsc"}},A),Dt({name:"thread_name",args:{name:"Main"}},A),Dt(Dt({name:"TracingStartedInBrowser"},A),{cat:"disabled-by-default-devtools.timeline"})].map(function(E){return JSON.stringify(E)}).join(`, -`))}d.startTracing=I;function X(){e.Debug.assert(e.tracing,"Tracing is not in progress"),e.Debug.assert(!!J.length==(P!=="server")),g.writeSync(p,` -] -`),g.closeSync(p),e.tracing=void 0,J.length?z(J):v[v.length-1].typesPath=void 0}d.stopTracing=X;function se(ne){P!=="server"&&J.push(ne)}d.recordType=se,function(ne){ne.Parse="parse",ne.Program="program",ne.Bind="bind",ne.Check="check",ne.CheckTypes="checkTypes",ne.Emit="emit",ne.Session="session"}(d.Phase||(d.Phase={}));function y(ne,j,H){k("I",ne,j,H,'"s":"g"')}d.instant=y;var w=[];function D(ne,j,H,K){K===void 0&&(K=!1),K&&k("B",ne,j,H),w.push({phase:ne,name:j,args:H,time:1e3*e.timestamp(),separateBeginAndEnd:K})}d.push=D;function U(){e.Debug.assert(w.length>0),O(w.length-1,1e3*e.timestamp()),w.length--}d.pop=U;function B(){for(var ne=1e3*e.timestamp(),j=w.length-1;j>=0;j--)O(j,ne);w.length=0}d.popAll=B;var R=1e3*10;function O(ne,j){var H=w[ne],K=H.phase,ee=H.name,b=H.args,A=H.time,E=H.separateBeginAndEnd;E?k("E",K,ee,b,void 0,j):R-A%R<=j-A&&k("X",K,ee,b,'"dur":'+(j-A),A)}function k(ne,j,H,K,ee,b){b===void 0&&(b=1e3*e.timestamp()),!(P==="server"&&j==="checkTypes")&&(e.performance.mark("beginTracing"),g.writeSync(p,`, -{"pid":1,"tid":1,"ph":"`+ne+'","cat":"'+j+'","ts":'+b+',"name":"'+H+'"'),ee&&g.writeSync(p,","+ee),K&&g.writeSync(p,',"args":'+JSON.stringify(K)),g.writeSync(p,"}"),e.performance.mark("endTracing"),e.performance.measure("Tracing","beginTracing","endTracing"))}function M(ne){var j=e.getSourceFileOfNode(ne);return j?{path:j.path,start:H(e.getLineAndCharacterOfPosition(j,ne.pos)),end:H(e.getLineAndCharacterOfPosition(j,ne.end))}:void 0;function H(K){return{line:K.line+1,character:K.character+1}}}function z(ne){var j,H,K,ee,b,A,E,x,C,m,c,f,N,V,Z,S,ce,ge,ae,F,re,q;e.performance.mark("beginDumpTypes");var ue=v[v.length-1].typesPath,ke=g.openSync(ue,"w"),de=new e.Map;g.writeSync(ke,"[");for(var xe=ne.length,Le=0;Le0}e.isRootedDiskPath=p;function P(Ee){var We=U(Ee);return We>0&&We===Ee.length}e.isDiskPathRoot=P;function J(Ee){return U(Ee)!==0}e.pathIsAbsolute=J;function h(Ee){return/^\.\.?($|[\\/])/.test(Ee)}e.pathIsRelative=h;function v(Ee){return!J(Ee)&&!h(Ee)}e.pathIsBareSpecifier=v;function I(Ee){return e.stringContains(O(Ee),".")}e.hasExtension=I;function X(Ee,We){return Ee.length>We.length&&e.endsWith(Ee,We)}e.fileExtensionIs=X;function se(Ee,We){for(var ye=0,Ie=We;ye0&&g(Ee.charCodeAt(Ee.length-1))}e.hasTrailingDirectorySeparator=y;function w(Ee){return Ee>=97&&Ee<=122||Ee>=65&&Ee<=90}function D(Ee,We){var ye=Ee.charCodeAt(We);if(ye===58)return We+1;if(ye===37&&Ee.charCodeAt(We+1)===51){var Ie=Ee.charCodeAt(We+2);if(Ie===97||Ie===65)return We+3}return-1}function U(Ee){if(!Ee)return 0;var We=Ee.charCodeAt(0);if(We===47||We===92){if(Ee.charCodeAt(1)!==We)return 1;var ye=Ee.indexOf(We===47?e.directorySeparator:e.altDirectorySeparator,2);return ye<0?Ee.length:ye+1}if(w(We)&&Ee.charCodeAt(1)===58){var Ie=Ee.charCodeAt(2);if(Ie===47||Ie===92)return 3;if(Ee.length===2)return 2}var je=Ee.indexOf(a);if(je!==-1){var Sn=je+a.length,Me=Ee.indexOf(e.directorySeparator,Sn);if(Me!==-1){var we=Ee.slice(0,je),ze=Ee.slice(Sn,Me);if(we==="file"&&(ze===""||ze==="localhost")&&w(Ee.charCodeAt(Me+1))){var Cn=D(Ee,Me+2);if(Cn!==-1){if(Ee.charCodeAt(Cn)===47)return~(Cn+1);if(Cn===Ee.length)return~Cn}}return~(Me+1)}return~Ee.length}return 0}function B(Ee){var We=U(Ee);return We<0?~We:We}e.getRootLength=B;function R(Ee){Ee=H(Ee);var We=B(Ee);return We===Ee.length?Ee:(Ee=N(Ee),Ee.slice(0,Math.max(We,Ee.lastIndexOf(e.directorySeparator))))}e.getDirectoryPath=R;function O(Ee,We,ye){Ee=H(Ee);var Ie=B(Ee);if(Ie===Ee.length)return"";Ee=N(Ee);var je=Ee.slice(Math.max(B(Ee),Ee.lastIndexOf(e.directorySeparator)+1)),Sn=We!==void 0&&ye!==void 0?z(je,We,ye):void 0;return Sn?je.slice(0,je.length-Sn.length):je}e.getBaseFileName=O;function k(Ee,We,ye){if(e.startsWith(We,".")||(We="."+We),Ee.length>=We.length&&Ee.charCodeAt(Ee.length-We.length)===46){var Ie=Ee.slice(Ee.length-We.length);if(ye(Ie,We))return Ie}}function M(Ee,We,ye){if(typeof We=="string")return k(Ee,We,ye)||"";for(var Ie=0,je=We;Ie=0?Ie.substring(je):""}e.getAnyExtensionFromPath=z;function Y(Ee,We){var ye=Ee.substring(0,We),Ie=Ee.substring(We).split(e.directorySeparator);return Ie.length&&!e.lastOrUndefined(Ie)&&Ie.pop(),Mr([ye],Ie,!0)}function ne(Ee,We){return We===void 0&&(We=""),Ee=ee(We,Ee),Y(Ee,B(Ee))}e.getPathComponents=ne;function j(Ee){if(Ee.length===0)return"";var We=Ee[0]&&V(Ee[0]);return We+Ee.slice(1).join(e.directorySeparator)}e.getPathFromPathComponents=j;function H(Ee){var We=Ee.indexOf("\\");return We===-1?Ee:(d.lastIndex=We,Ee.replace(d,e.directorySeparator))}e.normalizeSlashes=H;function K(Ee){if(!e.some(Ee))return[];for(var We=[Ee[0]],ye=1;ye1){if(We[We.length-1]!==".."){We.pop();continue}}else if(We[0])continue}We.push(Ie)}}return We}e.reducePathComponents=K;function ee(Ee){for(var We=[],ye=1;ye0==B(We)>0,"Paths must either both be absolute or both be relative");var Ie=typeof ye=="function"?ye:e.identity,je=typeof ye=="boolean"?ye:!1,Sn=ke(Ee,We,je?e.equateStringsCaseInsensitive:e.equateStringsCaseSensitive,Ie);return j(Sn)}e.getRelativePathFromDirectory=de;function xe(Ee,We,ye){return p(Ee)?He(We,Ee,We,ye,!1):Ee}e.convertToRelativePath=xe;function Le(Ee,We,ye){return Z(de(R(Ee),We,ye))}e.getRelativePathFromFile=Le;function He(Ee,We,ye,Ie,je){var Sn=ke(b(ye,Ee),b(ye,We),e.equateStringsCaseSensitive,Ie),Me=Sn[0];if(je&&p(Me)){var we=Me.charAt(0)===e.directorySeparator?"file://":"file:///";Sn[0]=we+Me}return j(Sn)}e.getRelativePathToDirectoryOrUrl=He;function Ne(Ee,We){for(;;){var ye=We(Ee);if(ye!==void 0)return ye;var Ie=R(Ee);if(Ie===Ee)return;Ee=Ie}}e.forEachAncestorDirectory=Ne;function De(Ee){return e.endsWith(Ee,"/node_modules")}e.isNodeModulesDirectory=De})(un||(un={}));var un;(function(e){function a(H){for(var K=5381,ee=0;ee type. Did you mean to write 'Promise<{0}>'?"),In_ambient_enum_declarations_member_initializer_must_be_constant_expression:a(1066,e.DiagnosticCategory.Error,"In_ambient_enum_declarations_member_initializer_must_be_constant_expression_1066","In ambient enum declarations member initializer must be constant expression."),Unexpected_token_A_constructor_method_accessor_or_property_was_expected:a(1068,e.DiagnosticCategory.Error,"Unexpected_token_A_constructor_method_accessor_or_property_was_expected_1068","Unexpected token. A constructor, method, accessor, or property was expected."),Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces:a(1069,e.DiagnosticCategory.Error,"Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces_1069","Unexpected token. A type parameter name was expected without curly braces."),_0_modifier_cannot_appear_on_a_type_member:a(1070,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_type_member_1070","'{0}' modifier cannot appear on a type member."),_0_modifier_cannot_appear_on_an_index_signature:a(1071,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_an_index_signature_1071","'{0}' modifier cannot appear on an index signature."),A_0_modifier_cannot_be_used_with_an_import_declaration:a(1079,e.DiagnosticCategory.Error,"A_0_modifier_cannot_be_used_with_an_import_declaration_1079","A '{0}' modifier cannot be used with an import declaration."),Invalid_reference_directive_syntax:a(1084,e.DiagnosticCategory.Error,"Invalid_reference_directive_syntax_1084","Invalid 'reference' directive syntax."),Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:a(1085,e.DiagnosticCategory.Error,"Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0_1085","Octal literals are not available when targeting ECMAScript 5 and higher. Use the syntax '{0}'."),_0_modifier_cannot_appear_on_a_constructor_declaration:a(1089,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_constructor_declaration_1089","'{0}' modifier cannot appear on a constructor declaration."),_0_modifier_cannot_appear_on_a_parameter:a(1090,e.DiagnosticCategory.Error,"_0_modifier_cannot_appear_on_a_parameter_1090","'{0}' modifier cannot appear on a parameter."),Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:a(1091,e.DiagnosticCategory.Error,"Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement_1091","Only a single variable declaration is allowed in a 'for...in' statement."),Type_parameters_cannot_appear_on_a_constructor_declaration:a(1092,e.DiagnosticCategory.Error,"Type_parameters_cannot_appear_on_a_constructor_declaration_1092","Type parameters cannot appear on a constructor declaration."),Type_annotation_cannot_appear_on_a_constructor_declaration:a(1093,e.DiagnosticCategory.Error,"Type_annotation_cannot_appear_on_a_constructor_declaration_1093","Type annotation cannot appear on a constructor declaration."),An_accessor_cannot_have_type_parameters:a(1094,e.DiagnosticCategory.Error,"An_accessor_cannot_have_type_parameters_1094","An accessor cannot have type parameters."),A_set_accessor_cannot_have_a_return_type_annotation:a(1095,e.DiagnosticCategory.Error,"A_set_accessor_cannot_have_a_return_type_annotation_1095","A 'set' accessor cannot have a return type annotation."),An_index_signature_must_have_exactly_one_parameter:a(1096,e.DiagnosticCategory.Error,"An_index_signature_must_have_exactly_one_parameter_1096","An index signature must have exactly one parameter."),_0_list_cannot_be_empty:a(1097,e.DiagnosticCategory.Error,"_0_list_cannot_be_empty_1097","'{0}' list cannot be empty."),Type_parameter_list_cannot_be_empty:a(1098,e.DiagnosticCategory.Error,"Type_parameter_list_cannot_be_empty_1098","Type parameter list cannot be empty."),Type_argument_list_cannot_be_empty:a(1099,e.DiagnosticCategory.Error,"Type_argument_list_cannot_be_empty_1099","Type argument list cannot be empty."),Invalid_use_of_0_in_strict_mode:a(1100,e.DiagnosticCategory.Error,"Invalid_use_of_0_in_strict_mode_1100","Invalid use of '{0}' in strict mode."),with_statements_are_not_allowed_in_strict_mode:a(1101,e.DiagnosticCategory.Error,"with_statements_are_not_allowed_in_strict_mode_1101","'with' statements are not allowed in strict mode."),delete_cannot_be_called_on_an_identifier_in_strict_mode:a(1102,e.DiagnosticCategory.Error,"delete_cannot_be_called_on_an_identifier_in_strict_mode_1102","'delete' cannot be called on an identifier in strict mode."),for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:a(1103,e.DiagnosticCategory.Error,"for_await_loops_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1103","'for await' loops are only allowed within async functions and at the top levels of modules."),A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement:a(1104,e.DiagnosticCategory.Error,"A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement_1104","A 'continue' statement can only be used within an enclosing iteration statement."),A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:a(1105,e.DiagnosticCategory.Error,"A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement_1105","A 'break' statement can only be used within an enclosing iteration or switch statement."),The_left_hand_side_of_a_for_of_statement_may_not_be_async:a(1106,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_of_statement_may_not_be_async_1106","The left-hand side of a 'for...of' statement may not be 'async'."),Jump_target_cannot_cross_function_boundary:a(1107,e.DiagnosticCategory.Error,"Jump_target_cannot_cross_function_boundary_1107","Jump target cannot cross function boundary."),A_return_statement_can_only_be_used_within_a_function_body:a(1108,e.DiagnosticCategory.Error,"A_return_statement_can_only_be_used_within_a_function_body_1108","A 'return' statement can only be used within a function body."),Expression_expected:a(1109,e.DiagnosticCategory.Error,"Expression_expected_1109","Expression expected."),Type_expected:a(1110,e.DiagnosticCategory.Error,"Type_expected_1110","Type expected."),A_default_clause_cannot_appear_more_than_once_in_a_switch_statement:a(1113,e.DiagnosticCategory.Error,"A_default_clause_cannot_appear_more_than_once_in_a_switch_statement_1113","A 'default' clause cannot appear more than once in a 'switch' statement."),Duplicate_label_0:a(1114,e.DiagnosticCategory.Error,"Duplicate_label_0_1114","Duplicate label '{0}'."),A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement:a(1115,e.DiagnosticCategory.Error,"A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement_1115","A 'continue' statement can only jump to a label of an enclosing iteration statement."),A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:a(1116,e.DiagnosticCategory.Error,"A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement_1116","A 'break' statement can only jump to a label of an enclosing statement."),An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode:a(1117,e.DiagnosticCategory.Error,"An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode_1117","An object literal cannot have multiple properties with the same name in strict mode."),An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name:a(1118,e.DiagnosticCategory.Error,"An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name_1118","An object literal cannot have multiple get/set accessors with the same name."),An_object_literal_cannot_have_property_and_accessor_with_the_same_name:a(1119,e.DiagnosticCategory.Error,"An_object_literal_cannot_have_property_and_accessor_with_the_same_name_1119","An object literal cannot have property and accessor with the same name."),An_export_assignment_cannot_have_modifiers:a(1120,e.DiagnosticCategory.Error,"An_export_assignment_cannot_have_modifiers_1120","An export assignment cannot have modifiers."),Octal_literals_are_not_allowed_in_strict_mode:a(1121,e.DiagnosticCategory.Error,"Octal_literals_are_not_allowed_in_strict_mode_1121","Octal literals are not allowed in strict mode."),Variable_declaration_list_cannot_be_empty:a(1123,e.DiagnosticCategory.Error,"Variable_declaration_list_cannot_be_empty_1123","Variable declaration list cannot be empty."),Digit_expected:a(1124,e.DiagnosticCategory.Error,"Digit_expected_1124","Digit expected."),Hexadecimal_digit_expected:a(1125,e.DiagnosticCategory.Error,"Hexadecimal_digit_expected_1125","Hexadecimal digit expected."),Unexpected_end_of_text:a(1126,e.DiagnosticCategory.Error,"Unexpected_end_of_text_1126","Unexpected end of text."),Invalid_character:a(1127,e.DiagnosticCategory.Error,"Invalid_character_1127","Invalid character."),Declaration_or_statement_expected:a(1128,e.DiagnosticCategory.Error,"Declaration_or_statement_expected_1128","Declaration or statement expected."),Statement_expected:a(1129,e.DiagnosticCategory.Error,"Statement_expected_1129","Statement expected."),case_or_default_expected:a(1130,e.DiagnosticCategory.Error,"case_or_default_expected_1130","'case' or 'default' expected."),Property_or_signature_expected:a(1131,e.DiagnosticCategory.Error,"Property_or_signature_expected_1131","Property or signature expected."),Enum_member_expected:a(1132,e.DiagnosticCategory.Error,"Enum_member_expected_1132","Enum member expected."),Variable_declaration_expected:a(1134,e.DiagnosticCategory.Error,"Variable_declaration_expected_1134","Variable declaration expected."),Argument_expression_expected:a(1135,e.DiagnosticCategory.Error,"Argument_expression_expected_1135","Argument expression expected."),Property_assignment_expected:a(1136,e.DiagnosticCategory.Error,"Property_assignment_expected_1136","Property assignment expected."),Expression_or_comma_expected:a(1137,e.DiagnosticCategory.Error,"Expression_or_comma_expected_1137","Expression or comma expected."),Parameter_declaration_expected:a(1138,e.DiagnosticCategory.Error,"Parameter_declaration_expected_1138","Parameter declaration expected."),Type_parameter_declaration_expected:a(1139,e.DiagnosticCategory.Error,"Type_parameter_declaration_expected_1139","Type parameter declaration expected."),Type_argument_expected:a(1140,e.DiagnosticCategory.Error,"Type_argument_expected_1140","Type argument expected."),String_literal_expected:a(1141,e.DiagnosticCategory.Error,"String_literal_expected_1141","String literal expected."),Line_break_not_permitted_here:a(1142,e.DiagnosticCategory.Error,"Line_break_not_permitted_here_1142","Line break not permitted here."),or_expected:a(1144,e.DiagnosticCategory.Error,"or_expected_1144","'{' or ';' expected."),Declaration_expected:a(1146,e.DiagnosticCategory.Error,"Declaration_expected_1146","Declaration expected."),Import_declarations_in_a_namespace_cannot_reference_a_module:a(1147,e.DiagnosticCategory.Error,"Import_declarations_in_a_namespace_cannot_reference_a_module_1147","Import declarations in a namespace cannot reference a module."),Cannot_use_imports_exports_or_module_augmentations_when_module_is_none:a(1148,e.DiagnosticCategory.Error,"Cannot_use_imports_exports_or_module_augmentations_when_module_is_none_1148","Cannot use imports, exports, or module augmentations when '--module' is 'none'."),File_name_0_differs_from_already_included_file_name_1_only_in_casing:a(1149,e.DiagnosticCategory.Error,"File_name_0_differs_from_already_included_file_name_1_only_in_casing_1149","File name '{0}' differs from already included file name '{1}' only in casing."),const_declarations_must_be_initialized:a(1155,e.DiagnosticCategory.Error,"const_declarations_must_be_initialized_1155","'const' declarations must be initialized."),const_declarations_can_only_be_declared_inside_a_block:a(1156,e.DiagnosticCategory.Error,"const_declarations_can_only_be_declared_inside_a_block_1156","'const' declarations can only be declared inside a block."),let_declarations_can_only_be_declared_inside_a_block:a(1157,e.DiagnosticCategory.Error,"let_declarations_can_only_be_declared_inside_a_block_1157","'let' declarations can only be declared inside a block."),Unterminated_template_literal:a(1160,e.DiagnosticCategory.Error,"Unterminated_template_literal_1160","Unterminated template literal."),Unterminated_regular_expression_literal:a(1161,e.DiagnosticCategory.Error,"Unterminated_regular_expression_literal_1161","Unterminated regular expression literal."),An_object_member_cannot_be_declared_optional:a(1162,e.DiagnosticCategory.Error,"An_object_member_cannot_be_declared_optional_1162","An object member cannot be declared optional."),A_yield_expression_is_only_allowed_in_a_generator_body:a(1163,e.DiagnosticCategory.Error,"A_yield_expression_is_only_allowed_in_a_generator_body_1163","A 'yield' expression is only allowed in a generator body."),Computed_property_names_are_not_allowed_in_enums:a(1164,e.DiagnosticCategory.Error,"Computed_property_names_are_not_allowed_in_enums_1164","Computed property names are not allowed in enums."),A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1165,e.DiagnosticCategory.Error,"A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_t_1165","A computed property name in an ambient context must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type:a(1166,e.DiagnosticCategory.Error,"A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_1166","A computed property name in a class property declaration must have a simple literal type or a 'unique symbol' type."),A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1168,e.DiagnosticCategory.Error,"A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_ty_1168","A computed property name in a method overload must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1169,e.DiagnosticCategory.Error,"A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_1169","A computed property name in an interface must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type:a(1170,e.DiagnosticCategory.Error,"A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type__1170","A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type."),A_comma_expression_is_not_allowed_in_a_computed_property_name:a(1171,e.DiagnosticCategory.Error,"A_comma_expression_is_not_allowed_in_a_computed_property_name_1171","A comma expression is not allowed in a computed property name."),extends_clause_already_seen:a(1172,e.DiagnosticCategory.Error,"extends_clause_already_seen_1172","'extends' clause already seen."),extends_clause_must_precede_implements_clause:a(1173,e.DiagnosticCategory.Error,"extends_clause_must_precede_implements_clause_1173","'extends' clause must precede 'implements' clause."),Classes_can_only_extend_a_single_class:a(1174,e.DiagnosticCategory.Error,"Classes_can_only_extend_a_single_class_1174","Classes can only extend a single class."),implements_clause_already_seen:a(1175,e.DiagnosticCategory.Error,"implements_clause_already_seen_1175","'implements' clause already seen."),Interface_declaration_cannot_have_implements_clause:a(1176,e.DiagnosticCategory.Error,"Interface_declaration_cannot_have_implements_clause_1176","Interface declaration cannot have 'implements' clause."),Binary_digit_expected:a(1177,e.DiagnosticCategory.Error,"Binary_digit_expected_1177","Binary digit expected."),Octal_digit_expected:a(1178,e.DiagnosticCategory.Error,"Octal_digit_expected_1178","Octal digit expected."),Unexpected_token_expected:a(1179,e.DiagnosticCategory.Error,"Unexpected_token_expected_1179","Unexpected token. '{' expected."),Property_destructuring_pattern_expected:a(1180,e.DiagnosticCategory.Error,"Property_destructuring_pattern_expected_1180","Property destructuring pattern expected."),Array_element_destructuring_pattern_expected:a(1181,e.DiagnosticCategory.Error,"Array_element_destructuring_pattern_expected_1181","Array element destructuring pattern expected."),A_destructuring_declaration_must_have_an_initializer:a(1182,e.DiagnosticCategory.Error,"A_destructuring_declaration_must_have_an_initializer_1182","A destructuring declaration must have an initializer."),An_implementation_cannot_be_declared_in_ambient_contexts:a(1183,e.DiagnosticCategory.Error,"An_implementation_cannot_be_declared_in_ambient_contexts_1183","An implementation cannot be declared in ambient contexts."),Modifiers_cannot_appear_here:a(1184,e.DiagnosticCategory.Error,"Modifiers_cannot_appear_here_1184","Modifiers cannot appear here."),Merge_conflict_marker_encountered:a(1185,e.DiagnosticCategory.Error,"Merge_conflict_marker_encountered_1185","Merge conflict marker encountered."),A_rest_element_cannot_have_an_initializer:a(1186,e.DiagnosticCategory.Error,"A_rest_element_cannot_have_an_initializer_1186","A rest element cannot have an initializer."),A_parameter_property_may_not_be_declared_using_a_binding_pattern:a(1187,e.DiagnosticCategory.Error,"A_parameter_property_may_not_be_declared_using_a_binding_pattern_1187","A parameter property may not be declared using a binding pattern."),Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement:a(1188,e.DiagnosticCategory.Error,"Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement_1188","Only a single variable declaration is allowed in a 'for...of' statement."),The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:a(1189,e.DiagnosticCategory.Error,"The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer_1189","The variable declaration of a 'for...in' statement cannot have an initializer."),The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer:a(1190,e.DiagnosticCategory.Error,"The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer_1190","The variable declaration of a 'for...of' statement cannot have an initializer."),An_import_declaration_cannot_have_modifiers:a(1191,e.DiagnosticCategory.Error,"An_import_declaration_cannot_have_modifiers_1191","An import declaration cannot have modifiers."),Module_0_has_no_default_export:a(1192,e.DiagnosticCategory.Error,"Module_0_has_no_default_export_1192","Module '{0}' has no default export."),An_export_declaration_cannot_have_modifiers:a(1193,e.DiagnosticCategory.Error,"An_export_declaration_cannot_have_modifiers_1193","An export declaration cannot have modifiers."),Export_declarations_are_not_permitted_in_a_namespace:a(1194,e.DiagnosticCategory.Error,"Export_declarations_are_not_permitted_in_a_namespace_1194","Export declarations are not permitted in a namespace."),export_Asterisk_does_not_re_export_a_default:a(1195,e.DiagnosticCategory.Error,"export_Asterisk_does_not_re_export_a_default_1195","'export *' does not re-export a default."),Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified:a(1196,e.DiagnosticCategory.Error,"Catch_clause_variable_type_annotation_must_be_any_or_unknown_if_specified_1196","Catch clause variable type annotation must be 'any' or 'unknown' if specified."),Catch_clause_variable_cannot_have_an_initializer:a(1197,e.DiagnosticCategory.Error,"Catch_clause_variable_cannot_have_an_initializer_1197","Catch clause variable cannot have an initializer."),An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive:a(1198,e.DiagnosticCategory.Error,"An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive_1198","An extended Unicode escape value must be between 0x0 and 0x10FFFF inclusive."),Unterminated_Unicode_escape_sequence:a(1199,e.DiagnosticCategory.Error,"Unterminated_Unicode_escape_sequence_1199","Unterminated Unicode escape sequence."),Line_terminator_not_permitted_before_arrow:a(1200,e.DiagnosticCategory.Error,"Line_terminator_not_permitted_before_arrow_1200","Line terminator not permitted before arrow."),Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead:a(1202,e.DiagnosticCategory.Error,"Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_1202",`Import assignment cannot be used when targeting ECMAScript modules. Consider using 'import * as ns from "mod"', 'import {a} from "mod"', 'import d from "mod"', or another module format instead.`),Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead:a(1203,e.DiagnosticCategory.Error,"Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or__1203","Export assignment cannot be used when targeting ECMAScript modules. Consider using 'export default' or another module format instead."),Re_exporting_a_type_when_the_isolatedModules_flag_is_provided_requires_using_export_type:a(1205,e.DiagnosticCategory.Error,"Re_exporting_a_type_when_the_isolatedModules_flag_is_provided_requires_using_export_type_1205","Re-exporting a type when the '--isolatedModules' flag is provided requires using 'export type'."),Decorators_are_not_valid_here:a(1206,e.DiagnosticCategory.Error,"Decorators_are_not_valid_here_1206","Decorators are not valid here."),Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name:a(1207,e.DiagnosticCategory.Error,"Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name_1207","Decorators cannot be applied to multiple get/set accessors of the same name."),_0_cannot_be_compiled_under_isolatedModules_because_it_is_considered_a_global_script_file_Add_an_import_export_or_an_empty_export_statement_to_make_it_a_module:a(1208,e.DiagnosticCategory.Error,"_0_cannot_be_compiled_under_isolatedModules_because_it_is_considered_a_global_script_file_Add_an_imp_1208","'{0}' cannot be compiled under '--isolatedModules' because it is considered a global script file. Add an import, export, or an empty 'export {}' statement to make it a module."),Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:a(1210,e.DiagnosticCategory.Error,"Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of__1210","Code contained in a class is evaluated in JavaScript's strict mode which does not allow this use of '{0}'. For more information, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode."),A_class_declaration_without_the_default_modifier_must_have_a_name:a(1211,e.DiagnosticCategory.Error,"A_class_declaration_without_the_default_modifier_must_have_a_name_1211","A class declaration without the 'default' modifier must have a name."),Identifier_expected_0_is_a_reserved_word_in_strict_mode:a(1212,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_1212","Identifier expected. '{0}' is a reserved word in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:a(1213,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_stric_1213","Identifier expected. '{0}' is a reserved word in strict mode. Class definitions are automatically in strict mode."),Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:a(1214,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode_1214","Identifier expected. '{0}' is a reserved word in strict mode. Modules are automatically in strict mode."),Invalid_use_of_0_Modules_are_automatically_in_strict_mode:a(1215,e.DiagnosticCategory.Error,"Invalid_use_of_0_Modules_are_automatically_in_strict_mode_1215","Invalid use of '{0}'. Modules are automatically in strict mode."),Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules:a(1216,e.DiagnosticCategory.Error,"Identifier_expected_esModule_is_reserved_as_an_exported_marker_when_transforming_ECMAScript_modules_1216","Identifier expected. '__esModule' is reserved as an exported marker when transforming ECMAScript modules."),Export_assignment_is_not_supported_when_module_flag_is_system:a(1218,e.DiagnosticCategory.Error,"Export_assignment_is_not_supported_when_module_flag_is_system_1218","Export assignment is not supported when '--module' flag is 'system'."),Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning:a(1219,e.DiagnosticCategory.Error,"Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_t_1219","Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option in your 'tsconfig' or 'jsconfig' to remove this warning."),Generators_are_only_available_when_targeting_ECMAScript_2015_or_higher:a(1220,e.DiagnosticCategory.Error,"Generators_are_only_available_when_targeting_ECMAScript_2015_or_higher_1220","Generators are only available when targeting ECMAScript 2015 or higher."),Generators_are_not_allowed_in_an_ambient_context:a(1221,e.DiagnosticCategory.Error,"Generators_are_not_allowed_in_an_ambient_context_1221","Generators are not allowed in an ambient context."),An_overload_signature_cannot_be_declared_as_a_generator:a(1222,e.DiagnosticCategory.Error,"An_overload_signature_cannot_be_declared_as_a_generator_1222","An overload signature cannot be declared as a generator."),_0_tag_already_specified:a(1223,e.DiagnosticCategory.Error,"_0_tag_already_specified_1223","'{0}' tag already specified."),Signature_0_must_be_a_type_predicate:a(1224,e.DiagnosticCategory.Error,"Signature_0_must_be_a_type_predicate_1224","Signature '{0}' must be a type predicate."),Cannot_find_parameter_0:a(1225,e.DiagnosticCategory.Error,"Cannot_find_parameter_0_1225","Cannot find parameter '{0}'."),Type_predicate_0_is_not_assignable_to_1:a(1226,e.DiagnosticCategory.Error,"Type_predicate_0_is_not_assignable_to_1_1226","Type predicate '{0}' is not assignable to '{1}'."),Parameter_0_is_not_in_the_same_position_as_parameter_1:a(1227,e.DiagnosticCategory.Error,"Parameter_0_is_not_in_the_same_position_as_parameter_1_1227","Parameter '{0}' is not in the same position as parameter '{1}'."),A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods:a(1228,e.DiagnosticCategory.Error,"A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods_1228","A type predicate is only allowed in return type position for functions and methods."),A_type_predicate_cannot_reference_a_rest_parameter:a(1229,e.DiagnosticCategory.Error,"A_type_predicate_cannot_reference_a_rest_parameter_1229","A type predicate cannot reference a rest parameter."),A_type_predicate_cannot_reference_element_0_in_a_binding_pattern:a(1230,e.DiagnosticCategory.Error,"A_type_predicate_cannot_reference_element_0_in_a_binding_pattern_1230","A type predicate cannot reference element '{0}' in a binding pattern."),An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration:a(1231,e.DiagnosticCategory.Error,"An_export_assignment_must_be_at_the_top_level_of_a_file_or_module_declaration_1231","An export assignment must be at the top level of a file or module declaration."),An_import_declaration_can_only_be_used_in_a_namespace_or_module:a(1232,e.DiagnosticCategory.Error,"An_import_declaration_can_only_be_used_in_a_namespace_or_module_1232","An import declaration can only be used in a namespace or module."),An_export_declaration_can_only_be_used_in_a_module:a(1233,e.DiagnosticCategory.Error,"An_export_declaration_can_only_be_used_in_a_module_1233","An export declaration can only be used in a module."),An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file:a(1234,e.DiagnosticCategory.Error,"An_ambient_module_declaration_is_only_allowed_at_the_top_level_in_a_file_1234","An ambient module declaration is only allowed at the top level in a file."),A_namespace_declaration_is_only_allowed_in_a_namespace_or_module:a(1235,e.DiagnosticCategory.Error,"A_namespace_declaration_is_only_allowed_in_a_namespace_or_module_1235","A namespace declaration is only allowed in a namespace or module."),The_return_type_of_a_property_decorator_function_must_be_either_void_or_any:a(1236,e.DiagnosticCategory.Error,"The_return_type_of_a_property_decorator_function_must_be_either_void_or_any_1236","The return type of a property decorator function must be either 'void' or 'any'."),The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any:a(1237,e.DiagnosticCategory.Error,"The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any_1237","The return type of a parameter decorator function must be either 'void' or 'any'."),Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression:a(1238,e.DiagnosticCategory.Error,"Unable_to_resolve_signature_of_class_decorator_when_called_as_an_expression_1238","Unable to resolve signature of class decorator when called as an expression."),Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression:a(1239,e.DiagnosticCategory.Error,"Unable_to_resolve_signature_of_parameter_decorator_when_called_as_an_expression_1239","Unable to resolve signature of parameter decorator when called as an expression."),Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression:a(1240,e.DiagnosticCategory.Error,"Unable_to_resolve_signature_of_property_decorator_when_called_as_an_expression_1240","Unable to resolve signature of property decorator when called as an expression."),Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression:a(1241,e.DiagnosticCategory.Error,"Unable_to_resolve_signature_of_method_decorator_when_called_as_an_expression_1241","Unable to resolve signature of method decorator when called as an expression."),abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration:a(1242,e.DiagnosticCategory.Error,"abstract_modifier_can_only_appear_on_a_class_method_or_property_declaration_1242","'abstract' modifier can only appear on a class, method, or property declaration."),_0_modifier_cannot_be_used_with_1_modifier:a(1243,e.DiagnosticCategory.Error,"_0_modifier_cannot_be_used_with_1_modifier_1243","'{0}' modifier cannot be used with '{1}' modifier."),Abstract_methods_can_only_appear_within_an_abstract_class:a(1244,e.DiagnosticCategory.Error,"Abstract_methods_can_only_appear_within_an_abstract_class_1244","Abstract methods can only appear within an abstract class."),Method_0_cannot_have_an_implementation_because_it_is_marked_abstract:a(1245,e.DiagnosticCategory.Error,"Method_0_cannot_have_an_implementation_because_it_is_marked_abstract_1245","Method '{0}' cannot have an implementation because it is marked abstract."),An_interface_property_cannot_have_an_initializer:a(1246,e.DiagnosticCategory.Error,"An_interface_property_cannot_have_an_initializer_1246","An interface property cannot have an initializer."),A_type_literal_property_cannot_have_an_initializer:a(1247,e.DiagnosticCategory.Error,"A_type_literal_property_cannot_have_an_initializer_1247","A type literal property cannot have an initializer."),A_class_member_cannot_have_the_0_keyword:a(1248,e.DiagnosticCategory.Error,"A_class_member_cannot_have_the_0_keyword_1248","A class member cannot have the '{0}' keyword."),A_decorator_can_only_decorate_a_method_implementation_not_an_overload:a(1249,e.DiagnosticCategory.Error,"A_decorator_can_only_decorate_a_method_implementation_not_an_overload_1249","A decorator can only decorate a method implementation, not an overload."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5:a(1250,e.DiagnosticCategory.Error,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_1250","Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:a(1251,e.DiagnosticCategory.Error,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_d_1251","Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Class definitions are automatically in strict mode."),Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:a(1252,e.DiagnosticCategory.Error,"Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_1252","Function declarations are not allowed inside blocks in strict mode when targeting 'ES3' or 'ES5'. Modules are automatically in strict mode."),_0_tag_cannot_be_used_independently_as_a_top_level_JSDoc_tag:a(1253,e.DiagnosticCategory.Error,"_0_tag_cannot_be_used_independently_as_a_top_level_JSDoc_tag_1253","'{0}' tag cannot be used independently as a top level JSDoc tag."),A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference:a(1254,e.DiagnosticCategory.Error,"A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_refere_1254","A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference."),A_definite_assignment_assertion_is_not_permitted_in_this_context:a(1255,e.DiagnosticCategory.Error,"A_definite_assignment_assertion_is_not_permitted_in_this_context_1255","A definite assignment assertion '!' is not permitted in this context."),A_required_element_cannot_follow_an_optional_element:a(1257,e.DiagnosticCategory.Error,"A_required_element_cannot_follow_an_optional_element_1257","A required element cannot follow an optional element."),A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration:a(1258,e.DiagnosticCategory.Error,"A_default_export_must_be_at_the_top_level_of_a_file_or_module_declaration_1258","A default export must be at the top level of a file or module declaration."),Module_0_can_only_be_default_imported_using_the_1_flag:a(1259,e.DiagnosticCategory.Error,"Module_0_can_only_be_default_imported_using_the_1_flag_1259","Module '{0}' can only be default-imported using the '{1}' flag"),Keywords_cannot_contain_escape_characters:a(1260,e.DiagnosticCategory.Error,"Keywords_cannot_contain_escape_characters_1260","Keywords cannot contain escape characters."),Already_included_file_name_0_differs_from_file_name_1_only_in_casing:a(1261,e.DiagnosticCategory.Error,"Already_included_file_name_0_differs_from_file_name_1_only_in_casing_1261","Already included file name '{0}' differs from file name '{1}' only in casing."),Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module:a(1262,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module_1262","Identifier expected. '{0}' is a reserved word at the top-level of a module."),Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:a(1263,e.DiagnosticCategory.Error,"Declarations_with_initializers_cannot_also_have_definite_assignment_assertions_1263","Declarations with initializers cannot also have definite assignment assertions."),Declarations_with_definite_assignment_assertions_must_also_have_type_annotations:a(1264,e.DiagnosticCategory.Error,"Declarations_with_definite_assignment_assertions_must_also_have_type_annotations_1264","Declarations with definite assignment assertions must also have type annotations."),A_rest_element_cannot_follow_another_rest_element:a(1265,e.DiagnosticCategory.Error,"A_rest_element_cannot_follow_another_rest_element_1265","A rest element cannot follow another rest element."),An_optional_element_cannot_follow_a_rest_element:a(1266,e.DiagnosticCategory.Error,"An_optional_element_cannot_follow_a_rest_element_1266","An optional element cannot follow a rest element."),Property_0_cannot_have_an_initializer_because_it_is_marked_abstract:a(1267,e.DiagnosticCategory.Error,"Property_0_cannot_have_an_initializer_because_it_is_marked_abstract_1267","Property '{0}' cannot have an initializer because it is marked abstract."),An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type:a(1268,e.DiagnosticCategory.Error,"An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type_1268","An index signature parameter type must be 'string', 'number', 'symbol', or a template literal type."),with_statements_are_not_allowed_in_an_async_function_block:a(1300,e.DiagnosticCategory.Error,"with_statements_are_not_allowed_in_an_async_function_block_1300","'with' statements are not allowed in an async function block."),await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules:a(1308,e.DiagnosticCategory.Error,"await_expressions_are_only_allowed_within_async_functions_and_at_the_top_levels_of_modules_1308","'await' expressions are only allowed within async functions and at the top levels of modules."),Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern:a(1312,e.DiagnosticCategory.Error,"Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_1312","Did you mean to use a ':'? An '=' can only follow a property name when the containing object literal is part of a destructuring pattern."),The_body_of_an_if_statement_cannot_be_the_empty_statement:a(1313,e.DiagnosticCategory.Error,"The_body_of_an_if_statement_cannot_be_the_empty_statement_1313","The body of an 'if' statement cannot be the empty statement."),Global_module_exports_may_only_appear_in_module_files:a(1314,e.DiagnosticCategory.Error,"Global_module_exports_may_only_appear_in_module_files_1314","Global module exports may only appear in module files."),Global_module_exports_may_only_appear_in_declaration_files:a(1315,e.DiagnosticCategory.Error,"Global_module_exports_may_only_appear_in_declaration_files_1315","Global module exports may only appear in declaration files."),Global_module_exports_may_only_appear_at_top_level:a(1316,e.DiagnosticCategory.Error,"Global_module_exports_may_only_appear_at_top_level_1316","Global module exports may only appear at top level."),A_parameter_property_cannot_be_declared_using_a_rest_parameter:a(1317,e.DiagnosticCategory.Error,"A_parameter_property_cannot_be_declared_using_a_rest_parameter_1317","A parameter property cannot be declared using a rest parameter."),An_abstract_accessor_cannot_have_an_implementation:a(1318,e.DiagnosticCategory.Error,"An_abstract_accessor_cannot_have_an_implementation_1318","An abstract accessor cannot have an implementation."),A_default_export_can_only_be_used_in_an_ECMAScript_style_module:a(1319,e.DiagnosticCategory.Error,"A_default_export_can_only_be_used_in_an_ECMAScript_style_module_1319","A default export can only be used in an ECMAScript-style module."),Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1320,e.DiagnosticCategory.Error,"Type_of_await_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member_1320","Type of 'await' operand must either be a valid promise or must not contain a callable 'then' member."),Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1321,e.DiagnosticCategory.Error,"Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_cal_1321","Type of 'yield' operand in an async generator must either be a valid promise or must not contain a callable 'then' member."),Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:a(1322,e.DiagnosticCategory.Error,"Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_con_1322","Type of iterated elements of a 'yield*' operand must either be a valid promise or must not contain a callable 'then' member."),Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_esnext_commonjs_amd_system_or_umd:a(1323,e.DiagnosticCategory.Error,"Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_esnext_commonjs_amd_system__1323","Dynamic imports are only supported when the '--module' flag is set to 'es2020', 'esnext', 'commonjs', 'amd', 'system', or 'umd'."),Dynamic_import_must_have_one_specifier_as_an_argument:a(1324,e.DiagnosticCategory.Error,"Dynamic_import_must_have_one_specifier_as_an_argument_1324","Dynamic import must have one specifier as an argument."),Specifier_of_dynamic_import_cannot_be_spread_element:a(1325,e.DiagnosticCategory.Error,"Specifier_of_dynamic_import_cannot_be_spread_element_1325","Specifier of dynamic import cannot be spread element."),Dynamic_import_cannot_have_type_arguments:a(1326,e.DiagnosticCategory.Error,"Dynamic_import_cannot_have_type_arguments_1326","Dynamic import cannot have type arguments."),String_literal_with_double_quotes_expected:a(1327,e.DiagnosticCategory.Error,"String_literal_with_double_quotes_expected_1327","String literal with double quotes expected."),Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_literal:a(1328,e.DiagnosticCategory.Error,"Property_value_can_only_be_string_literal_numeric_literal_true_false_null_object_literal_or_array_li_1328","Property value can only be string literal, numeric literal, 'true', 'false', 'null', object literal or array literal."),_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0:a(1329,e.DiagnosticCategory.Error,"_0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write__1329","'{0}' accepts too few arguments to be used as a decorator here. Did you mean to call it first and write '@{0}()'?"),A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly:a(1330,e.DiagnosticCategory.Error,"A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly_1330","A property of an interface or type literal whose type is a 'unique symbol' type must be 'readonly'."),A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly:a(1331,e.DiagnosticCategory.Error,"A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly_1331","A property of a class whose type is a 'unique symbol' type must be both 'static' and 'readonly'."),A_variable_whose_type_is_a_unique_symbol_type_must_be_const:a(1332,e.DiagnosticCategory.Error,"A_variable_whose_type_is_a_unique_symbol_type_must_be_const_1332","A variable whose type is a 'unique symbol' type must be 'const'."),unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name:a(1333,e.DiagnosticCategory.Error,"unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name_1333","'unique symbol' types may not be used on a variable declaration with a binding name."),unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement:a(1334,e.DiagnosticCategory.Error,"unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement_1334","'unique symbol' types are only allowed on variables in a variable statement."),unique_symbol_types_are_not_allowed_here:a(1335,e.DiagnosticCategory.Error,"unique_symbol_types_are_not_allowed_here_1335","'unique symbol' types are not allowed here."),An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead:a(1337,e.DiagnosticCategory.Error,"An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_o_1337","An index signature parameter type cannot be a literal type or generic type. Consider using a mapped object type instead."),infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type:a(1338,e.DiagnosticCategory.Error,"infer_declarations_are_only_permitted_in_the_extends_clause_of_a_conditional_type_1338","'infer' declarations are only permitted in the 'extends' clause of a conditional type."),Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here:a(1339,e.DiagnosticCategory.Error,"Module_0_does_not_refer_to_a_value_but_is_used_as_a_value_here_1339","Module '{0}' does not refer to a value, but is used as a value here."),Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0:a(1340,e.DiagnosticCategory.Error,"Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0_1340","Module '{0}' does not refer to a type, but is used as a type here. Did you mean 'typeof import('{0}')'?"),Type_arguments_cannot_be_used_here:a(1342,e.DiagnosticCategory.Error,"Type_arguments_cannot_be_used_here_1342","Type arguments cannot be used here."),The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_esnext_or_system:a(1343,e.DiagnosticCategory.Error,"The_import_meta_meta_property_is_only_allowed_when_the_module_option_is_es2020_esnext_or_system_1343","The 'import.meta' meta-property is only allowed when the '--module' option is 'es2020', 'esnext', or 'system'."),A_label_is_not_allowed_here:a(1344,e.DiagnosticCategory.Error,"A_label_is_not_allowed_here_1344","'A label is not allowed here."),An_expression_of_type_void_cannot_be_tested_for_truthiness:a(1345,e.DiagnosticCategory.Error,"An_expression_of_type_void_cannot_be_tested_for_truthiness_1345","An expression of type 'void' cannot be tested for truthiness."),This_parameter_is_not_allowed_with_use_strict_directive:a(1346,e.DiagnosticCategory.Error,"This_parameter_is_not_allowed_with_use_strict_directive_1346","This parameter is not allowed with 'use strict' directive."),use_strict_directive_cannot_be_used_with_non_simple_parameter_list:a(1347,e.DiagnosticCategory.Error,"use_strict_directive_cannot_be_used_with_non_simple_parameter_list_1347","'use strict' directive cannot be used with non-simple parameter list."),Non_simple_parameter_declared_here:a(1348,e.DiagnosticCategory.Error,"Non_simple_parameter_declared_here_1348","Non-simple parameter declared here."),use_strict_directive_used_here:a(1349,e.DiagnosticCategory.Error,"use_strict_directive_used_here_1349","'use strict' directive used here."),Print_the_final_configuration_instead_of_building:a(1350,e.DiagnosticCategory.Message,"Print_the_final_configuration_instead_of_building_1350","Print the final configuration instead of building."),An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal:a(1351,e.DiagnosticCategory.Error,"An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal_1351","An identifier or keyword cannot immediately follow a numeric literal."),A_bigint_literal_cannot_use_exponential_notation:a(1352,e.DiagnosticCategory.Error,"A_bigint_literal_cannot_use_exponential_notation_1352","A bigint literal cannot use exponential notation."),A_bigint_literal_must_be_an_integer:a(1353,e.DiagnosticCategory.Error,"A_bigint_literal_must_be_an_integer_1353","A bigint literal must be an integer."),readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types:a(1354,e.DiagnosticCategory.Error,"readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types_1354","'readonly' type modifier is only permitted on array and tuple literal types."),A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array_or_object_literals:a(1355,e.DiagnosticCategory.Error,"A_const_assertions_can_only_be_applied_to_references_to_enum_members_or_string_number_boolean_array__1355","A 'const' assertions can only be applied to references to enum members, or string, number, boolean, array, or object literals."),Did_you_mean_to_mark_this_function_as_async:a(1356,e.DiagnosticCategory.Error,"Did_you_mean_to_mark_this_function_as_async_1356","Did you mean to mark this function as 'async'?"),An_enum_member_name_must_be_followed_by_a_or:a(1357,e.DiagnosticCategory.Error,"An_enum_member_name_must_be_followed_by_a_or_1357","An enum member name must be followed by a ',', '=', or '}'."),Tagged_template_expressions_are_not_permitted_in_an_optional_chain:a(1358,e.DiagnosticCategory.Error,"Tagged_template_expressions_are_not_permitted_in_an_optional_chain_1358","Tagged template expressions are not permitted in an optional chain."),Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:a(1359,e.DiagnosticCategory.Error,"Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here_1359","Identifier expected. '{0}' is a reserved word that cannot be used here."),Did_you_mean_to_parenthesize_this_function_type:a(1360,e.DiagnosticCategory.Error,"Did_you_mean_to_parenthesize_this_function_type_1360","Did you mean to parenthesize this function type?"),_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type:a(1361,e.DiagnosticCategory.Error,"_0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type_1361","'{0}' cannot be used as a value because it was imported using 'import type'."),_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:a(1362,e.DiagnosticCategory.Error,"_0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type_1362","'{0}' cannot be used as a value because it was exported using 'export type'."),A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both:a(1363,e.DiagnosticCategory.Error,"A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both_1363","A type-only import can specify a default import or named bindings, but not both."),Convert_to_type_only_export:a(1364,e.DiagnosticCategory.Message,"Convert_to_type_only_export_1364","Convert to type-only export"),Convert_all_re_exported_types_to_type_only_exports:a(1365,e.DiagnosticCategory.Message,"Convert_all_re_exported_types_to_type_only_exports_1365","Convert all re-exported types to type-only exports"),Split_into_two_separate_import_declarations:a(1366,e.DiagnosticCategory.Message,"Split_into_two_separate_import_declarations_1366","Split into two separate import declarations"),Split_all_invalid_type_only_imports:a(1367,e.DiagnosticCategory.Message,"Split_all_invalid_type_only_imports_1367","Split all invalid type-only imports"),Did_you_mean_0:a(1369,e.DiagnosticCategory.Message,"Did_you_mean_0_1369","Did you mean '{0}'?"),This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set_to_error:a(1371,e.DiagnosticCategory.Error,"This_import_is_never_used_as_a_value_and_must_use_import_type_because_importsNotUsedAsValues_is_set__1371","This import is never used as a value and must use 'import type' because 'importsNotUsedAsValues' is set to 'error'."),Convert_to_type_only_import:a(1373,e.DiagnosticCategory.Message,"Convert_to_type_only_import_1373","Convert to type-only import"),Convert_all_imports_not_used_as_a_value_to_type_only_imports:a(1374,e.DiagnosticCategory.Message,"Convert_all_imports_not_used_as_a_value_to_type_only_imports_1374","Convert all imports not used as a value to type-only imports"),await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:a(1375,e.DiagnosticCategory.Error,"await_expressions_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_fi_1375","'await' expressions are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),_0_was_imported_here:a(1376,e.DiagnosticCategory.Message,"_0_was_imported_here_1376","'{0}' was imported here."),_0_was_exported_here:a(1377,e.DiagnosticCategory.Message,"_0_was_exported_here_1377","'{0}' was exported here."),Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_esnext_or_system_and_the_target_option_is_set_to_es2017_or_higher:a(1378,e.DiagnosticCategory.Error,"Top_level_await_expressions_are_only_allowed_when_the_module_option_is_set_to_esnext_or_system_and_t_1378","Top-level 'await' expressions are only allowed when the 'module' option is set to 'esnext' or 'system', and the 'target' option is set to 'es2017' or higher."),An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type:a(1379,e.DiagnosticCategory.Error,"An_import_alias_cannot_reference_a_declaration_that_was_exported_using_export_type_1379","An import alias cannot reference a declaration that was exported using 'export type'."),An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type:a(1380,e.DiagnosticCategory.Error,"An_import_alias_cannot_reference_a_declaration_that_was_imported_using_import_type_1380","An import alias cannot reference a declaration that was imported using 'import type'."),Unexpected_token_Did_you_mean_or_rbrace:a(1381,e.DiagnosticCategory.Error,"Unexpected_token_Did_you_mean_or_rbrace_1381","Unexpected token. Did you mean `{'}'}` or `}`?"),Unexpected_token_Did_you_mean_or_gt:a(1382,e.DiagnosticCategory.Error,"Unexpected_token_Did_you_mean_or_gt_1382","Unexpected token. Did you mean `{'>'}` or `>`?"),Only_named_exports_may_use_export_type:a(1383,e.DiagnosticCategory.Error,"Only_named_exports_may_use_export_type_1383","Only named exports may use 'export type'."),A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list:a(1384,e.DiagnosticCategory.Error,"A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list_1384","A 'new' expression with type arguments must always be followed by a parenthesized argument list."),Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:a(1385,e.DiagnosticCategory.Error,"Function_type_notation_must_be_parenthesized_when_used_in_a_union_type_1385","Function type notation must be parenthesized when used in a union type."),Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:a(1386,e.DiagnosticCategory.Error,"Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type_1386","Constructor type notation must be parenthesized when used in a union type."),Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:a(1387,e.DiagnosticCategory.Error,"Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1387","Function type notation must be parenthesized when used in an intersection type."),Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:a(1388,e.DiagnosticCategory.Error,"Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type_1388","Constructor type notation must be parenthesized when used in an intersection type."),_0_is_not_allowed_as_a_variable_declaration_name:a(1389,e.DiagnosticCategory.Error,"_0_is_not_allowed_as_a_variable_declaration_name_1389","'{0}' is not allowed as a variable declaration name."),Provides_a_root_package_name_when_using_outFile_with_declarations:a(1390,e.DiagnosticCategory.Message,"Provides_a_root_package_name_when_using_outFile_with_declarations_1390","Provides a root package name when using outFile with declarations."),The_bundledPackageName_option_must_be_provided_when_using_outFile_and_node_module_resolution_with_declaration_emit:a(1391,e.DiagnosticCategory.Error,"The_bundledPackageName_option_must_be_provided_when_using_outFile_and_node_module_resolution_with_de_1391","The 'bundledPackageName' option must be provided when using outFile and node module resolution with declaration emit."),An_import_alias_cannot_use_import_type:a(1392,e.DiagnosticCategory.Error,"An_import_alias_cannot_use_import_type_1392","An import alias cannot use 'import type'"),Imported_via_0_from_file_1:a(1393,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_1393","Imported via {0} from file '{1}'"),Imported_via_0_from_file_1_with_packageId_2:a(1394,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_with_packageId_2_1394","Imported via {0} from file '{1}' with packageId '{2}'"),Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions:a(1395,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_to_import_importHelpers_as_specified_in_compilerOptions_1395","Imported via {0} from file '{1}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions:a(1396,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_with_packageId_2_to_import_importHelpers_as_specified_in_compilerOptions_1396","Imported via {0} from file '{1}' with packageId '{2}' to import 'importHelpers' as specified in compilerOptions"),Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions:a(1397,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_to_import_jsx_and_jsxs_factory_functions_1397","Imported via {0} from file '{1}' to import 'jsx' and 'jsxs' factory functions"),Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions:a(1398,e.DiagnosticCategory.Message,"Imported_via_0_from_file_1_with_packageId_2_to_import_jsx_and_jsxs_factory_functions_1398","Imported via {0} from file '{1}' with packageId '{2}' to import 'jsx' and 'jsxs' factory functions"),File_is_included_via_import_here:a(1399,e.DiagnosticCategory.Message,"File_is_included_via_import_here_1399","File is included via import here."),Referenced_via_0_from_file_1:a(1400,e.DiagnosticCategory.Message,"Referenced_via_0_from_file_1_1400","Referenced via '{0}' from file '{1}'"),File_is_included_via_reference_here:a(1401,e.DiagnosticCategory.Message,"File_is_included_via_reference_here_1401","File is included via reference here."),Type_library_referenced_via_0_from_file_1:a(1402,e.DiagnosticCategory.Message,"Type_library_referenced_via_0_from_file_1_1402","Type library referenced via '{0}' from file '{1}'"),Type_library_referenced_via_0_from_file_1_with_packageId_2:a(1403,e.DiagnosticCategory.Message,"Type_library_referenced_via_0_from_file_1_with_packageId_2_1403","Type library referenced via '{0}' from file '{1}' with packageId '{2}'"),File_is_included_via_type_library_reference_here:a(1404,e.DiagnosticCategory.Message,"File_is_included_via_type_library_reference_here_1404","File is included via type library reference here."),Library_referenced_via_0_from_file_1:a(1405,e.DiagnosticCategory.Message,"Library_referenced_via_0_from_file_1_1405","Library referenced via '{0}' from file '{1}'"),File_is_included_via_library_reference_here:a(1406,e.DiagnosticCategory.Message,"File_is_included_via_library_reference_here_1406","File is included via library reference here."),Matched_by_include_pattern_0_in_1:a(1407,e.DiagnosticCategory.Message,"Matched_by_include_pattern_0_in_1_1407","Matched by include pattern '{0}' in '{1}'"),File_is_matched_by_include_pattern_specified_here:a(1408,e.DiagnosticCategory.Message,"File_is_matched_by_include_pattern_specified_here_1408","File is matched by include pattern specified here."),Part_of_files_list_in_tsconfig_json:a(1409,e.DiagnosticCategory.Message,"Part_of_files_list_in_tsconfig_json_1409","Part of 'files' list in tsconfig.json"),File_is_matched_by_files_list_specified_here:a(1410,e.DiagnosticCategory.Message,"File_is_matched_by_files_list_specified_here_1410","File is matched by 'files' list specified here."),Output_from_referenced_project_0_included_because_1_specified:a(1411,e.DiagnosticCategory.Message,"Output_from_referenced_project_0_included_because_1_specified_1411","Output from referenced project '{0}' included because '{1}' specified"),Output_from_referenced_project_0_included_because_module_is_specified_as_none:a(1412,e.DiagnosticCategory.Message,"Output_from_referenced_project_0_included_because_module_is_specified_as_none_1412","Output from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_output_from_referenced_project_specified_here:a(1413,e.DiagnosticCategory.Message,"File_is_output_from_referenced_project_specified_here_1413","File is output from referenced project specified here."),Source_from_referenced_project_0_included_because_1_specified:a(1414,e.DiagnosticCategory.Message,"Source_from_referenced_project_0_included_because_1_specified_1414","Source from referenced project '{0}' included because '{1}' specified"),Source_from_referenced_project_0_included_because_module_is_specified_as_none:a(1415,e.DiagnosticCategory.Message,"Source_from_referenced_project_0_included_because_module_is_specified_as_none_1415","Source from referenced project '{0}' included because '--module' is specified as 'none'"),File_is_source_from_referenced_project_specified_here:a(1416,e.DiagnosticCategory.Message,"File_is_source_from_referenced_project_specified_here_1416","File is source from referenced project specified here."),Entry_point_of_type_library_0_specified_in_compilerOptions:a(1417,e.DiagnosticCategory.Message,"Entry_point_of_type_library_0_specified_in_compilerOptions_1417","Entry point of type library '{0}' specified in compilerOptions"),Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1:a(1418,e.DiagnosticCategory.Message,"Entry_point_of_type_library_0_specified_in_compilerOptions_with_packageId_1_1418","Entry point of type library '{0}' specified in compilerOptions with packageId '{1}'"),File_is_entry_point_of_type_library_specified_here:a(1419,e.DiagnosticCategory.Message,"File_is_entry_point_of_type_library_specified_here_1419","File is entry point of type library specified here."),Entry_point_for_implicit_type_library_0:a(1420,e.DiagnosticCategory.Message,"Entry_point_for_implicit_type_library_0_1420","Entry point for implicit type library '{0}'"),Entry_point_for_implicit_type_library_0_with_packageId_1:a(1421,e.DiagnosticCategory.Message,"Entry_point_for_implicit_type_library_0_with_packageId_1_1421","Entry point for implicit type library '{0}' with packageId '{1}'"),Library_0_specified_in_compilerOptions:a(1422,e.DiagnosticCategory.Message,"Library_0_specified_in_compilerOptions_1422","Library '{0}' specified in compilerOptions"),File_is_library_specified_here:a(1423,e.DiagnosticCategory.Message,"File_is_library_specified_here_1423","File is library specified here."),Default_library:a(1424,e.DiagnosticCategory.Message,"Default_library_1424","Default library"),Default_library_for_target_0:a(1425,e.DiagnosticCategory.Message,"Default_library_for_target_0_1425","Default library for target '{0}'"),File_is_default_library_for_target_specified_here:a(1426,e.DiagnosticCategory.Message,"File_is_default_library_for_target_specified_here_1426","File is default library for target specified here."),Root_file_specified_for_compilation:a(1427,e.DiagnosticCategory.Message,"Root_file_specified_for_compilation_1427","Root file specified for compilation"),File_is_output_of_project_reference_source_0:a(1428,e.DiagnosticCategory.Message,"File_is_output_of_project_reference_source_0_1428","File is output of project reference source '{0}'"),File_redirects_to_file_0:a(1429,e.DiagnosticCategory.Message,"File_redirects_to_file_0_1429","File redirects to file '{0}'"),The_file_is_in_the_program_because_Colon:a(1430,e.DiagnosticCategory.Message,"The_file_is_in_the_program_because_Colon_1430","The file is in the program because:"),for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_has_no_imports_or_exports_Consider_adding_an_empty_export_to_make_this_file_a_module:a(1431,e.DiagnosticCategory.Error,"for_await_loops_are_only_allowed_at_the_top_level_of_a_file_when_that_file_is_a_module_but_this_file_1431","'for await' loops are only allowed at the top level of a file when that file is a module, but this file has no imports or exports. Consider adding an empty 'export {}' to make this file a module."),Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_esnext_or_system_and_the_target_option_is_set_to_es2017_or_higher:a(1432,e.DiagnosticCategory.Error,"Top_level_for_await_loops_are_only_allowed_when_the_module_option_is_set_to_esnext_or_system_and_the_1432","Top-level 'for await' loops are only allowed when the 'module' option is set to 'esnext' or 'system', and the 'target' option is set to 'es2017' or higher."),Decorators_may_not_be_applied_to_this_parameters:a(1433,e.DiagnosticCategory.Error,"Decorators_may_not_be_applied_to_this_parameters_1433","Decorators may not be applied to 'this' parameters."),Unexpected_keyword_or_identifier:a(1434,e.DiagnosticCategory.Error,"Unexpected_keyword_or_identifier_1434","Unexpected keyword or identifier."),Unknown_keyword_or_identifier_Did_you_mean_0:a(1435,e.DiagnosticCategory.Error,"Unknown_keyword_or_identifier_Did_you_mean_0_1435","Unknown keyword or identifier. Did you mean '{0}'?"),Decorators_must_precede_the_name_and_all_keywords_of_property_declarations:a(1436,e.DiagnosticCategory.Error,"Decorators_must_precede_the_name_and_all_keywords_of_property_declarations_1436","Decorators must precede the name and all keywords of property declarations."),Namespace_must_be_given_a_name:a(1437,e.DiagnosticCategory.Error,"Namespace_must_be_given_a_name_1437","Namespace must be given a name."),Interface_must_be_given_a_name:a(1438,e.DiagnosticCategory.Error,"Interface_must_be_given_a_name_1438","Interface must be given a name."),Type_alias_must_be_given_a_name:a(1439,e.DiagnosticCategory.Error,"Type_alias_must_be_given_a_name_1439","Type alias must be given a name."),Variable_declaration_not_allowed_at_this_location:a(1440,e.DiagnosticCategory.Error,"Variable_declaration_not_allowed_at_this_location_1440","Variable declaration not allowed at this location."),Cannot_start_a_function_call_in_a_type_annotation:a(1441,e.DiagnosticCategory.Error,"Cannot_start_a_function_call_in_a_type_annotation_1441","Cannot start a function call in a type annotation."),Expected_for_property_initializer:a(1442,e.DiagnosticCategory.Error,"Expected_for_property_initializer_1442","Expected '=' for property initializer."),Module_declaration_names_may_only_use_or_quoted_strings:a(1443,e.DiagnosticCategory.Error,"Module_declaration_names_may_only_use_or_quoted_strings_1443",`Module declaration names may only use ' or " quoted strings.`),The_types_of_0_are_incompatible_between_these_types:a(2200,e.DiagnosticCategory.Error,"The_types_of_0_are_incompatible_between_these_types_2200","The types of '{0}' are incompatible between these types."),The_types_returned_by_0_are_incompatible_between_these_types:a(2201,e.DiagnosticCategory.Error,"The_types_returned_by_0_are_incompatible_between_these_types_2201","The types returned by '{0}' are incompatible between these types."),Call_signature_return_types_0_and_1_are_incompatible:a(2202,e.DiagnosticCategory.Error,"Call_signature_return_types_0_and_1_are_incompatible_2202","Call signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Construct_signature_return_types_0_and_1_are_incompatible:a(2203,e.DiagnosticCategory.Error,"Construct_signature_return_types_0_and_1_are_incompatible_2203","Construct signature return types '{0}' and '{1}' are incompatible.",void 0,!0),Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:a(2204,e.DiagnosticCategory.Error,"Call_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2204","Call signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1:a(2205,e.DiagnosticCategory.Error,"Construct_signatures_with_no_arguments_have_incompatible_return_types_0_and_1_2205","Construct signatures with no arguments have incompatible return types '{0}' and '{1}'.",void 0,!0),Duplicate_identifier_0:a(2300,e.DiagnosticCategory.Error,"Duplicate_identifier_0_2300","Duplicate identifier '{0}'."),Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor:a(2301,e.DiagnosticCategory.Error,"Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor_2301","Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor."),Static_members_cannot_reference_class_type_parameters:a(2302,e.DiagnosticCategory.Error,"Static_members_cannot_reference_class_type_parameters_2302","Static members cannot reference class type parameters."),Circular_definition_of_import_alias_0:a(2303,e.DiagnosticCategory.Error,"Circular_definition_of_import_alias_0_2303","Circular definition of import alias '{0}'."),Cannot_find_name_0:a(2304,e.DiagnosticCategory.Error,"Cannot_find_name_0_2304","Cannot find name '{0}'."),Module_0_has_no_exported_member_1:a(2305,e.DiagnosticCategory.Error,"Module_0_has_no_exported_member_1_2305","Module '{0}' has no exported member '{1}'."),File_0_is_not_a_module:a(2306,e.DiagnosticCategory.Error,"File_0_is_not_a_module_2306","File '{0}' is not a module."),Cannot_find_module_0_or_its_corresponding_type_declarations:a(2307,e.DiagnosticCategory.Error,"Cannot_find_module_0_or_its_corresponding_type_declarations_2307","Cannot find module '{0}' or its corresponding type declarations."),Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambiguity:a(2308,e.DiagnosticCategory.Error,"Module_0_has_already_exported_a_member_named_1_Consider_explicitly_re_exporting_to_resolve_the_ambig_2308","Module {0} has already exported a member named '{1}'. Consider explicitly re-exporting to resolve the ambiguity."),An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements:a(2309,e.DiagnosticCategory.Error,"An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements_2309","An export assignment cannot be used in a module with other exported elements."),Type_0_recursively_references_itself_as_a_base_type:a(2310,e.DiagnosticCategory.Error,"Type_0_recursively_references_itself_as_a_base_type_2310","Type '{0}' recursively references itself as a base type."),A_class_may_only_extend_another_class:a(2311,e.DiagnosticCategory.Error,"A_class_may_only_extend_another_class_2311","A class may only extend another class."),An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_members:a(2312,e.DiagnosticCategory.Error,"An_interface_can_only_extend_an_object_type_or_intersection_of_object_types_with_statically_known_me_2312","An interface can only extend an object type or intersection of object types with statically known members."),Type_parameter_0_has_a_circular_constraint:a(2313,e.DiagnosticCategory.Error,"Type_parameter_0_has_a_circular_constraint_2313","Type parameter '{0}' has a circular constraint."),Generic_type_0_requires_1_type_argument_s:a(2314,e.DiagnosticCategory.Error,"Generic_type_0_requires_1_type_argument_s_2314","Generic type '{0}' requires {1} type argument(s)."),Type_0_is_not_generic:a(2315,e.DiagnosticCategory.Error,"Type_0_is_not_generic_2315","Type '{0}' is not generic."),Global_type_0_must_be_a_class_or_interface_type:a(2316,e.DiagnosticCategory.Error,"Global_type_0_must_be_a_class_or_interface_type_2316","Global type '{0}' must be a class or interface type."),Global_type_0_must_have_1_type_parameter_s:a(2317,e.DiagnosticCategory.Error,"Global_type_0_must_have_1_type_parameter_s_2317","Global type '{0}' must have {1} type parameter(s)."),Cannot_find_global_type_0:a(2318,e.DiagnosticCategory.Error,"Cannot_find_global_type_0_2318","Cannot find global type '{0}'."),Named_property_0_of_types_1_and_2_are_not_identical:a(2319,e.DiagnosticCategory.Error,"Named_property_0_of_types_1_and_2_are_not_identical_2319","Named property '{0}' of types '{1}' and '{2}' are not identical."),Interface_0_cannot_simultaneously_extend_types_1_and_2:a(2320,e.DiagnosticCategory.Error,"Interface_0_cannot_simultaneously_extend_types_1_and_2_2320","Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'."),Excessive_stack_depth_comparing_types_0_and_1:a(2321,e.DiagnosticCategory.Error,"Excessive_stack_depth_comparing_types_0_and_1_2321","Excessive stack depth comparing types '{0}' and '{1}'."),Type_0_is_not_assignable_to_type_1:a(2322,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_2322","Type '{0}' is not assignable to type '{1}'."),Cannot_redeclare_exported_variable_0:a(2323,e.DiagnosticCategory.Error,"Cannot_redeclare_exported_variable_0_2323","Cannot redeclare exported variable '{0}'."),Property_0_is_missing_in_type_1:a(2324,e.DiagnosticCategory.Error,"Property_0_is_missing_in_type_1_2324","Property '{0}' is missing in type '{1}'."),Property_0_is_private_in_type_1_but_not_in_type_2:a(2325,e.DiagnosticCategory.Error,"Property_0_is_private_in_type_1_but_not_in_type_2_2325","Property '{0}' is private in type '{1}' but not in type '{2}'."),Types_of_property_0_are_incompatible:a(2326,e.DiagnosticCategory.Error,"Types_of_property_0_are_incompatible_2326","Types of property '{0}' are incompatible."),Property_0_is_optional_in_type_1_but_required_in_type_2:a(2327,e.DiagnosticCategory.Error,"Property_0_is_optional_in_type_1_but_required_in_type_2_2327","Property '{0}' is optional in type '{1}' but required in type '{2}'."),Types_of_parameters_0_and_1_are_incompatible:a(2328,e.DiagnosticCategory.Error,"Types_of_parameters_0_and_1_are_incompatible_2328","Types of parameters '{0}' and '{1}' are incompatible."),Index_signature_for_type_0_is_missing_in_type_1:a(2329,e.DiagnosticCategory.Error,"Index_signature_for_type_0_is_missing_in_type_1_2329","Index signature for type '{0}' is missing in type '{1}'."),_0_and_1_index_signatures_are_incompatible:a(2330,e.DiagnosticCategory.Error,"_0_and_1_index_signatures_are_incompatible_2330","'{0}' and '{1}' index signatures are incompatible."),this_cannot_be_referenced_in_a_module_or_namespace_body:a(2331,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_a_module_or_namespace_body_2331","'this' cannot be referenced in a module or namespace body."),this_cannot_be_referenced_in_current_location:a(2332,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_current_location_2332","'this' cannot be referenced in current location."),this_cannot_be_referenced_in_constructor_arguments:a(2333,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_constructor_arguments_2333","'this' cannot be referenced in constructor arguments."),this_cannot_be_referenced_in_a_static_property_initializer:a(2334,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_a_static_property_initializer_2334","'this' cannot be referenced in a static property initializer."),super_can_only_be_referenced_in_a_derived_class:a(2335,e.DiagnosticCategory.Error,"super_can_only_be_referenced_in_a_derived_class_2335","'super' can only be referenced in a derived class."),super_cannot_be_referenced_in_constructor_arguments:a(2336,e.DiagnosticCategory.Error,"super_cannot_be_referenced_in_constructor_arguments_2336","'super' cannot be referenced in constructor arguments."),Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors:a(2337,e.DiagnosticCategory.Error,"Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors_2337","Super calls are not permitted outside constructors or in nested functions inside constructors."),super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class:a(2338,e.DiagnosticCategory.Error,"super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_der_2338","'super' property access is permitted only in a constructor, member function, or member accessor of a derived class."),Property_0_does_not_exist_on_type_1:a(2339,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_2339","Property '{0}' does not exist on type '{1}'."),Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword:a(2340,e.DiagnosticCategory.Error,"Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword_2340","Only public and protected methods of the base class are accessible via the 'super' keyword."),Property_0_is_private_and_only_accessible_within_class_1:a(2341,e.DiagnosticCategory.Error,"Property_0_is_private_and_only_accessible_within_class_1_2341","Property '{0}' is private and only accessible within class '{1}'."),An_index_expression_argument_must_be_of_type_string_number_symbol_or_any:a(2342,e.DiagnosticCategory.Error,"An_index_expression_argument_must_be_of_type_string_number_symbol_or_any_2342","An index expression argument must be of type 'string', 'number', 'symbol', or 'any'."),This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0:a(2343,e.DiagnosticCategory.Error,"This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_ve_2343","This syntax requires an imported helper named '{1}' which does not exist in '{0}'. Consider upgrading your version of '{0}'."),Type_0_does_not_satisfy_the_constraint_1:a(2344,e.DiagnosticCategory.Error,"Type_0_does_not_satisfy_the_constraint_1_2344","Type '{0}' does not satisfy the constraint '{1}'."),Argument_of_type_0_is_not_assignable_to_parameter_of_type_1:a(2345,e.DiagnosticCategory.Error,"Argument_of_type_0_is_not_assignable_to_parameter_of_type_1_2345","Argument of type '{0}' is not assignable to parameter of type '{1}'."),Call_target_does_not_contain_any_signatures:a(2346,e.DiagnosticCategory.Error,"Call_target_does_not_contain_any_signatures_2346","Call target does not contain any signatures."),Untyped_function_calls_may_not_accept_type_arguments:a(2347,e.DiagnosticCategory.Error,"Untyped_function_calls_may_not_accept_type_arguments_2347","Untyped function calls may not accept type arguments."),Value_of_type_0_is_not_callable_Did_you_mean_to_include_new:a(2348,e.DiagnosticCategory.Error,"Value_of_type_0_is_not_callable_Did_you_mean_to_include_new_2348","Value of type '{0}' is not callable. Did you mean to include 'new'?"),This_expression_is_not_callable:a(2349,e.DiagnosticCategory.Error,"This_expression_is_not_callable_2349","This expression is not callable."),Only_a_void_function_can_be_called_with_the_new_keyword:a(2350,e.DiagnosticCategory.Error,"Only_a_void_function_can_be_called_with_the_new_keyword_2350","Only a void function can be called with the 'new' keyword."),This_expression_is_not_constructable:a(2351,e.DiagnosticCategory.Error,"This_expression_is_not_constructable_2351","This expression is not constructable."),Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the_other_If_this_was_intentional_convert_the_expression_to_unknown_first:a(2352,e.DiagnosticCategory.Error,"Conversion_of_type_0_to_type_1_may_be_a_mistake_because_neither_type_sufficiently_overlaps_with_the__2352","Conversion of type '{0}' to type '{1}' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first."),Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1:a(2353,e.DiagnosticCategory.Error,"Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1_2353","Object literal may only specify known properties, and '{0}' does not exist in type '{1}'."),This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found:a(2354,e.DiagnosticCategory.Error,"This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found_2354","This syntax requires an imported helper but module '{0}' cannot be found."),A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value:a(2355,e.DiagnosticCategory.Error,"A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_2355","A function whose declared type is neither 'void' nor 'any' must return a value."),An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type:a(2356,e.DiagnosticCategory.Error,"An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type_2356","An arithmetic operand must be of type 'any', 'number', 'bigint' or an enum type."),The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access:a(2357,e.DiagnosticCategory.Error,"The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_or_a_property_access_2357","The operand of an increment or decrement operator must be a variable or a property access."),The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter:a(2358,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_paramete_2358","The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter."),The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type:a(2359,e.DiagnosticCategory.Error,"The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_F_2359","The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type."),The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol:a(2360,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_in_expression_must_be_of_type_any_string_number_or_symbol_2360","The left-hand side of an 'in' expression must be of type 'any', 'string', 'number', or 'symbol'."),The_right_hand_side_of_an_in_expression_must_not_be_a_primitive:a(2361,e.DiagnosticCategory.Error,"The_right_hand_side_of_an_in_expression_must_not_be_a_primitive_2361","The right-hand side of an 'in' expression must not be a primitive."),The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:a(2362,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2362","The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type:a(2363,e.DiagnosticCategory.Error,"The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type_2363","The right-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type."),The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access:a(2364,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_assignment_expression_must_be_a_variable_or_a_property_access_2364","The left-hand side of an assignment expression must be a variable or a property access."),Operator_0_cannot_be_applied_to_types_1_and_2:a(2365,e.DiagnosticCategory.Error,"Operator_0_cannot_be_applied_to_types_1_and_2_2365","Operator '{0}' cannot be applied to types '{1}' and '{2}'."),Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined:a(2366,e.DiagnosticCategory.Error,"Function_lacks_ending_return_statement_and_return_type_does_not_include_undefined_2366","Function lacks ending return statement and return type does not include 'undefined'."),This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap:a(2367,e.DiagnosticCategory.Error,"This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap_2367","This condition will always return '{0}' since the types '{1}' and '{2}' have no overlap."),Type_parameter_name_cannot_be_0:a(2368,e.DiagnosticCategory.Error,"Type_parameter_name_cannot_be_0_2368","Type parameter name cannot be '{0}'."),A_parameter_property_is_only_allowed_in_a_constructor_implementation:a(2369,e.DiagnosticCategory.Error,"A_parameter_property_is_only_allowed_in_a_constructor_implementation_2369","A parameter property is only allowed in a constructor implementation."),A_rest_parameter_must_be_of_an_array_type:a(2370,e.DiagnosticCategory.Error,"A_rest_parameter_must_be_of_an_array_type_2370","A rest parameter must be of an array type."),A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation:a(2371,e.DiagnosticCategory.Error,"A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation_2371","A parameter initializer is only allowed in a function or constructor implementation."),Parameter_0_cannot_reference_itself:a(2372,e.DiagnosticCategory.Error,"Parameter_0_cannot_reference_itself_2372","Parameter '{0}' cannot reference itself."),Parameter_0_cannot_reference_identifier_1_declared_after_it:a(2373,e.DiagnosticCategory.Error,"Parameter_0_cannot_reference_identifier_1_declared_after_it_2373","Parameter '{0}' cannot reference identifier '{1}' declared after it."),Duplicate_index_signature_for_type_0:a(2374,e.DiagnosticCategory.Error,"Duplicate_index_signature_for_type_0_2374","Duplicate index signature for type '{0}'."),A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_parameter_properties_or_private_identifiers:a(2376,e.DiagnosticCategory.Error,"A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_proper_2376","A 'super' call must be the first statement in the constructor when a class contains initialized properties, parameter properties, or private identifiers."),Constructors_for_derived_classes_must_contain_a_super_call:a(2377,e.DiagnosticCategory.Error,"Constructors_for_derived_classes_must_contain_a_super_call_2377","Constructors for derived classes must contain a 'super' call."),A_get_accessor_must_return_a_value:a(2378,e.DiagnosticCategory.Error,"A_get_accessor_must_return_a_value_2378","A 'get' accessor must return a value."),The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type:a(2380,e.DiagnosticCategory.Error,"The_return_type_of_a_get_accessor_must_be_assignable_to_its_set_accessor_type_2380","The return type of a 'get' accessor must be assignable to its 'set' accessor type"),A_signature_with_an_implementation_cannot_use_a_string_literal_type:a(2381,e.DiagnosticCategory.Error,"A_signature_with_an_implementation_cannot_use_a_string_literal_type_2381","A signature with an implementation cannot use a string literal type."),Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature:a(2382,e.DiagnosticCategory.Error,"Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature_2382","Specialized overload signature is not assignable to any non-specialized signature."),Overload_signatures_must_all_be_exported_or_non_exported:a(2383,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_exported_or_non_exported_2383","Overload signatures must all be exported or non-exported."),Overload_signatures_must_all_be_ambient_or_non_ambient:a(2384,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_ambient_or_non_ambient_2384","Overload signatures must all be ambient or non-ambient."),Overload_signatures_must_all_be_public_private_or_protected:a(2385,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_public_private_or_protected_2385","Overload signatures must all be public, private or protected."),Overload_signatures_must_all_be_optional_or_required:a(2386,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_optional_or_required_2386","Overload signatures must all be optional or required."),Function_overload_must_be_static:a(2387,e.DiagnosticCategory.Error,"Function_overload_must_be_static_2387","Function overload must be static."),Function_overload_must_not_be_static:a(2388,e.DiagnosticCategory.Error,"Function_overload_must_not_be_static_2388","Function overload must not be static."),Function_implementation_name_must_be_0:a(2389,e.DiagnosticCategory.Error,"Function_implementation_name_must_be_0_2389","Function implementation name must be '{0}'."),Constructor_implementation_is_missing:a(2390,e.DiagnosticCategory.Error,"Constructor_implementation_is_missing_2390","Constructor implementation is missing."),Function_implementation_is_missing_or_not_immediately_following_the_declaration:a(2391,e.DiagnosticCategory.Error,"Function_implementation_is_missing_or_not_immediately_following_the_declaration_2391","Function implementation is missing or not immediately following the declaration."),Multiple_constructor_implementations_are_not_allowed:a(2392,e.DiagnosticCategory.Error,"Multiple_constructor_implementations_are_not_allowed_2392","Multiple constructor implementations are not allowed."),Duplicate_function_implementation:a(2393,e.DiagnosticCategory.Error,"Duplicate_function_implementation_2393","Duplicate function implementation."),This_overload_signature_is_not_compatible_with_its_implementation_signature:a(2394,e.DiagnosticCategory.Error,"This_overload_signature_is_not_compatible_with_its_implementation_signature_2394","This overload signature is not compatible with its implementation signature."),Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local:a(2395,e.DiagnosticCategory.Error,"Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local_2395","Individual declarations in merged declaration '{0}' must be all exported or all local."),Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters:a(2396,e.DiagnosticCategory.Error,"Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters_2396","Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters."),Declaration_name_conflicts_with_built_in_global_identifier_0:a(2397,e.DiagnosticCategory.Error,"Declaration_name_conflicts_with_built_in_global_identifier_0_2397","Declaration name conflicts with built-in global identifier '{0}'."),constructor_cannot_be_used_as_a_parameter_property_name:a(2398,e.DiagnosticCategory.Error,"constructor_cannot_be_used_as_a_parameter_property_name_2398","'constructor' cannot be used as a parameter property name."),Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference:a(2399,e.DiagnosticCategory.Error,"Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference_2399","Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference."),Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference:a(2400,e.DiagnosticCategory.Error,"Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference_2400","Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference."),Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference:a(2401,e.DiagnosticCategory.Error,"Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference_2401","Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference."),Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference:a(2402,e.DiagnosticCategory.Error,"Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference_2402","Expression resolves to '_super' that compiler uses to capture base class reference."),Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2:a(2403,e.DiagnosticCategory.Error,"Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_t_2403","Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'."),The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:a(2404,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation_2404","The left-hand side of a 'for...in' statement cannot use a type annotation."),The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any:a(2405,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any_2405","The left-hand side of a 'for...in' statement must be of type 'string' or 'any'."),The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access:a(2406,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access_2406","The left-hand side of a 'for...in' statement must be a variable or a property access."),The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0:a(2407,e.DiagnosticCategory.Error,"The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_2407","The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter, but here has type '{0}'."),Setters_cannot_return_a_value:a(2408,e.DiagnosticCategory.Error,"Setters_cannot_return_a_value_2408","Setters cannot return a value."),Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class:a(2409,e.DiagnosticCategory.Error,"Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class_2409","Return type of constructor signature must be assignable to the instance type of the class."),The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any:a(2410,e.DiagnosticCategory.Error,"The_with_statement_is_not_supported_All_symbols_in_a_with_block_will_have_type_any_2410","The 'with' statement is not supported. All symbols in a 'with' block will have type 'any'."),Property_0_of_type_1_is_not_assignable_to_2_index_type_3:a(2411,e.DiagnosticCategory.Error,"Property_0_of_type_1_is_not_assignable_to_2_index_type_3_2411","Property '{0}' of type '{1}' is not assignable to '{2}' index type '{3}'."),_0_index_type_1_is_not_assignable_to_2_index_type_3:a(2413,e.DiagnosticCategory.Error,"_0_index_type_1_is_not_assignable_to_2_index_type_3_2413","'{0}' index type '{1}' is not assignable to '{2}' index type '{3}'."),Class_name_cannot_be_0:a(2414,e.DiagnosticCategory.Error,"Class_name_cannot_be_0_2414","Class name cannot be '{0}'."),Class_0_incorrectly_extends_base_class_1:a(2415,e.DiagnosticCategory.Error,"Class_0_incorrectly_extends_base_class_1_2415","Class '{0}' incorrectly extends base class '{1}'."),Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2:a(2416,e.DiagnosticCategory.Error,"Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2_2416","Property '{0}' in type '{1}' is not assignable to the same property in base type '{2}'."),Class_static_side_0_incorrectly_extends_base_class_static_side_1:a(2417,e.DiagnosticCategory.Error,"Class_static_side_0_incorrectly_extends_base_class_static_side_1_2417","Class static side '{0}' incorrectly extends base class static side '{1}'."),Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1:a(2418,e.DiagnosticCategory.Error,"Type_of_computed_property_s_value_is_0_which_is_not_assignable_to_type_1_2418","Type of computed property's value is '{0}', which is not assignable to type '{1}'."),Types_of_construct_signatures_are_incompatible:a(2419,e.DiagnosticCategory.Error,"Types_of_construct_signatures_are_incompatible_2419","Types of construct signatures are incompatible."),Class_0_incorrectly_implements_interface_1:a(2420,e.DiagnosticCategory.Error,"Class_0_incorrectly_implements_interface_1_2420","Class '{0}' incorrectly implements interface '{1}'."),A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_members:a(2422,e.DiagnosticCategory.Error,"A_class_can_only_implement_an_object_type_or_intersection_of_object_types_with_statically_known_memb_2422","A class can only implement an object type or intersection of object types with statically known members."),Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor:a(2423,e.DiagnosticCategory.Error,"Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_access_2423","Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor."),Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function:a(2425,e.DiagnosticCategory.Error,"Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_functi_2425","Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function."),Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function:a(2426,e.DiagnosticCategory.Error,"Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_functi_2426","Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function."),Interface_name_cannot_be_0:a(2427,e.DiagnosticCategory.Error,"Interface_name_cannot_be_0_2427","Interface name cannot be '{0}'."),All_declarations_of_0_must_have_identical_type_parameters:a(2428,e.DiagnosticCategory.Error,"All_declarations_of_0_must_have_identical_type_parameters_2428","All declarations of '{0}' must have identical type parameters."),Interface_0_incorrectly_extends_interface_1:a(2430,e.DiagnosticCategory.Error,"Interface_0_incorrectly_extends_interface_1_2430","Interface '{0}' incorrectly extends interface '{1}'."),Enum_name_cannot_be_0:a(2431,e.DiagnosticCategory.Error,"Enum_name_cannot_be_0_2431","Enum name cannot be '{0}'."),In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element:a(2432,e.DiagnosticCategory.Error,"In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enu_2432","In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element."),A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged:a(2433,e.DiagnosticCategory.Error,"A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merg_2433","A namespace declaration cannot be in a different file from a class or function with which it is merged."),A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged:a(2434,e.DiagnosticCategory.Error,"A_namespace_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged_2434","A namespace declaration cannot be located prior to a class or function with which it is merged."),Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces:a(2435,e.DiagnosticCategory.Error,"Ambient_modules_cannot_be_nested_in_other_modules_or_namespaces_2435","Ambient modules cannot be nested in other modules or namespaces."),Ambient_module_declaration_cannot_specify_relative_module_name:a(2436,e.DiagnosticCategory.Error,"Ambient_module_declaration_cannot_specify_relative_module_name_2436","Ambient module declaration cannot specify relative module name."),Module_0_is_hidden_by_a_local_declaration_with_the_same_name:a(2437,e.DiagnosticCategory.Error,"Module_0_is_hidden_by_a_local_declaration_with_the_same_name_2437","Module '{0}' is hidden by a local declaration with the same name."),Import_name_cannot_be_0:a(2438,e.DiagnosticCategory.Error,"Import_name_cannot_be_0_2438","Import name cannot be '{0}'."),Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relative_module_name:a(2439,e.DiagnosticCategory.Error,"Import_or_export_declaration_in_an_ambient_module_declaration_cannot_reference_module_through_relati_2439","Import or export declaration in an ambient module declaration cannot reference module through relative module name."),Import_declaration_conflicts_with_local_declaration_of_0:a(2440,e.DiagnosticCategory.Error,"Import_declaration_conflicts_with_local_declaration_of_0_2440","Import declaration conflicts with local declaration of '{0}'."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module:a(2441,e.DiagnosticCategory.Error,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_2441","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module."),Types_have_separate_declarations_of_a_private_property_0:a(2442,e.DiagnosticCategory.Error,"Types_have_separate_declarations_of_a_private_property_0_2442","Types have separate declarations of a private property '{0}'."),Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2:a(2443,e.DiagnosticCategory.Error,"Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2_2443","Property '{0}' is protected but type '{1}' is not a class derived from '{2}'."),Property_0_is_protected_in_type_1_but_public_in_type_2:a(2444,e.DiagnosticCategory.Error,"Property_0_is_protected_in_type_1_but_public_in_type_2_2444","Property '{0}' is protected in type '{1}' but public in type '{2}'."),Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses:a(2445,e.DiagnosticCategory.Error,"Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses_2445","Property '{0}' is protected and only accessible within class '{1}' and its subclasses."),Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_class_2:a(2446,e.DiagnosticCategory.Error,"Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1_This_is_an_instance_of_cl_2446","Property '{0}' is protected and only accessible through an instance of class '{1}'. This is an instance of class '{2}'."),The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead:a(2447,e.DiagnosticCategory.Error,"The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead_2447","The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead."),Block_scoped_variable_0_used_before_its_declaration:a(2448,e.DiagnosticCategory.Error,"Block_scoped_variable_0_used_before_its_declaration_2448","Block-scoped variable '{0}' used before its declaration."),Class_0_used_before_its_declaration:a(2449,e.DiagnosticCategory.Error,"Class_0_used_before_its_declaration_2449","Class '{0}' used before its declaration."),Enum_0_used_before_its_declaration:a(2450,e.DiagnosticCategory.Error,"Enum_0_used_before_its_declaration_2450","Enum '{0}' used before its declaration."),Cannot_redeclare_block_scoped_variable_0:a(2451,e.DiagnosticCategory.Error,"Cannot_redeclare_block_scoped_variable_0_2451","Cannot redeclare block-scoped variable '{0}'."),An_enum_member_cannot_have_a_numeric_name:a(2452,e.DiagnosticCategory.Error,"An_enum_member_cannot_have_a_numeric_name_2452","An enum member cannot have a numeric name."),The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly:a(2453,e.DiagnosticCategory.Error,"The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_typ_2453","The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly."),Variable_0_is_used_before_being_assigned:a(2454,e.DiagnosticCategory.Error,"Variable_0_is_used_before_being_assigned_2454","Variable '{0}' is used before being assigned."),Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0:a(2455,e.DiagnosticCategory.Error,"Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0_2455","Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'."),Type_alias_0_circularly_references_itself:a(2456,e.DiagnosticCategory.Error,"Type_alias_0_circularly_references_itself_2456","Type alias '{0}' circularly references itself."),Type_alias_name_cannot_be_0:a(2457,e.DiagnosticCategory.Error,"Type_alias_name_cannot_be_0_2457","Type alias name cannot be '{0}'."),An_AMD_module_cannot_have_multiple_name_assignments:a(2458,e.DiagnosticCategory.Error,"An_AMD_module_cannot_have_multiple_name_assignments_2458","An AMD module cannot have multiple name assignments."),Module_0_declares_1_locally_but_it_is_not_exported:a(2459,e.DiagnosticCategory.Error,"Module_0_declares_1_locally_but_it_is_not_exported_2459","Module '{0}' declares '{1}' locally, but it is not exported."),Module_0_declares_1_locally_but_it_is_exported_as_2:a(2460,e.DiagnosticCategory.Error,"Module_0_declares_1_locally_but_it_is_exported_as_2_2460","Module '{0}' declares '{1}' locally, but it is exported as '{2}'."),Type_0_is_not_an_array_type:a(2461,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_2461","Type '{0}' is not an array type."),A_rest_element_must_be_last_in_a_destructuring_pattern:a(2462,e.DiagnosticCategory.Error,"A_rest_element_must_be_last_in_a_destructuring_pattern_2462","A rest element must be last in a destructuring pattern."),A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature:a(2463,e.DiagnosticCategory.Error,"A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature_2463","A binding pattern parameter cannot be optional in an implementation signature."),A_computed_property_name_must_be_of_type_string_number_symbol_or_any:a(2464,e.DiagnosticCategory.Error,"A_computed_property_name_must_be_of_type_string_number_symbol_or_any_2464","A computed property name must be of type 'string', 'number', 'symbol', or 'any'."),this_cannot_be_referenced_in_a_computed_property_name:a(2465,e.DiagnosticCategory.Error,"this_cannot_be_referenced_in_a_computed_property_name_2465","'this' cannot be referenced in a computed property name."),super_cannot_be_referenced_in_a_computed_property_name:a(2466,e.DiagnosticCategory.Error,"super_cannot_be_referenced_in_a_computed_property_name_2466","'super' cannot be referenced in a computed property name."),A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type:a(2467,e.DiagnosticCategory.Error,"A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type_2467","A computed property name cannot reference a type parameter from its containing type."),Cannot_find_global_value_0:a(2468,e.DiagnosticCategory.Error,"Cannot_find_global_value_0_2468","Cannot find global value '{0}'."),The_0_operator_cannot_be_applied_to_type_symbol:a(2469,e.DiagnosticCategory.Error,"The_0_operator_cannot_be_applied_to_type_symbol_2469","The '{0}' operator cannot be applied to type 'symbol'."),Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object:a(2470,e.DiagnosticCategory.Error,"Symbol_reference_does_not_refer_to_the_global_Symbol_constructor_object_2470","'Symbol' reference does not refer to the global Symbol constructor object."),A_computed_property_name_of_the_form_0_must_be_of_type_symbol:a(2471,e.DiagnosticCategory.Error,"A_computed_property_name_of_the_form_0_must_be_of_type_symbol_2471","A computed property name of the form '{0}' must be of type 'symbol'."),Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher:a(2472,e.DiagnosticCategory.Error,"Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher_2472","Spread operator in 'new' expressions is only available when targeting ECMAScript 5 and higher."),Enum_declarations_must_all_be_const_or_non_const:a(2473,e.DiagnosticCategory.Error,"Enum_declarations_must_all_be_const_or_non_const_2473","Enum declarations must all be const or non-const."),const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values:a(2474,e.DiagnosticCategory.Error,"const_enum_member_initializers_can_only_contain_literal_values_and_other_computed_enum_values_2474","const enum member initializers can only contain literal values and other computed enum values."),const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query:a(2475,e.DiagnosticCategory.Error,"const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_im_2475","'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment or type query."),A_const_enum_member_can_only_be_accessed_using_a_string_literal:a(2476,e.DiagnosticCategory.Error,"A_const_enum_member_can_only_be_accessed_using_a_string_literal_2476","A const enum member can only be accessed using a string literal."),const_enum_member_initializer_was_evaluated_to_a_non_finite_value:a(2477,e.DiagnosticCategory.Error,"const_enum_member_initializer_was_evaluated_to_a_non_finite_value_2477","'const' enum member initializer was evaluated to a non-finite value."),const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN:a(2478,e.DiagnosticCategory.Error,"const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN_2478","'const' enum member initializer was evaluated to disallowed value 'NaN'."),Property_0_does_not_exist_on_const_enum_1:a(2479,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_const_enum_1_2479","Property '{0}' does not exist on 'const' enum '{1}'."),let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations:a(2480,e.DiagnosticCategory.Error,"let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations_2480","'let' is not allowed to be used as a name in 'let' or 'const' declarations."),Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1:a(2481,e.DiagnosticCategory.Error,"Cannot_initialize_outer_scoped_variable_0_in_the_same_scope_as_block_scoped_declaration_1_2481","Cannot initialize outer scoped variable '{0}' in the same scope as block scoped declaration '{1}'."),The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation:a(2483,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation_2483","The left-hand side of a 'for...of' statement cannot use a type annotation."),Export_declaration_conflicts_with_exported_declaration_of_0:a(2484,e.DiagnosticCategory.Error,"Export_declaration_conflicts_with_exported_declaration_of_0_2484","Export declaration conflicts with exported declaration of '{0}'."),The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access:a(2487,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access_2487","The left-hand side of a 'for...of' statement must be a variable or a property access."),Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator:a(2488,e.DiagnosticCategory.Error,"Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator_2488","Type '{0}' must have a '[Symbol.iterator]()' method that returns an iterator."),An_iterator_must_have_a_next_method:a(2489,e.DiagnosticCategory.Error,"An_iterator_must_have_a_next_method_2489","An iterator must have a 'next()' method."),The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property:a(2490,e.DiagnosticCategory.Error,"The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property_2490","The type returned by the '{0}()' method of an iterator must have a 'value' property."),The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern:a(2491,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern_2491","The left-hand side of a 'for...in' statement cannot be a destructuring pattern."),Cannot_redeclare_identifier_0_in_catch_clause:a(2492,e.DiagnosticCategory.Error,"Cannot_redeclare_identifier_0_in_catch_clause_2492","Cannot redeclare identifier '{0}' in catch clause."),Tuple_type_0_of_length_1_has_no_element_at_index_2:a(2493,e.DiagnosticCategory.Error,"Tuple_type_0_of_length_1_has_no_element_at_index_2_2493","Tuple type '{0}' of length '{1}' has no element at index '{2}'."),Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher:a(2494,e.DiagnosticCategory.Error,"Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher_2494","Using a string in a 'for...of' statement is only supported in ECMAScript 5 and higher."),Type_0_is_not_an_array_type_or_a_string_type:a(2495,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_or_a_string_type_2495","Type '{0}' is not an array type or a string type."),The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_standard_function_expression:a(2496,e.DiagnosticCategory.Error,"The_arguments_object_cannot_be_referenced_in_an_arrow_function_in_ES3_and_ES5_Consider_using_a_stand_2496","The 'arguments' object cannot be referenced in an arrow function in ES3 and ES5. Consider using a standard function expression."),This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export:a(2497,e.DiagnosticCategory.Error,"This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_2497","This module can only be referenced with ECMAScript imports/exports by turning on the '{0}' flag and referencing its default export."),Module_0_uses_export_and_cannot_be_used_with_export_Asterisk:a(2498,e.DiagnosticCategory.Error,"Module_0_uses_export_and_cannot_be_used_with_export_Asterisk_2498","Module '{0}' uses 'export =' and cannot be used with 'export *'."),An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments:a(2499,e.DiagnosticCategory.Error,"An_interface_can_only_extend_an_identifier_Slashqualified_name_with_optional_type_arguments_2499","An interface can only extend an identifier/qualified-name with optional type arguments."),A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments:a(2500,e.DiagnosticCategory.Error,"A_class_can_only_implement_an_identifier_Slashqualified_name_with_optional_type_arguments_2500","A class can only implement an identifier/qualified-name with optional type arguments."),A_rest_element_cannot_contain_a_binding_pattern:a(2501,e.DiagnosticCategory.Error,"A_rest_element_cannot_contain_a_binding_pattern_2501","A rest element cannot contain a binding pattern."),_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation:a(2502,e.DiagnosticCategory.Error,"_0_is_referenced_directly_or_indirectly_in_its_own_type_annotation_2502","'{0}' is referenced directly or indirectly in its own type annotation."),Cannot_find_namespace_0:a(2503,e.DiagnosticCategory.Error,"Cannot_find_namespace_0_2503","Cannot find namespace '{0}'."),Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator:a(2504,e.DiagnosticCategory.Error,"Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator_2504","Type '{0}' must have a '[Symbol.asyncIterator]()' method that returns an async iterator."),A_generator_cannot_have_a_void_type_annotation:a(2505,e.DiagnosticCategory.Error,"A_generator_cannot_have_a_void_type_annotation_2505","A generator cannot have a 'void' type annotation."),_0_is_referenced_directly_or_indirectly_in_its_own_base_expression:a(2506,e.DiagnosticCategory.Error,"_0_is_referenced_directly_or_indirectly_in_its_own_base_expression_2506","'{0}' is referenced directly or indirectly in its own base expression."),Type_0_is_not_a_constructor_function_type:a(2507,e.DiagnosticCategory.Error,"Type_0_is_not_a_constructor_function_type_2507","Type '{0}' is not a constructor function type."),No_base_constructor_has_the_specified_number_of_type_arguments:a(2508,e.DiagnosticCategory.Error,"No_base_constructor_has_the_specified_number_of_type_arguments_2508","No base constructor has the specified number of type arguments."),Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_known_members:a(2509,e.DiagnosticCategory.Error,"Base_constructor_return_type_0_is_not_an_object_type_or_intersection_of_object_types_with_statically_2509","Base constructor return type '{0}' is not an object type or intersection of object types with statically known members."),Base_constructors_must_all_have_the_same_return_type:a(2510,e.DiagnosticCategory.Error,"Base_constructors_must_all_have_the_same_return_type_2510","Base constructors must all have the same return type."),Cannot_create_an_instance_of_an_abstract_class:a(2511,e.DiagnosticCategory.Error,"Cannot_create_an_instance_of_an_abstract_class_2511","Cannot create an instance of an abstract class."),Overload_signatures_must_all_be_abstract_or_non_abstract:a(2512,e.DiagnosticCategory.Error,"Overload_signatures_must_all_be_abstract_or_non_abstract_2512","Overload signatures must all be abstract or non-abstract."),Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression:a(2513,e.DiagnosticCategory.Error,"Abstract_method_0_in_class_1_cannot_be_accessed_via_super_expression_2513","Abstract method '{0}' in class '{1}' cannot be accessed via super expression."),Classes_containing_abstract_methods_must_be_marked_abstract:a(2514,e.DiagnosticCategory.Error,"Classes_containing_abstract_methods_must_be_marked_abstract_2514","Classes containing abstract methods must be marked abstract."),Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2:a(2515,e.DiagnosticCategory.Error,"Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2_2515","Non-abstract class '{0}' does not implement inherited abstract member '{1}' from class '{2}'."),All_declarations_of_an_abstract_method_must_be_consecutive:a(2516,e.DiagnosticCategory.Error,"All_declarations_of_an_abstract_method_must_be_consecutive_2516","All declarations of an abstract method must be consecutive."),Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type:a(2517,e.DiagnosticCategory.Error,"Cannot_assign_an_abstract_constructor_type_to_a_non_abstract_constructor_type_2517","Cannot assign an abstract constructor type to a non-abstract constructor type."),A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard:a(2518,e.DiagnosticCategory.Error,"A_this_based_type_guard_is_not_compatible_with_a_parameter_based_type_guard_2518","A 'this'-based type guard is not compatible with a parameter-based type guard."),An_async_iterator_must_have_a_next_method:a(2519,e.DiagnosticCategory.Error,"An_async_iterator_must_have_a_next_method_2519","An async iterator must have a 'next()' method."),Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions:a(2520,e.DiagnosticCategory.Error,"Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions_2520","Duplicate identifier '{0}'. Compiler uses declaration '{1}' to support async functions."),Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions:a(2521,e.DiagnosticCategory.Error,"Expression_resolves_to_variable_declaration_0_that_compiler_uses_to_support_async_functions_2521","Expression resolves to variable declaration '{0}' that compiler uses to support async functions."),The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_using_a_standard_function_or_method:a(2522,e.DiagnosticCategory.Error,"The_arguments_object_cannot_be_referenced_in_an_async_function_or_method_in_ES3_and_ES5_Consider_usi_2522","The 'arguments' object cannot be referenced in an async function or method in ES3 and ES5. Consider using a standard function or method."),yield_expressions_cannot_be_used_in_a_parameter_initializer:a(2523,e.DiagnosticCategory.Error,"yield_expressions_cannot_be_used_in_a_parameter_initializer_2523","'yield' expressions cannot be used in a parameter initializer."),await_expressions_cannot_be_used_in_a_parameter_initializer:a(2524,e.DiagnosticCategory.Error,"await_expressions_cannot_be_used_in_a_parameter_initializer_2524","'await' expressions cannot be used in a parameter initializer."),Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value:a(2525,e.DiagnosticCategory.Error,"Initializer_provides_no_value_for_this_binding_element_and_the_binding_element_has_no_default_value_2525","Initializer provides no value for this binding element and the binding element has no default value."),A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface:a(2526,e.DiagnosticCategory.Error,"A_this_type_is_available_only_in_a_non_static_member_of_a_class_or_interface_2526","A 'this' type is available only in a non-static member of a class or interface."),The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary:a(2527,e.DiagnosticCategory.Error,"The_inferred_type_of_0_references_an_inaccessible_1_type_A_type_annotation_is_necessary_2527","The inferred type of '{0}' references an inaccessible '{1}' type. A type annotation is necessary."),A_module_cannot_have_multiple_default_exports:a(2528,e.DiagnosticCategory.Error,"A_module_cannot_have_multiple_default_exports_2528","A module cannot have multiple default exports."),Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions:a(2529,e.DiagnosticCategory.Error,"Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_func_2529","Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of a module containing async functions."),Property_0_is_incompatible_with_index_signature:a(2530,e.DiagnosticCategory.Error,"Property_0_is_incompatible_with_index_signature_2530","Property '{0}' is incompatible with index signature."),Object_is_possibly_null:a(2531,e.DiagnosticCategory.Error,"Object_is_possibly_null_2531","Object is possibly 'null'."),Object_is_possibly_undefined:a(2532,e.DiagnosticCategory.Error,"Object_is_possibly_undefined_2532","Object is possibly 'undefined'."),Object_is_possibly_null_or_undefined:a(2533,e.DiagnosticCategory.Error,"Object_is_possibly_null_or_undefined_2533","Object is possibly 'null' or 'undefined'."),A_function_returning_never_cannot_have_a_reachable_end_point:a(2534,e.DiagnosticCategory.Error,"A_function_returning_never_cannot_have_a_reachable_end_point_2534","A function returning 'never' cannot have a reachable end point."),Enum_type_0_has_members_with_initializers_that_are_not_literals:a(2535,e.DiagnosticCategory.Error,"Enum_type_0_has_members_with_initializers_that_are_not_literals_2535","Enum type '{0}' has members with initializers that are not literals."),Type_0_cannot_be_used_to_index_type_1:a(2536,e.DiagnosticCategory.Error,"Type_0_cannot_be_used_to_index_type_1_2536","Type '{0}' cannot be used to index type '{1}'."),Type_0_has_no_matching_index_signature_for_type_1:a(2537,e.DiagnosticCategory.Error,"Type_0_has_no_matching_index_signature_for_type_1_2537","Type '{0}' has no matching index signature for type '{1}'."),Type_0_cannot_be_used_as_an_index_type:a(2538,e.DiagnosticCategory.Error,"Type_0_cannot_be_used_as_an_index_type_2538","Type '{0}' cannot be used as an index type."),Cannot_assign_to_0_because_it_is_not_a_variable:a(2539,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_not_a_variable_2539","Cannot assign to '{0}' because it is not a variable."),Cannot_assign_to_0_because_it_is_a_read_only_property:a(2540,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_read_only_property_2540","Cannot assign to '{0}' because it is a read-only property."),The_target_of_an_assignment_must_be_a_variable_or_a_property_access:a(2541,e.DiagnosticCategory.Error,"The_target_of_an_assignment_must_be_a_variable_or_a_property_access_2541","The target of an assignment must be a variable or a property access."),Index_signature_in_type_0_only_permits_reading:a(2542,e.DiagnosticCategory.Error,"Index_signature_in_type_0_only_permits_reading_2542","Index signature in type '{0}' only permits reading."),Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference:a(2543,e.DiagnosticCategory.Error,"Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_me_2543","Duplicate identifier '_newTarget'. Compiler uses variable declaration '_newTarget' to capture 'new.target' meta-property reference."),Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference:a(2544,e.DiagnosticCategory.Error,"Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta__2544","Expression resolves to variable declaration '_newTarget' that compiler uses to capture 'new.target' meta-property reference."),A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any:a(2545,e.DiagnosticCategory.Error,"A_mixin_class_must_have_a_constructor_with_a_single_rest_parameter_of_type_any_2545","A mixin class must have a constructor with a single rest parameter of type 'any[]'."),The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property:a(2547,e.DiagnosticCategory.Error,"The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_pro_2547","The type returned by the '{0}()' method of an async iterator must be a promise for a type with a 'value' property."),Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:a(2548,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator_2548","Type '{0}' is not an array type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator:a(2549,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns__2549","Type '{0}' is not an array type or a string type or does not have a '[Symbol.iterator]()' method that returns an iterator."),Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2_or_later:a(2550,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_Do_you_need_to_change_your_target_library_Try_changing_the_lib_c_2550","Property '{0}' does not exist on type '{1}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{2}' or later."),Property_0_does_not_exist_on_type_1_Did_you_mean_2:a(2551,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_Did_you_mean_2_2551","Property '{0}' does not exist on type '{1}'. Did you mean '{2}'?"),Cannot_find_name_0_Did_you_mean_1:a(2552,e.DiagnosticCategory.Error,"Cannot_find_name_0_Did_you_mean_1_2552","Cannot find name '{0}'. Did you mean '{1}'?"),Computed_values_are_not_permitted_in_an_enum_with_string_valued_members:a(2553,e.DiagnosticCategory.Error,"Computed_values_are_not_permitted_in_an_enum_with_string_valued_members_2553","Computed values are not permitted in an enum with string valued members."),Expected_0_arguments_but_got_1:a(2554,e.DiagnosticCategory.Error,"Expected_0_arguments_but_got_1_2554","Expected {0} arguments, but got {1}."),Expected_at_least_0_arguments_but_got_1:a(2555,e.DiagnosticCategory.Error,"Expected_at_least_0_arguments_but_got_1_2555","Expected at least {0} arguments, but got {1}."),A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter:a(2556,e.DiagnosticCategory.Error,"A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter_2556","A spread argument must either have a tuple type or be passed to a rest parameter."),Expected_0_type_arguments_but_got_1:a(2558,e.DiagnosticCategory.Error,"Expected_0_type_arguments_but_got_1_2558","Expected {0} type arguments, but got {1}."),Type_0_has_no_properties_in_common_with_type_1:a(2559,e.DiagnosticCategory.Error,"Type_0_has_no_properties_in_common_with_type_1_2559","Type '{0}' has no properties in common with type '{1}'."),Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it:a(2560,e.DiagnosticCategory.Error,"Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it_2560","Value of type '{0}' has no properties in common with type '{1}'. Did you mean to call it?"),Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2:a(2561,e.DiagnosticCategory.Error,"Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_writ_2561","Object literal may only specify known properties, but '{0}' does not exist in type '{1}'. Did you mean to write '{2}'?"),Base_class_expressions_cannot_reference_class_type_parameters:a(2562,e.DiagnosticCategory.Error,"Base_class_expressions_cannot_reference_class_type_parameters_2562","Base class expressions cannot reference class type parameters."),The_containing_function_or_module_body_is_too_large_for_control_flow_analysis:a(2563,e.DiagnosticCategory.Error,"The_containing_function_or_module_body_is_too_large_for_control_flow_analysis_2563","The containing function or module body is too large for control flow analysis."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor:a(2564,e.DiagnosticCategory.Error,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_the_constructor_2564","Property '{0}' has no initializer and is not definitely assigned in the constructor."),Property_0_is_used_before_being_assigned:a(2565,e.DiagnosticCategory.Error,"Property_0_is_used_before_being_assigned_2565","Property '{0}' is used before being assigned."),A_rest_element_cannot_have_a_property_name:a(2566,e.DiagnosticCategory.Error,"A_rest_element_cannot_have_a_property_name_2566","A rest element cannot have a property name."),Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:a(2567,e.DiagnosticCategory.Error,"Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations_2567","Enum declarations can only merge with namespace or other enum declarations."),Property_0_may_not_exist_on_type_1_Did_you_mean_2:a(2568,e.DiagnosticCategory.Error,"Property_0_may_not_exist_on_type_1_Did_you_mean_2_2568","Property '{0}' may not exist on type '{1}'. Did you mean '{2}'?"),Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators:a(2569,e.DiagnosticCategory.Error,"Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterati_2569","Type '{0}' is not an array type or a string type. Use compiler option '--downlevelIteration' to allow iterating of iterators."),Could_not_find_name_0_Did_you_mean_1:a(2570,e.DiagnosticCategory.Error,"Could_not_find_name_0_Did_you_mean_1_2570","Could not find name '{0}'. Did you mean '{1}'?"),Object_is_of_type_unknown:a(2571,e.DiagnosticCategory.Error,"Object_is_of_type_unknown_2571","Object is of type 'unknown'."),Rest_signatures_are_incompatible:a(2572,e.DiagnosticCategory.Error,"Rest_signatures_are_incompatible_2572","Rest signatures are incompatible."),Property_0_is_incompatible_with_rest_element_type:a(2573,e.DiagnosticCategory.Error,"Property_0_is_incompatible_with_rest_element_type_2573","Property '{0}' is incompatible with rest element type."),A_rest_element_type_must_be_an_array_type:a(2574,e.DiagnosticCategory.Error,"A_rest_element_type_must_be_an_array_type_2574","A rest element type must be an array type."),No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments:a(2575,e.DiagnosticCategory.Error,"No_overload_expects_0_arguments_but_overloads_do_exist_that_expect_either_1_or_2_arguments_2575","No overload expects {0} arguments, but overloads do exist that expect either {1} or {2} arguments."),Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead:a(2576,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead_2576","Property '{0}' does not exist on type '{1}'. Did you mean to access the static member '{2}' instead?"),Return_type_annotation_circularly_references_itself:a(2577,e.DiagnosticCategory.Error,"Return_type_annotation_circularly_references_itself_2577","Return type annotation circularly references itself."),Unused_ts_expect_error_directive:a(2578,e.DiagnosticCategory.Error,"Unused_ts_expect_error_directive_2578","Unused '@ts-expect-error' directive."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode:a(2580,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2580","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery:a(2581,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2581","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery`."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha:a(2582,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2582","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha`."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_1_or_later:a(2583,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2583","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to '{1}' or later."),Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_include_dom:a(2584,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_2584","Cannot find name '{0}'. Do you need to change your target library? Try changing the 'lib' compiler option to include 'dom'."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_Try_changing_the_lib_compiler_option_to_es2015_or_later:a(2585,e.DiagnosticCategory.Error,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Do_you_need_to_change_your_target_library_2585","'{0}' only refers to a type, but is being used as a value here. Do you need to change your target library? Try changing the 'lib' compiler option to es2015 or later."),Enum_type_0_circularly_references_itself:a(2586,e.DiagnosticCategory.Error,"Enum_type_0_circularly_references_itself_2586","Enum type '{0}' circularly references itself."),JSDoc_type_0_circularly_references_itself:a(2587,e.DiagnosticCategory.Error,"JSDoc_type_0_circularly_references_itself_2587","JSDoc type '{0}' circularly references itself."),Cannot_assign_to_0_because_it_is_a_constant:a(2588,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_constant_2588","Cannot assign to '{0}' because it is a constant."),Type_instantiation_is_excessively_deep_and_possibly_infinite:a(2589,e.DiagnosticCategory.Error,"Type_instantiation_is_excessively_deep_and_possibly_infinite_2589","Type instantiation is excessively deep and possibly infinite."),Expression_produces_a_union_type_that_is_too_complex_to_represent:a(2590,e.DiagnosticCategory.Error,"Expression_produces_a_union_type_that_is_too_complex_to_represent_2590","Expression produces a union type that is too complex to represent."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashnode_and_then_add_node_to_the_types_field_in_your_tsconfig:a(2591,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_node_Try_npm_i_save_dev_types_Slashno_2591","Cannot find name '{0}'. Do you need to install type definitions for node? Try `npm i --save-dev @types/node` and then add 'node' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slashjquery_and_then_add_jquery_to_the_types_field_in_your_tsconfig:a(2592,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_jQuery_Try_npm_i_save_dev_types_Slash_2592","Cannot find name '{0}'. Do you need to install type definitions for jQuery? Try `npm i --save-dev @types/jquery` and then add 'jquery' to the types field in your tsconfig."),Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_types_Slashjest_or_npm_i_save_dev_types_Slashmocha_and_then_add_jest_or_mocha_to_the_types_field_in_your_tsconfig:a(2593,e.DiagnosticCategory.Error,"Cannot_find_name_0_Do_you_need_to_install_type_definitions_for_a_test_runner_Try_npm_i_save_dev_type_2593","Cannot find name '{0}'. Do you need to install type definitions for a test runner? Try `npm i --save-dev @types/jest` or `npm i --save-dev @types/mocha` and then add 'jest' or 'mocha' to the types field in your tsconfig."),This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag:a(2594,e.DiagnosticCategory.Error,"This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the__2594","This module is declared with using 'export =', and can only be used with a default import when using the '{0}' flag."),_0_can_only_be_imported_by_using_a_default_import:a(2595,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_a_default_import_2595","'{0}' can only be imported by using a default import."),_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:a(2596,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import_2596","'{0}' can only be imported by turning on the 'esModuleInterop' flag and using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:a(2597,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import_2597","'{0}' can only be imported by using a 'require' call or by using a default import."),_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:a(2598,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using__2598","'{0}' can only be imported by using a 'require' call or by turning on the 'esModuleInterop' flag and using a default import."),JSX_element_attributes_type_0_may_not_be_a_union_type:a(2600,e.DiagnosticCategory.Error,"JSX_element_attributes_type_0_may_not_be_a_union_type_2600","JSX element attributes type '{0}' may not be a union type."),The_return_type_of_a_JSX_element_constructor_must_return_an_object_type:a(2601,e.DiagnosticCategory.Error,"The_return_type_of_a_JSX_element_constructor_must_return_an_object_type_2601","The return type of a JSX element constructor must return an object type."),JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist:a(2602,e.DiagnosticCategory.Error,"JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist_2602","JSX element implicitly has type 'any' because the global type 'JSX.Element' does not exist."),Property_0_in_type_1_is_not_assignable_to_type_2:a(2603,e.DiagnosticCategory.Error,"Property_0_in_type_1_is_not_assignable_to_type_2_2603","Property '{0}' in type '{1}' is not assignable to type '{2}'."),JSX_element_type_0_does_not_have_any_construct_or_call_signatures:a(2604,e.DiagnosticCategory.Error,"JSX_element_type_0_does_not_have_any_construct_or_call_signatures_2604","JSX element type '{0}' does not have any construct or call signatures."),JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements:a(2605,e.DiagnosticCategory.Error,"JSX_element_type_0_is_not_a_constructor_function_for_JSX_elements_2605","JSX element type '{0}' is not a constructor function for JSX elements."),Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property:a(2606,e.DiagnosticCategory.Error,"Property_0_of_JSX_spread_attribute_is_not_assignable_to_target_property_2606","Property '{0}' of JSX spread attribute is not assignable to target property."),JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property:a(2607,e.DiagnosticCategory.Error,"JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property_2607","JSX element class does not support attributes because it does not have a '{0}' property."),The_global_type_JSX_0_may_not_have_more_than_one_property:a(2608,e.DiagnosticCategory.Error,"The_global_type_JSX_0_may_not_have_more_than_one_property_2608","The global type 'JSX.{0}' may not have more than one property."),JSX_spread_child_must_be_an_array_type:a(2609,e.DiagnosticCategory.Error,"JSX_spread_child_must_be_an_array_type_2609","JSX spread child must be an array type."),_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property:a(2610,e.DiagnosticCategory.Error,"_0_is_defined_as_an_accessor_in_class_1_but_is_overridden_here_in_2_as_an_instance_property_2610","'{0}' is defined as an accessor in class '{1}', but is overridden here in '{2}' as an instance property."),_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor:a(2611,e.DiagnosticCategory.Error,"_0_is_defined_as_a_property_in_class_1_but_is_overridden_here_in_2_as_an_accessor_2611","'{0}' is defined as a property in class '{1}', but is overridden here in '{2}' as an accessor."),Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration:a(2612,e.DiagnosticCategory.Error,"Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_2612","Property '{0}' will overwrite the base property in '{1}'. If this is intentional, add an initializer. Otherwise, add a 'declare' modifier or remove the redundant declaration."),Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead:a(2613,e.DiagnosticCategory.Error,"Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead_2613","Module '{0}' has no default export. Did you mean to use 'import { {1} } from {0}' instead?"),Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead:a(2614,e.DiagnosticCategory.Error,"Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead_2614","Module '{0}' has no exported member '{1}'. Did you mean to use 'import {1} from {0}' instead?"),Type_of_property_0_circularly_references_itself_in_mapped_type_1:a(2615,e.DiagnosticCategory.Error,"Type_of_property_0_circularly_references_itself_in_mapped_type_1_2615","Type of property '{0}' circularly references itself in mapped type '{1}'."),_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:a(2616,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import_2616","'{0}' can only be imported by using 'import {1} = require({2})' or a default import."),_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import:a(2617,e.DiagnosticCategory.Error,"_0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_us_2617","'{0}' can only be imported by using 'import {1} = require({2})' or by turning on the 'esModuleInterop' flag and using a default import."),Source_has_0_element_s_but_target_requires_1:a(2618,e.DiagnosticCategory.Error,"Source_has_0_element_s_but_target_requires_1_2618","Source has {0} element(s) but target requires {1}."),Source_has_0_element_s_but_target_allows_only_1:a(2619,e.DiagnosticCategory.Error,"Source_has_0_element_s_but_target_allows_only_1_2619","Source has {0} element(s) but target allows only {1}."),Target_requires_0_element_s_but_source_may_have_fewer:a(2620,e.DiagnosticCategory.Error,"Target_requires_0_element_s_but_source_may_have_fewer_2620","Target requires {0} element(s) but source may have fewer."),Target_allows_only_0_element_s_but_source_may_have_more:a(2621,e.DiagnosticCategory.Error,"Target_allows_only_0_element_s_but_source_may_have_more_2621","Target allows only {0} element(s) but source may have more."),Source_provides_no_match_for_required_element_at_position_0_in_target:a(2623,e.DiagnosticCategory.Error,"Source_provides_no_match_for_required_element_at_position_0_in_target_2623","Source provides no match for required element at position {0} in target."),Source_provides_no_match_for_variadic_element_at_position_0_in_target:a(2624,e.DiagnosticCategory.Error,"Source_provides_no_match_for_variadic_element_at_position_0_in_target_2624","Source provides no match for variadic element at position {0} in target."),Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target:a(2625,e.DiagnosticCategory.Error,"Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target_2625","Variadic element at position {0} in source does not match element at position {1} in target."),Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target:a(2626,e.DiagnosticCategory.Error,"Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target_2626","Type at position {0} in source is not compatible with type at position {1} in target."),Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target:a(2627,e.DiagnosticCategory.Error,"Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target_2627","Type at positions {0} through {1} in source is not compatible with type at position {2} in target."),Cannot_assign_to_0_because_it_is_an_enum:a(2628,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_an_enum_2628","Cannot assign to '{0}' because it is an enum."),Cannot_assign_to_0_because_it_is_a_class:a(2629,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_class_2629","Cannot assign to '{0}' because it is a class."),Cannot_assign_to_0_because_it_is_a_function:a(2630,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_function_2630","Cannot assign to '{0}' because it is a function."),Cannot_assign_to_0_because_it_is_a_namespace:a(2631,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_a_namespace_2631","Cannot assign to '{0}' because it is a namespace."),Cannot_assign_to_0_because_it_is_an_import:a(2632,e.DiagnosticCategory.Error,"Cannot_assign_to_0_because_it_is_an_import_2632","Cannot assign to '{0}' because it is an import."),JSX_property_access_expressions_cannot_include_JSX_namespace_names:a(2633,e.DiagnosticCategory.Error,"JSX_property_access_expressions_cannot_include_JSX_namespace_names_2633","JSX property access expressions cannot include JSX namespace names"),_0_index_signatures_are_incompatible:a(2634,e.DiagnosticCategory.Error,"_0_index_signatures_are_incompatible_2634","'{0}' index signatures are incompatible."),Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity:a(2649,e.DiagnosticCategory.Error,"Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity_2649","Cannot augment module '{0}' with value exports because it resolves to a non-module entity."),A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_members_defined_in_other_enums:a(2651,e.DiagnosticCategory.Error,"A_member_initializer_in_a_enum_declaration_cannot_reference_members_declared_after_it_including_memb_2651","A member initializer in a enum declaration cannot reference members declared after it, including members defined in other enums."),Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead:a(2652,e.DiagnosticCategory.Error,"Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_d_2652","Merged declaration '{0}' cannot include a default export declaration. Consider adding a separate 'export default {0}' declaration instead."),Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1:a(2653,e.DiagnosticCategory.Error,"Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1_2653","Non-abstract class expression does not implement inherited abstract member '{0}' from class '{1}'."),Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_package_author_to_update_the_package_definition:a(2654,e.DiagnosticCategory.Error,"Exported_external_package_typings_file_cannot_contain_tripleslash_references_Please_contact_the_pack_2654","Exported external package typings file cannot contain tripleslash references. Please contact the package author to update the package definition."),Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_the_package_definition:a(2656,e.DiagnosticCategory.Error,"Exported_external_package_typings_file_0_is_not_a_module_Please_contact_the_package_author_to_update_2656","Exported external package typings file '{0}' is not a module. Please contact the package author to update the package definition."),JSX_expressions_must_have_one_parent_element:a(2657,e.DiagnosticCategory.Error,"JSX_expressions_must_have_one_parent_element_2657","JSX expressions must have one parent element."),Type_0_provides_no_match_for_the_signature_1:a(2658,e.DiagnosticCategory.Error,"Type_0_provides_no_match_for_the_signature_1_2658","Type '{0}' provides no match for the signature '{1}'."),super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher:a(2659,e.DiagnosticCategory.Error,"super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_highe_2659","'super' is only allowed in members of object literal expressions when option 'target' is 'ES2015' or higher."),super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions:a(2660,e.DiagnosticCategory.Error,"super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions_2660","'super' can only be referenced in members of derived classes or object literal expressions."),Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module:a(2661,e.DiagnosticCategory.Error,"Cannot_export_0_Only_local_declarations_can_be_exported_from_a_module_2661","Cannot export '{0}'. Only local declarations can be exported from a module."),Cannot_find_name_0_Did_you_mean_the_static_member_1_0:a(2662,e.DiagnosticCategory.Error,"Cannot_find_name_0_Did_you_mean_the_static_member_1_0_2662","Cannot find name '{0}'. Did you mean the static member '{1}.{0}'?"),Cannot_find_name_0_Did_you_mean_the_instance_member_this_0:a(2663,e.DiagnosticCategory.Error,"Cannot_find_name_0_Did_you_mean_the_instance_member_this_0_2663","Cannot find name '{0}'. Did you mean the instance member 'this.{0}'?"),Invalid_module_name_in_augmentation_module_0_cannot_be_found:a(2664,e.DiagnosticCategory.Error,"Invalid_module_name_in_augmentation_module_0_cannot_be_found_2664","Invalid module name in augmentation, module '{0}' cannot be found."),Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented:a(2665,e.DiagnosticCategory.Error,"Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augm_2665","Invalid module name in augmentation. Module '{0}' resolves to an untyped module at '{1}', which cannot be augmented."),Exports_and_export_assignments_are_not_permitted_in_module_augmentations:a(2666,e.DiagnosticCategory.Error,"Exports_and_export_assignments_are_not_permitted_in_module_augmentations_2666","Exports and export assignments are not permitted in module augmentations."),Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_module:a(2667,e.DiagnosticCategory.Error,"Imports_are_not_permitted_in_module_augmentations_Consider_moving_them_to_the_enclosing_external_mod_2667","Imports are not permitted in module augmentations. Consider moving them to the enclosing external module."),export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always_visible:a(2668,e.DiagnosticCategory.Error,"export_modifier_cannot_be_applied_to_ambient_modules_and_module_augmentations_since_they_are_always__2668","'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible."),Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_declarations:a(2669,e.DiagnosticCategory.Error,"Augmentations_for_the_global_scope_can_only_be_directly_nested_in_external_modules_or_ambient_module_2669","Augmentations for the global scope can only be directly nested in external modules or ambient module declarations."),Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambient_context:a(2670,e.DiagnosticCategory.Error,"Augmentations_for_the_global_scope_should_have_declare_modifier_unless_they_appear_in_already_ambien_2670","Augmentations for the global scope should have 'declare' modifier unless they appear in already ambient context."),Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity:a(2671,e.DiagnosticCategory.Error,"Cannot_augment_module_0_because_it_resolves_to_a_non_module_entity_2671","Cannot augment module '{0}' because it resolves to a non-module entity."),Cannot_assign_a_0_constructor_type_to_a_1_constructor_type:a(2672,e.DiagnosticCategory.Error,"Cannot_assign_a_0_constructor_type_to_a_1_constructor_type_2672","Cannot assign a '{0}' constructor type to a '{1}' constructor type."),Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration:a(2673,e.DiagnosticCategory.Error,"Constructor_of_class_0_is_private_and_only_accessible_within_the_class_declaration_2673","Constructor of class '{0}' is private and only accessible within the class declaration."),Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration:a(2674,e.DiagnosticCategory.Error,"Constructor_of_class_0_is_protected_and_only_accessible_within_the_class_declaration_2674","Constructor of class '{0}' is protected and only accessible within the class declaration."),Cannot_extend_a_class_0_Class_constructor_is_marked_as_private:a(2675,e.DiagnosticCategory.Error,"Cannot_extend_a_class_0_Class_constructor_is_marked_as_private_2675","Cannot extend a class '{0}'. Class constructor is marked as private."),Accessors_must_both_be_abstract_or_non_abstract:a(2676,e.DiagnosticCategory.Error,"Accessors_must_both_be_abstract_or_non_abstract_2676","Accessors must both be abstract or non-abstract."),A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type:a(2677,e.DiagnosticCategory.Error,"A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type_2677","A type predicate's type must be assignable to its parameter's type."),Type_0_is_not_comparable_to_type_1:a(2678,e.DiagnosticCategory.Error,"Type_0_is_not_comparable_to_type_1_2678","Type '{0}' is not comparable to type '{1}'."),A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void:a(2679,e.DiagnosticCategory.Error,"A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void_2679","A function that is called with the 'new' keyword cannot have a 'this' type that is 'void'."),A_0_parameter_must_be_the_first_parameter:a(2680,e.DiagnosticCategory.Error,"A_0_parameter_must_be_the_first_parameter_2680","A '{0}' parameter must be the first parameter."),A_constructor_cannot_have_a_this_parameter:a(2681,e.DiagnosticCategory.Error,"A_constructor_cannot_have_a_this_parameter_2681","A constructor cannot have a 'this' parameter."),get_and_set_accessor_must_have_the_same_this_type:a(2682,e.DiagnosticCategory.Error,"get_and_set_accessor_must_have_the_same_this_type_2682","'get' and 'set' accessor must have the same 'this' type."),this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation:a(2683,e.DiagnosticCategory.Error,"this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_2683","'this' implicitly has type 'any' because it does not have a type annotation."),The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1:a(2684,e.DiagnosticCategory.Error,"The_this_context_of_type_0_is_not_assignable_to_method_s_this_of_type_1_2684","The 'this' context of type '{0}' is not assignable to method's 'this' of type '{1}'."),The_this_types_of_each_signature_are_incompatible:a(2685,e.DiagnosticCategory.Error,"The_this_types_of_each_signature_are_incompatible_2685","The 'this' types of each signature are incompatible."),_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead:a(2686,e.DiagnosticCategory.Error,"_0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead_2686","'{0}' refers to a UMD global, but the current file is a module. Consider adding an import instead."),All_declarations_of_0_must_have_identical_modifiers:a(2687,e.DiagnosticCategory.Error,"All_declarations_of_0_must_have_identical_modifiers_2687","All declarations of '{0}' must have identical modifiers."),Cannot_find_type_definition_file_for_0:a(2688,e.DiagnosticCategory.Error,"Cannot_find_type_definition_file_for_0_2688","Cannot find type definition file for '{0}'."),Cannot_extend_an_interface_0_Did_you_mean_implements:a(2689,e.DiagnosticCategory.Error,"Cannot_extend_an_interface_0_Did_you_mean_implements_2689","Cannot extend an interface '{0}'. Did you mean 'implements'?"),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0:a(2690,e.DiagnosticCategory.Error,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_Did_you_mean_to_use_1_in_0_2690","'{0}' only refers to a type, but is being used as a value here. Did you mean to use '{1} in {0}'?"),An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead:a(2691,e.DiagnosticCategory.Error,"An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead_2691","An import path cannot end with a '{0}' extension. Consider importing '{1}' instead."),_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible:a(2692,e.DiagnosticCategory.Error,"_0_is_a_primitive_but_1_is_a_wrapper_object_Prefer_using_0_when_possible_2692","'{0}' is a primitive, but '{1}' is a wrapper object. Prefer using '{0}' when possible."),_0_only_refers_to_a_type_but_is_being_used_as_a_value_here:a(2693,e.DiagnosticCategory.Error,"_0_only_refers_to_a_type_but_is_being_used_as_a_value_here_2693","'{0}' only refers to a type, but is being used as a value here."),Namespace_0_has_no_exported_member_1:a(2694,e.DiagnosticCategory.Error,"Namespace_0_has_no_exported_member_1_2694","Namespace '{0}' has no exported member '{1}'."),Left_side_of_comma_operator_is_unused_and_has_no_side_effects:a(2695,e.DiagnosticCategory.Error,"Left_side_of_comma_operator_is_unused_and_has_no_side_effects_2695","Left side of comma operator is unused and has no side effects.",!0),The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead:a(2696,e.DiagnosticCategory.Error,"The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead_2696","The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?"),An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:a(2697,e.DiagnosticCategory.Error,"An_async_function_or_method_must_return_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_in_2697","An async function or method must return a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),Spread_types_may_only_be_created_from_object_types:a(2698,e.DiagnosticCategory.Error,"Spread_types_may_only_be_created_from_object_types_2698","Spread types may only be created from object types."),Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1:a(2699,e.DiagnosticCategory.Error,"Static_property_0_conflicts_with_built_in_property_Function_0_of_constructor_function_1_2699","Static property '{0}' conflicts with built-in property 'Function.{0}' of constructor function '{1}'."),Rest_types_may_only_be_created_from_object_types:a(2700,e.DiagnosticCategory.Error,"Rest_types_may_only_be_created_from_object_types_2700","Rest types may only be created from object types."),The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access:a(2701,e.DiagnosticCategory.Error,"The_target_of_an_object_rest_assignment_must_be_a_variable_or_a_property_access_2701","The target of an object rest assignment must be a variable or a property access."),_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here:a(2702,e.DiagnosticCategory.Error,"_0_only_refers_to_a_type_but_is_being_used_as_a_namespace_here_2702","'{0}' only refers to a type, but is being used as a namespace here."),The_operand_of_a_delete_operator_must_be_a_property_reference:a(2703,e.DiagnosticCategory.Error,"The_operand_of_a_delete_operator_must_be_a_property_reference_2703","The operand of a 'delete' operator must be a property reference."),The_operand_of_a_delete_operator_cannot_be_a_read_only_property:a(2704,e.DiagnosticCategory.Error,"The_operand_of_a_delete_operator_cannot_be_a_read_only_property_2704","The operand of a 'delete' operator cannot be a read-only property."),An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:a(2705,e.DiagnosticCategory.Error,"An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_de_2705","An async function or method in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Required_type_parameters_may_not_follow_optional_type_parameters:a(2706,e.DiagnosticCategory.Error,"Required_type_parameters_may_not_follow_optional_type_parameters_2706","Required type parameters may not follow optional type parameters."),Generic_type_0_requires_between_1_and_2_type_arguments:a(2707,e.DiagnosticCategory.Error,"Generic_type_0_requires_between_1_and_2_type_arguments_2707","Generic type '{0}' requires between {1} and {2} type arguments."),Cannot_use_namespace_0_as_a_value:a(2708,e.DiagnosticCategory.Error,"Cannot_use_namespace_0_as_a_value_2708","Cannot use namespace '{0}' as a value."),Cannot_use_namespace_0_as_a_type:a(2709,e.DiagnosticCategory.Error,"Cannot_use_namespace_0_as_a_type_2709","Cannot use namespace '{0}' as a type."),_0_are_specified_twice_The_attribute_named_0_will_be_overwritten:a(2710,e.DiagnosticCategory.Error,"_0_are_specified_twice_The_attribute_named_0_will_be_overwritten_2710","'{0}' are specified twice. The attribute named '{0}' will be overwritten."),A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES2015_in_your_lib_option:a(2711,e.DiagnosticCategory.Error,"A_dynamic_import_call_returns_a_Promise_Make_sure_you_have_a_declaration_for_Promise_or_include_ES20_2711","A dynamic import call returns a 'Promise'. Make sure you have a declaration for 'Promise' or include 'ES2015' in your '--lib' option."),A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option:a(2712,e.DiagnosticCategory.Error,"A_dynamic_import_call_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declarat_2712","A dynamic import call in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your '--lib' option."),Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_property_1_in_0_with_0_1:a(2713,e.DiagnosticCategory.Error,"Cannot_access_0_1_because_0_is_a_type_but_not_a_namespace_Did_you_mean_to_retrieve_the_type_of_the_p_2713",`Cannot access '{0}.{1}' because '{0}' is a type, but not a namespace. Did you mean to retrieve the type of the property '{1}' in '{0}' with '{0}["{1}"]'?`),The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context:a(2714,e.DiagnosticCategory.Error,"The_expression_of_an_export_assignment_must_be_an_identifier_or_qualified_name_in_an_ambient_context_2714","The expression of an export assignment must be an identifier or qualified name in an ambient context."),Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor:a(2715,e.DiagnosticCategory.Error,"Abstract_property_0_in_class_1_cannot_be_accessed_in_the_constructor_2715","Abstract property '{0}' in class '{1}' cannot be accessed in the constructor."),Type_parameter_0_has_a_circular_default:a(2716,e.DiagnosticCategory.Error,"Type_parameter_0_has_a_circular_default_2716","Type parameter '{0}' has a circular default."),Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:a(2717,e.DiagnosticCategory.Error,"Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_t_2717","Subsequent property declarations must have the same type. Property '{0}' must be of type '{1}', but here has type '{2}'."),Duplicate_property_0:a(2718,e.DiagnosticCategory.Error,"Duplicate_property_0_2718","Duplicate property '{0}'."),Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated:a(2719,e.DiagnosticCategory.Error,"Type_0_is_not_assignable_to_type_1_Two_different_types_with_this_name_exist_but_they_are_unrelated_2719","Type '{0}' is not assignable to type '{1}'. Two different types with this name exist, but they are unrelated."),Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclass:a(2720,e.DiagnosticCategory.Error,"Class_0_incorrectly_implements_class_1_Did_you_mean_to_extend_1_and_inherit_its_members_as_a_subclas_2720","Class '{0}' incorrectly implements class '{1}'. Did you mean to extend '{1}' and inherit its members as a subclass?"),Cannot_invoke_an_object_which_is_possibly_null:a(2721,e.DiagnosticCategory.Error,"Cannot_invoke_an_object_which_is_possibly_null_2721","Cannot invoke an object which is possibly 'null'."),Cannot_invoke_an_object_which_is_possibly_undefined:a(2722,e.DiagnosticCategory.Error,"Cannot_invoke_an_object_which_is_possibly_undefined_2722","Cannot invoke an object which is possibly 'undefined'."),Cannot_invoke_an_object_which_is_possibly_null_or_undefined:a(2723,e.DiagnosticCategory.Error,"Cannot_invoke_an_object_which_is_possibly_null_or_undefined_2723","Cannot invoke an object which is possibly 'null' or 'undefined'."),_0_has_no_exported_member_named_1_Did_you_mean_2:a(2724,e.DiagnosticCategory.Error,"_0_has_no_exported_member_named_1_Did_you_mean_2_2724","'{0}' has no exported member named '{1}'. Did you mean '{2}'?"),Class_name_cannot_be_Object_when_targeting_ES5_with_module_0:a(2725,e.DiagnosticCategory.Error,"Class_name_cannot_be_Object_when_targeting_ES5_with_module_0_2725","Class name cannot be 'Object' when targeting ES5 with module {0}."),Cannot_find_lib_definition_for_0:a(2726,e.DiagnosticCategory.Error,"Cannot_find_lib_definition_for_0_2726","Cannot find lib definition for '{0}'."),Cannot_find_lib_definition_for_0_Did_you_mean_1:a(2727,e.DiagnosticCategory.Error,"Cannot_find_lib_definition_for_0_Did_you_mean_1_2727","Cannot find lib definition for '{0}'. Did you mean '{1}'?"),_0_is_declared_here:a(2728,e.DiagnosticCategory.Message,"_0_is_declared_here_2728","'{0}' is declared here."),Property_0_is_used_before_its_initialization:a(2729,e.DiagnosticCategory.Error,"Property_0_is_used_before_its_initialization_2729","Property '{0}' is used before its initialization."),An_arrow_function_cannot_have_a_this_parameter:a(2730,e.DiagnosticCategory.Error,"An_arrow_function_cannot_have_a_this_parameter_2730","An arrow function cannot have a 'this' parameter."),Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_in_String:a(2731,e.DiagnosticCategory.Error,"Implicit_conversion_of_a_symbol_to_a_string_will_fail_at_runtime_Consider_wrapping_this_expression_i_2731","Implicit conversion of a 'symbol' to a 'string' will fail at runtime. Consider wrapping this expression in 'String(...)'."),Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension:a(2732,e.DiagnosticCategory.Error,"Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension_2732","Cannot find module '{0}'. Consider using '--resolveJsonModule' to import module with '.json' extension."),Property_0_was_also_declared_here:a(2733,e.DiagnosticCategory.Error,"Property_0_was_also_declared_here_2733","Property '{0}' was also declared here."),Are_you_missing_a_semicolon:a(2734,e.DiagnosticCategory.Error,"Are_you_missing_a_semicolon_2734","Are you missing a semicolon?"),Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1:a(2735,e.DiagnosticCategory.Error,"Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1_2735","Did you mean for '{0}' to be constrained to type 'new (...args: any[]) => {1}'?"),Operator_0_cannot_be_applied_to_type_1:a(2736,e.DiagnosticCategory.Error,"Operator_0_cannot_be_applied_to_type_1_2736","Operator '{0}' cannot be applied to type '{1}'."),BigInt_literals_are_not_available_when_targeting_lower_than_ES2020:a(2737,e.DiagnosticCategory.Error,"BigInt_literals_are_not_available_when_targeting_lower_than_ES2020_2737","BigInt literals are not available when targeting lower than ES2020."),An_outer_value_of_this_is_shadowed_by_this_container:a(2738,e.DiagnosticCategory.Message,"An_outer_value_of_this_is_shadowed_by_this_container_2738","An outer value of 'this' is shadowed by this container."),Type_0_is_missing_the_following_properties_from_type_1_Colon_2:a(2739,e.DiagnosticCategory.Error,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_2739","Type '{0}' is missing the following properties from type '{1}': {2}"),Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more:a(2740,e.DiagnosticCategory.Error,"Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more_2740","Type '{0}' is missing the following properties from type '{1}': {2}, and {3} more."),Property_0_is_missing_in_type_1_but_required_in_type_2:a(2741,e.DiagnosticCategory.Error,"Property_0_is_missing_in_type_1_but_required_in_type_2_2741","Property '{0}' is missing in type '{1}' but required in type '{2}'."),The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_annotation_is_necessary:a(2742,e.DiagnosticCategory.Error,"The_inferred_type_of_0_cannot_be_named_without_a_reference_to_1_This_is_likely_not_portable_A_type_a_2742","The inferred type of '{0}' cannot be named without a reference to '{1}'. This is likely not portable. A type annotation is necessary."),No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments:a(2743,e.DiagnosticCategory.Error,"No_overload_expects_0_type_arguments_but_overloads_do_exist_that_expect_either_1_or_2_type_arguments_2743","No overload expects {0} type arguments, but overloads do exist that expect either {1} or {2} type arguments."),Type_parameter_defaults_can_only_reference_previously_declared_type_parameters:a(2744,e.DiagnosticCategory.Error,"Type_parameter_defaults_can_only_reference_previously_declared_type_parameters_2744","Type parameter defaults can only reference previously declared type parameters."),This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided:a(2745,e.DiagnosticCategory.Error,"This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_pr_2745","This JSX tag's '{0}' prop expects type '{1}' which requires multiple children, but only a single child was provided."),This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided:a(2746,e.DiagnosticCategory.Error,"This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided_2746","This JSX tag's '{0}' prop expects a single child of type '{1}', but multiple children were provided."),_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2:a(2747,e.DiagnosticCategory.Error,"_0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_t_2747","'{0}' components don't accept text as child elements. Text in JSX has the type 'string', but the expected type of '{1}' is '{2}'."),Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided:a(2748,e.DiagnosticCategory.Error,"Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided_2748","Cannot access ambient const enums when the '--isolatedModules' flag is provided."),_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0:a(2749,e.DiagnosticCategory.Error,"_0_refers_to_a_value_but_is_being_used_as_a_type_here_Did_you_mean_typeof_0_2749","'{0}' refers to a value, but is being used as a type here. Did you mean 'typeof {0}'?"),The_implementation_signature_is_declared_here:a(2750,e.DiagnosticCategory.Error,"The_implementation_signature_is_declared_here_2750","The implementation signature is declared here."),Circularity_originates_in_type_at_this_location:a(2751,e.DiagnosticCategory.Error,"Circularity_originates_in_type_at_this_location_2751","Circularity originates in type at this location."),The_first_export_default_is_here:a(2752,e.DiagnosticCategory.Error,"The_first_export_default_is_here_2752","The first export default is here."),Another_export_default_is_here:a(2753,e.DiagnosticCategory.Error,"Another_export_default_is_here_2753","Another export default is here."),super_may_not_use_type_arguments:a(2754,e.DiagnosticCategory.Error,"super_may_not_use_type_arguments_2754","'super' may not use type arguments."),No_constituent_of_type_0_is_callable:a(2755,e.DiagnosticCategory.Error,"No_constituent_of_type_0_is_callable_2755","No constituent of type '{0}' is callable."),Not_all_constituents_of_type_0_are_callable:a(2756,e.DiagnosticCategory.Error,"Not_all_constituents_of_type_0_are_callable_2756","Not all constituents of type '{0}' are callable."),Type_0_has_no_call_signatures:a(2757,e.DiagnosticCategory.Error,"Type_0_has_no_call_signatures_2757","Type '{0}' has no call signatures."),Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_other:a(2758,e.DiagnosticCategory.Error,"Each_member_of_the_union_type_0_has_signatures_but_none_of_those_signatures_are_compatible_with_each_2758","Each member of the union type '{0}' has signatures, but none of those signatures are compatible with each other."),No_constituent_of_type_0_is_constructable:a(2759,e.DiagnosticCategory.Error,"No_constituent_of_type_0_is_constructable_2759","No constituent of type '{0}' is constructable."),Not_all_constituents_of_type_0_are_constructable:a(2760,e.DiagnosticCategory.Error,"Not_all_constituents_of_type_0_are_constructable_2760","Not all constituents of type '{0}' are constructable."),Type_0_has_no_construct_signatures:a(2761,e.DiagnosticCategory.Error,"Type_0_has_no_construct_signatures_2761","Type '{0}' has no construct signatures."),Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_with_each_other:a(2762,e.DiagnosticCategory.Error,"Each_member_of_the_union_type_0_has_construct_signatures_but_none_of_those_signatures_are_compatible_2762","Each member of the union type '{0}' has construct signatures, but none of those signatures are compatible with each other."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:a(2763,e.DiagnosticCategory.Error,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_s_2763","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but for-of will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:a(2764,e.DiagnosticCategory.Error,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_al_2764","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array spread will always send '{0}'."),Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:a(2765,e.DiagnosticCategory.Error,"Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring__2765","Cannot iterate value because the 'next' method of its iterator expects type '{1}', but array destructuring will always send '{0}'."),Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:a(2766,e.DiagnosticCategory.Error,"Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_co_2766","Cannot delegate iteration to value because the 'next' method of its iterator expects type '{1}', but the containing generator will always send '{0}'."),The_0_property_of_an_iterator_must_be_a_method:a(2767,e.DiagnosticCategory.Error,"The_0_property_of_an_iterator_must_be_a_method_2767","The '{0}' property of an iterator must be a method."),The_0_property_of_an_async_iterator_must_be_a_method:a(2768,e.DiagnosticCategory.Error,"The_0_property_of_an_async_iterator_must_be_a_method_2768","The '{0}' property of an async iterator must be a method."),No_overload_matches_this_call:a(2769,e.DiagnosticCategory.Error,"No_overload_matches_this_call_2769","No overload matches this call."),The_last_overload_gave_the_following_error:a(2770,e.DiagnosticCategory.Error,"The_last_overload_gave_the_following_error_2770","The last overload gave the following error."),The_last_overload_is_declared_here:a(2771,e.DiagnosticCategory.Error,"The_last_overload_is_declared_here_2771","The last overload is declared here."),Overload_0_of_1_2_gave_the_following_error:a(2772,e.DiagnosticCategory.Error,"Overload_0_of_1_2_gave_the_following_error_2772","Overload {0} of {1}, '{2}', gave the following error."),Did_you_forget_to_use_await:a(2773,e.DiagnosticCategory.Error,"Did_you_forget_to_use_await_2773","Did you forget to use 'await'?"),This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead:a(2774,e.DiagnosticCategory.Error,"This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_2774","This condition will always return true since this function is always defined. Did you mean to call it instead?"),Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation:a(2775,e.DiagnosticCategory.Error,"Assertions_require_every_name_in_the_call_target_to_be_declared_with_an_explicit_type_annotation_2775","Assertions require every name in the call target to be declared with an explicit type annotation."),Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name:a(2776,e.DiagnosticCategory.Error,"Assertions_require_the_call_target_to_be_an_identifier_or_qualified_name_2776","Assertions require the call target to be an identifier or qualified name."),The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access:a(2777,e.DiagnosticCategory.Error,"The_operand_of_an_increment_or_decrement_operator_may_not_be_an_optional_property_access_2777","The operand of an increment or decrement operator may not be an optional property access."),The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access:a(2778,e.DiagnosticCategory.Error,"The_target_of_an_object_rest_assignment_may_not_be_an_optional_property_access_2778","The target of an object rest assignment may not be an optional property access."),The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access:a(2779,e.DiagnosticCategory.Error,"The_left_hand_side_of_an_assignment_expression_may_not_be_an_optional_property_access_2779","The left-hand side of an assignment expression may not be an optional property access."),The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access:a(2780,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access_2780","The left-hand side of a 'for...in' statement may not be an optional property access."),The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access:a(2781,e.DiagnosticCategory.Error,"The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access_2781","The left-hand side of a 'for...of' statement may not be an optional property access."),_0_needs_an_explicit_type_annotation:a(2782,e.DiagnosticCategory.Message,"_0_needs_an_explicit_type_annotation_2782","'{0}' needs an explicit type annotation."),_0_is_specified_more_than_once_so_this_usage_will_be_overwritten:a(2783,e.DiagnosticCategory.Error,"_0_is_specified_more_than_once_so_this_usage_will_be_overwritten_2783","'{0}' is specified more than once, so this usage will be overwritten."),get_and_set_accessors_cannot_declare_this_parameters:a(2784,e.DiagnosticCategory.Error,"get_and_set_accessors_cannot_declare_this_parameters_2784","'get' and 'set' accessors cannot declare 'this' parameters."),This_spread_always_overwrites_this_property:a(2785,e.DiagnosticCategory.Error,"This_spread_always_overwrites_this_property_2785","This spread always overwrites this property."),_0_cannot_be_used_as_a_JSX_component:a(2786,e.DiagnosticCategory.Error,"_0_cannot_be_used_as_a_JSX_component_2786","'{0}' cannot be used as a JSX component."),Its_return_type_0_is_not_a_valid_JSX_element:a(2787,e.DiagnosticCategory.Error,"Its_return_type_0_is_not_a_valid_JSX_element_2787","Its return type '{0}' is not a valid JSX element."),Its_instance_type_0_is_not_a_valid_JSX_element:a(2788,e.DiagnosticCategory.Error,"Its_instance_type_0_is_not_a_valid_JSX_element_2788","Its instance type '{0}' is not a valid JSX element."),Its_element_type_0_is_not_a_valid_JSX_element:a(2789,e.DiagnosticCategory.Error,"Its_element_type_0_is_not_a_valid_JSX_element_2789","Its element type '{0}' is not a valid JSX element."),The_operand_of_a_delete_operator_must_be_optional:a(2790,e.DiagnosticCategory.Error,"The_operand_of_a_delete_operator_must_be_optional_2790","The operand of a 'delete' operator must be optional."),Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_later:a(2791,e.DiagnosticCategory.Error,"Exponentiation_cannot_be_performed_on_bigint_values_unless_the_target_option_is_set_to_es2016_or_lat_2791","Exponentiation cannot be performed on 'bigint' values unless the 'target' option is set to 'es2016' or later."),Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option:a(2792,e.DiagnosticCategory.Error,"Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_th_2792","Cannot find module '{0}'. Did you mean to set the 'moduleResolution' option to 'node', or to add aliases to the 'paths' option?"),The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible:a(2793,e.DiagnosticCategory.Error,"The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_2793","The call would have succeeded against this implementation, but implementation signatures of overloads are not externally visible."),Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise:a(2794,e.DiagnosticCategory.Error,"Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise_2794","Expected {0} arguments, but got {1}. Did you forget to include 'void' in your type argument to 'Promise'?"),The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types:a(2795,e.DiagnosticCategory.Error,"The_intrinsic_keyword_can_only_be_used_to_declare_compiler_provided_intrinsic_types_2795","The 'intrinsic' keyword can only be used to declare compiler provided intrinsic types."),It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tagged_template_expression_which_cannot_be_invoked:a(2796,e.DiagnosticCategory.Error,"It_is_likely_that_you_are_missing_a_comma_to_separate_these_two_template_expressions_They_form_a_tag_2796","It is likely that you are missing a comma to separate these two template expressions. They form a tagged template expression which cannot be invoked."),A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_be_declared_abstract:a(2797,e.DiagnosticCategory.Error,"A_mixin_class_that_extends_from_a_type_variable_containing_an_abstract_construct_signature_must_also_2797","A mixin class that extends from a type variable containing an abstract construct signature must also be declared 'abstract'."),The_declaration_was_marked_as_deprecated_here:a(2798,e.DiagnosticCategory.Error,"The_declaration_was_marked_as_deprecated_here_2798","The declaration was marked as deprecated here."),Type_produces_a_tuple_type_that_is_too_large_to_represent:a(2799,e.DiagnosticCategory.Error,"Type_produces_a_tuple_type_that_is_too_large_to_represent_2799","Type produces a tuple type that is too large to represent."),Expression_produces_a_tuple_type_that_is_too_large_to_represent:a(2800,e.DiagnosticCategory.Error,"Expression_produces_a_tuple_type_that_is_too_large_to_represent_2800","Expression produces a tuple type that is too large to represent."),This_condition_will_always_return_true_since_this_0_is_always_defined:a(2801,e.DiagnosticCategory.Error,"This_condition_will_always_return_true_since_this_0_is_always_defined_2801","This condition will always return true since this '{0}' is always defined."),Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher:a(2802,e.DiagnosticCategory.Error,"Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es201_2802","Type '{0}' can only be iterated through when using the '--downlevelIteration' flag or with a '--target' of 'es2015' or higher."),Cannot_assign_to_private_method_0_Private_methods_are_not_writable:a(2803,e.DiagnosticCategory.Error,"Cannot_assign_to_private_method_0_Private_methods_are_not_writable_2803","Cannot assign to private method '{0}'. Private methods are not writable."),Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name:a(2804,e.DiagnosticCategory.Error,"Duplicate_identifier_0_Static_and_instance_elements_cannot_share_the_same_private_name_2804","Duplicate identifier '{0}'. Static and instance elements cannot share the same private name."),Static_fields_with_private_names_can_t_have_initializers_when_the_useDefineForClassFields_flag_is_not_specified_with_a_target_of_esnext_Consider_adding_the_useDefineForClassFields_flag:a(2805,e.DiagnosticCategory.Error,"Static_fields_with_private_names_can_t_have_initializers_when_the_useDefineForClassFields_flag_is_no_2805","Static fields with private names can't have initializers when the '--useDefineForClassFields' flag is not specified with a '--target' of 'esnext'. Consider adding the '--useDefineForClassFields' flag."),Private_accessor_was_defined_without_a_getter:a(2806,e.DiagnosticCategory.Error,"Private_accessor_was_defined_without_a_getter_2806","Private accessor was defined without a getter."),This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0:a(2807,e.DiagnosticCategory.Error,"This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_o_2807","This syntax requires an imported helper named '{1}' with {2} parameters, which is not compatible with the one in '{0}'. Consider upgrading your version of '{0}'."),A_get_accessor_must_be_at_least_as_accessible_as_the_setter:a(2808,e.DiagnosticCategory.Error,"A_get_accessor_must_be_at_least_as_accessible_as_the_setter_2808","A get accessor must be at least as accessible as the setter"),Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses:a(2809,e.DiagnosticCategory.Error,"Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_d_2809","Declaration or statement expected. This '=' follows a block of statements, so if you intended to write a destructuring assignment, you might need to wrap the the whole assignment in parentheses."),Property_0_may_not_be_used_in_a_static_property_s_initializer_in_the_same_class_when_target_is_esnext_and_useDefineForClassFields_is_false:a(2810,e.DiagnosticCategory.Error,"Property_0_may_not_be_used_in_a_static_property_s_initializer_in_the_same_class_when_target_is_esnex_2810","Property '{0}' may not be used in a static property's initializer in the same class when 'target' is 'esnext' and 'useDefineForClassFields' is 'false'."),Initializer_for_property_0:a(2811,e.DiagnosticCategory.Error,"Initializer_for_property_0_2811","Initializer for property '{0}'"),Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom:a(2812,e.DiagnosticCategory.Error,"Property_0_does_not_exist_on_type_1_Try_changing_the_lib_compiler_option_to_include_dom_2812","Property '{0}' does not exist on type '{1}'. Try changing the 'lib' compiler option to include 'dom'."),Class_declaration_cannot_implement_overload_list_for_0:a(2813,e.DiagnosticCategory.Error,"Class_declaration_cannot_implement_overload_list_for_0_2813","Class declaration cannot implement overload list for '{0}'."),Function_with_bodies_can_only_merge_with_classes_that_are_ambient:a(2814,e.DiagnosticCategory.Error,"Function_with_bodies_can_only_merge_with_classes_that_are_ambient_2814","Function with bodies can only merge with classes that are ambient."),arguments_cannot_be_referenced_in_property_initializers:a(2815,e.DiagnosticCategory.Error,"arguments_cannot_be_referenced_in_property_initializers_2815","'arguments' cannot be referenced in property initializers."),Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class:a(2816,e.DiagnosticCategory.Error,"Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class_2816","Cannot use 'this' in a static property initializer of a decorated class."),Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block:a(2817,e.DiagnosticCategory.Error,"Property_0_has_no_initializer_and_is_not_definitely_assigned_in_a_class_static_block_2817","Property '{0}' has no initializer and is not definitely assigned in a class static block."),Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializers:a(2818,e.DiagnosticCategory.Error,"Duplicate_identifier_0_Compiler_reserves_name_1_when_emitting_super_references_in_static_initializer_2818","Duplicate identifier '{0}'. Compiler reserves name '{1}' when emitting 'super' references in static initializers."),Namespace_name_cannot_be_0:a(2819,e.DiagnosticCategory.Error,"Namespace_name_cannot_be_0_2819","Namespace name cannot be '{0}'."),Import_declaration_0_is_using_private_name_1:a(4e3,e.DiagnosticCategory.Error,"Import_declaration_0_is_using_private_name_1_4000","Import declaration '{0}' is using private name '{1}'."),Type_parameter_0_of_exported_class_has_or_is_using_private_name_1:a(4002,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_class_has_or_is_using_private_name_1_4002","Type parameter '{0}' of exported class has or is using private name '{1}'."),Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1:a(4004,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1_4004","Type parameter '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:a(4006,e.DiagnosticCategory.Error,"Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4006","Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:a(4008,e.DiagnosticCategory.Error,"Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4008","Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:a(4010,e.DiagnosticCategory.Error,"Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4010","Type parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:a(4012,e.DiagnosticCategory.Error,"Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4012","Type parameter '{0}' of public method from exported class has or is using private name '{1}'."),Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:a(4014,e.DiagnosticCategory.Error,"Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4014","Type parameter '{0}' of method from exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_function_has_or_is_using_private_name_1:a(4016,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_function_has_or_is_using_private_name_1_4016","Type parameter '{0}' of exported function has or is using private name '{1}'."),Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:a(4019,e.DiagnosticCategory.Error,"Implements_clause_of_exported_class_0_has_or_is_using_private_name_1_4019","Implements clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_0_has_or_is_using_private_name_1:a(4020,e.DiagnosticCategory.Error,"extends_clause_of_exported_class_0_has_or_is_using_private_name_1_4020","'extends' clause of exported class '{0}' has or is using private name '{1}'."),extends_clause_of_exported_class_has_or_is_using_private_name_0:a(4021,e.DiagnosticCategory.Error,"extends_clause_of_exported_class_has_or_is_using_private_name_0_4021","'extends' clause of exported class has or is using private name '{0}'."),extends_clause_of_exported_interface_0_has_or_is_using_private_name_1:a(4022,e.DiagnosticCategory.Error,"extends_clause_of_exported_interface_0_has_or_is_using_private_name_1_4022","'extends' clause of exported interface '{0}' has or is using private name '{1}'."),Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4023,e.DiagnosticCategory.Error,"Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4023","Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named."),Exported_variable_0_has_or_is_using_name_1_from_private_module_2:a(4024,e.DiagnosticCategory.Error,"Exported_variable_0_has_or_is_using_name_1_from_private_module_2_4024","Exported variable '{0}' has or is using name '{1}' from private module '{2}'."),Exported_variable_0_has_or_is_using_private_name_1:a(4025,e.DiagnosticCategory.Error,"Exported_variable_0_has_or_is_using_private_name_1_4025","Exported variable '{0}' has or is using private name '{1}'."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4026,e.DiagnosticCategory.Error,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot__4026","Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4027,e.DiagnosticCategory.Error,"Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4027","Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:a(4028,e.DiagnosticCategory.Error,"Public_static_property_0_of_exported_class_has_or_is_using_private_name_1_4028","Public static property '{0}' of exported class has or is using private name '{1}'."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4029,e.DiagnosticCategory.Error,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_name_4029","Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4030,e.DiagnosticCategory.Error,"Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4030","Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_property_0_of_exported_class_has_or_is_using_private_name_1:a(4031,e.DiagnosticCategory.Error,"Public_property_0_of_exported_class_has_or_is_using_private_name_1_4031","Public property '{0}' of exported class has or is using private name '{1}'."),Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4032,e.DiagnosticCategory.Error,"Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4032","Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Property_0_of_exported_interface_has_or_is_using_private_name_1:a(4033,e.DiagnosticCategory.Error,"Property_0_of_exported_interface_has_or_is_using_private_name_1_4033","Property '{0}' of exported interface has or is using private name '{1}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4034,e.DiagnosticCategory.Error,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_mod_4034","Parameter type of public static setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:a(4035,e.DiagnosticCategory.Error,"Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1_4035","Parameter type of public static setter '{0}' from exported class has or is using private name '{1}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4036,e.DiagnosticCategory.Error,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4036","Parameter type of public setter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:a(4037,e.DiagnosticCategory.Error,"Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1_4037","Parameter type of public setter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4038,e.DiagnosticCategory.Error,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_modul_4038","Return type of public static getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4039,e.DiagnosticCategory.Error,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_4039","Return type of public static getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:a(4040,e.DiagnosticCategory.Error,"Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1_4040","Return type of public static getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4041,e.DiagnosticCategory.Error,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_4041","Return type of public getter '{0}' from exported class has or is using name '{1}' from external module {2} but cannot be named."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4042,e.DiagnosticCategory.Error,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2_4042","Return type of public getter '{0}' from exported class has or is using name '{1}' from private module '{2}'."),Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1:a(4043,e.DiagnosticCategory.Error,"Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1_4043","Return type of public getter '{0}' from exported class has or is using private name '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4044,e.DiagnosticCategory.Error,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_mod_4044","Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0:a(4045,e.DiagnosticCategory.Error,"Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0_4045","Return type of constructor signature from exported interface has or is using private name '{0}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4046,e.DiagnosticCategory.Error,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4046","Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0:a(4047,e.DiagnosticCategory.Error,"Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0_4047","Return type of call signature from exported interface has or is using private name '{0}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4048,e.DiagnosticCategory.Error,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4048","Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0:a(4049,e.DiagnosticCategory.Error,"Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0_4049","Return type of index signature from exported interface has or is using private name '{0}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:a(4050,e.DiagnosticCategory.Error,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module__4050","Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:a(4051,e.DiagnosticCategory.Error,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4051","Return type of public static method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:a(4052,e.DiagnosticCategory.Error,"Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0_4052","Return type of public static method from exported class has or is using private name '{0}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:a(4053,e.DiagnosticCategory.Error,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_c_4053","Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:a(4054,e.DiagnosticCategory.Error,"Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1_4054","Return type of public method from exported class has or is using name '{0}' from private module '{1}'."),Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:a(4055,e.DiagnosticCategory.Error,"Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0_4055","Return type of public method from exported class has or is using private name '{0}'."),Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:a(4056,e.DiagnosticCategory.Error,"Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1_4056","Return type of method from exported interface has or is using name '{0}' from private module '{1}'."),Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0:a(4057,e.DiagnosticCategory.Error,"Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0_4057","Return type of method from exported interface has or is using private name '{0}'."),Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:a(4058,e.DiagnosticCategory.Error,"Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named_4058","Return type of exported function has or is using name '{0}' from external module {1} but cannot be named."),Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:a(4059,e.DiagnosticCategory.Error,"Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1_4059","Return type of exported function has or is using name '{0}' from private module '{1}'."),Return_type_of_exported_function_has_or_is_using_private_name_0:a(4060,e.DiagnosticCategory.Error,"Return_type_of_exported_function_has_or_is_using_private_name_0_4060","Return type of exported function has or is using private name '{0}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4061,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_can_4061","Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4062,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2_4062","Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1:a(4063,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1_4063","Parameter '{0}' of constructor from exported class has or is using private name '{1}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4064,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_mod_4064","Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1:a(4065,e.DiagnosticCategory.Error,"Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1_4065","Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4066,e.DiagnosticCategory.Error,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4066","Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1:a(4067,e.DiagnosticCategory.Error,"Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1_4067","Parameter '{0}' of call signature from exported interface has or is using private name '{1}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4068,e.DiagnosticCategory.Error,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module__4068","Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4069,e.DiagnosticCategory.Error,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4069","Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:a(4070,e.DiagnosticCategory.Error,"Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1_4070","Parameter '{0}' of public static method from exported class has or is using private name '{1}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4071,e.DiagnosticCategory.Error,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_c_4071","Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:a(4072,e.DiagnosticCategory.Error,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2_4072","Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'."),Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:a(4073,e.DiagnosticCategory.Error,"Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1_4073","Parameter '{0}' of public method from exported class has or is using private name '{1}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4074,e.DiagnosticCategory.Error,"Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4074","Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1:a(4075,e.DiagnosticCategory.Error,"Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1_4075","Parameter '{0}' of method from exported interface has or is using private name '{1}'."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4076,e.DiagnosticCategory.Error,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4076","Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named."),Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:a(4077,e.DiagnosticCategory.Error,"Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2_4077","Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'."),Parameter_0_of_exported_function_has_or_is_using_private_name_1:a(4078,e.DiagnosticCategory.Error,"Parameter_0_of_exported_function_has_or_is_using_private_name_1_4078","Parameter '{0}' of exported function has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1:a(4081,e.DiagnosticCategory.Error,"Exported_type_alias_0_has_or_is_using_private_name_1_4081","Exported type alias '{0}' has or is using private name '{1}'."),Default_export_of_the_module_has_or_is_using_private_name_0:a(4082,e.DiagnosticCategory.Error,"Default_export_of_the_module_has_or_is_using_private_name_0_4082","Default export of the module has or is using private name '{0}'."),Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1:a(4083,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1_4083","Type parameter '{0}' of exported type alias has or is using private name '{1}'."),Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:a(4084,e.DiagnosticCategory.Error,"Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2_4084","Exported type alias '{0}' has or is using private name '{1}' from module {2}."),Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_library_to_resolve_the_conflict:a(4090,e.DiagnosticCategory.Error,"Conflicting_definitions_for_0_found_at_1_and_2_Consider_installing_a_specific_version_of_this_librar_4090","Conflicting definitions for '{0}' found at '{1}' and '{2}'. Consider installing a specific version of this library to resolve the conflict."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4091,e.DiagnosticCategory.Error,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2_4091","Parameter '{0}' of index signature from exported interface has or is using name '{1}' from private module '{2}'."),Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1:a(4092,e.DiagnosticCategory.Error,"Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1_4092","Parameter '{0}' of index signature from exported interface has or is using private name '{1}'."),Property_0_of_exported_class_expression_may_not_be_private_or_protected:a(4094,e.DiagnosticCategory.Error,"Property_0_of_exported_class_expression_may_not_be_private_or_protected_4094","Property '{0}' of exported class expression may not be private or protected."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4095,e.DiagnosticCategory.Error,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_4095","Public static method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4096,e.DiagnosticCategory.Error,"Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4096","Public static method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:a(4097,e.DiagnosticCategory.Error,"Public_static_method_0_of_exported_class_has_or_is_using_private_name_1_4097","Public static method '{0}' of exported class has or is using private name '{1}'."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4098,e.DiagnosticCategory.Error,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4098","Public method '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named."),Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:a(4099,e.DiagnosticCategory.Error,"Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2_4099","Public method '{0}' of exported class has or is using name '{1}' from private module '{2}'."),Public_method_0_of_exported_class_has_or_is_using_private_name_1:a(4100,e.DiagnosticCategory.Error,"Public_method_0_of_exported_class_has_or_is_using_private_name_1_4100","Public method '{0}' of exported class has or is using private name '{1}'."),Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:a(4101,e.DiagnosticCategory.Error,"Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2_4101","Method '{0}' of exported interface has or is using name '{1}' from private module '{2}'."),Method_0_of_exported_interface_has_or_is_using_private_name_1:a(4102,e.DiagnosticCategory.Error,"Method_0_of_exported_interface_has_or_is_using_private_name_1_4102","Method '{0}' of exported interface has or is using private name '{1}'."),Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1:a(4103,e.DiagnosticCategory.Error,"Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1_4103","Type parameter '{0}' of exported mapped object type is using private name '{1}'."),The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1:a(4104,e.DiagnosticCategory.Error,"The_type_0_is_readonly_and_cannot_be_assigned_to_the_mutable_type_1_4104","The type '{0}' is 'readonly' and cannot be assigned to the mutable type '{1}'."),Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter:a(4105,e.DiagnosticCategory.Error,"Private_or_protected_member_0_cannot_be_accessed_on_a_type_parameter_4105","Private or protected member '{0}' cannot be accessed on a type parameter."),Parameter_0_of_accessor_has_or_is_using_private_name_1:a(4106,e.DiagnosticCategory.Error,"Parameter_0_of_accessor_has_or_is_using_private_name_1_4106","Parameter '{0}' of accessor has or is using private name '{1}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:a(4107,e.DiagnosticCategory.Error,"Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2_4107","Parameter '{0}' of accessor has or is using name '{1}' from private module '{2}'."),Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:a(4108,e.DiagnosticCategory.Error,"Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named_4108","Parameter '{0}' of accessor has or is using name '{1}' from external module '{2}' but cannot be named."),Type_arguments_for_0_circularly_reference_themselves:a(4109,e.DiagnosticCategory.Error,"Type_arguments_for_0_circularly_reference_themselves_4109","Type arguments for '{0}' circularly reference themselves."),Tuple_type_arguments_circularly_reference_themselves:a(4110,e.DiagnosticCategory.Error,"Tuple_type_arguments_circularly_reference_themselves_4110","Tuple type arguments circularly reference themselves."),Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0:a(4111,e.DiagnosticCategory.Error,"Property_0_comes_from_an_index_signature_so_it_must_be_accessed_with_0_4111","Property '{0}' comes from an index signature, so it must be accessed with ['{0}']."),This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another_class:a(4112,e.DiagnosticCategory.Error,"This_member_cannot_have_an_override_modifier_because_its_containing_class_0_does_not_extend_another__4112","This member cannot have an 'override' modifier because its containing class '{0}' does not extend another class."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0:a(4113,e.DiagnosticCategory.Error,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_4113","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0:a(4114,e.DiagnosticCategory.Error,"This_member_must_have_an_override_modifier_because_it_overrides_a_member_in_the_base_class_0_4114","This member must have an 'override' modifier because it overrides a member in the base class '{0}'."),This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0:a(4115,e.DiagnosticCategory.Error,"This_parameter_property_must_have_an_override_modifier_because_it_overrides_a_member_in_base_class_0_4115","This parameter property must have an 'override' modifier because it overrides a member in base class '{0}'."),This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared_in_the_base_class_0:a(4116,e.DiagnosticCategory.Error,"This_member_must_have_an_override_modifier_because_it_overrides_an_abstract_method_that_is_declared__4116","This member must have an 'override' modifier because it overrides an abstract method that is declared in the base class '{0}'."),This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1:a(4117,e.DiagnosticCategory.Error,"This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you__4117","This member cannot have an 'override' modifier because it is not declared in the base class '{0}'. Did you mean '{1}'?"),The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized:a(4118,e.DiagnosticCategory.Error,"The_type_of_this_node_cannot_be_serialized_because_its_property_0_cannot_be_serialized_4118","The type of this node cannot be serialized because its property '{0}' cannot be serialized."),The_current_host_does_not_support_the_0_option:a(5001,e.DiagnosticCategory.Error,"The_current_host_does_not_support_the_0_option_5001","The current host does not support the '{0}' option."),Cannot_find_the_common_subdirectory_path_for_the_input_files:a(5009,e.DiagnosticCategory.Error,"Cannot_find_the_common_subdirectory_path_for_the_input_files_5009","Cannot find the common subdirectory path for the input files."),File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:a(5010,e.DiagnosticCategory.Error,"File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0_5010","File specification cannot end in a recursive directory wildcard ('**'): '{0}'."),Cannot_read_file_0_Colon_1:a(5012,e.DiagnosticCategory.Error,"Cannot_read_file_0_Colon_1_5012","Cannot read file '{0}': {1}."),Failed_to_parse_file_0_Colon_1:a(5014,e.DiagnosticCategory.Error,"Failed_to_parse_file_0_Colon_1_5014","Failed to parse file '{0}': {1}."),Unknown_compiler_option_0:a(5023,e.DiagnosticCategory.Error,"Unknown_compiler_option_0_5023","Unknown compiler option '{0}'."),Compiler_option_0_requires_a_value_of_type_1:a(5024,e.DiagnosticCategory.Error,"Compiler_option_0_requires_a_value_of_type_1_5024","Compiler option '{0}' requires a value of type {1}."),Unknown_compiler_option_0_Did_you_mean_1:a(5025,e.DiagnosticCategory.Error,"Unknown_compiler_option_0_Did_you_mean_1_5025","Unknown compiler option '{0}'. Did you mean '{1}'?"),Could_not_write_file_0_Colon_1:a(5033,e.DiagnosticCategory.Error,"Could_not_write_file_0_Colon_1_5033","Could not write file '{0}': {1}."),Option_project_cannot_be_mixed_with_source_files_on_a_command_line:a(5042,e.DiagnosticCategory.Error,"Option_project_cannot_be_mixed_with_source_files_on_a_command_line_5042","Option 'project' cannot be mixed with source files on a command line."),Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES2015_or_higher:a(5047,e.DiagnosticCategory.Error,"Option_isolatedModules_can_only_be_used_when_either_option_module_is_provided_or_option_target_is_ES_5047","Option 'isolatedModules' can only be used when either option '--module' is provided or option 'target' is 'ES2015' or higher."),Option_0_cannot_be_specified_when_option_target_is_ES3:a(5048,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_when_option_target_is_ES3_5048","Option '{0}' cannot be specified when option 'target' is 'ES3'."),Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided:a(5051,e.DiagnosticCategory.Error,"Option_0_can_only_be_used_when_either_option_inlineSourceMap_or_option_sourceMap_is_provided_5051","Option '{0} can only be used when either option '--inlineSourceMap' or option '--sourceMap' is provided."),Option_0_cannot_be_specified_without_specifying_option_1:a(5052,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_without_specifying_option_1_5052","Option '{0}' cannot be specified without specifying option '{1}'."),Option_0_cannot_be_specified_with_option_1:a(5053,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_with_option_1_5053","Option '{0}' cannot be specified with option '{1}'."),A_tsconfig_json_file_is_already_defined_at_Colon_0:a(5054,e.DiagnosticCategory.Error,"A_tsconfig_json_file_is_already_defined_at_Colon_0_5054","A 'tsconfig.json' file is already defined at: '{0}'."),Cannot_write_file_0_because_it_would_overwrite_input_file:a(5055,e.DiagnosticCategory.Error,"Cannot_write_file_0_because_it_would_overwrite_input_file_5055","Cannot write file '{0}' because it would overwrite input file."),Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files:a(5056,e.DiagnosticCategory.Error,"Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files_5056","Cannot write file '{0}' because it would be overwritten by multiple input files."),Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0:a(5057,e.DiagnosticCategory.Error,"Cannot_find_a_tsconfig_json_file_at_the_specified_directory_Colon_0_5057","Cannot find a tsconfig.json file at the specified directory: '{0}'."),The_specified_path_does_not_exist_Colon_0:a(5058,e.DiagnosticCategory.Error,"The_specified_path_does_not_exist_Colon_0_5058","The specified path does not exist: '{0}'."),Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier:a(5059,e.DiagnosticCategory.Error,"Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier_5059","Invalid value for '--reactNamespace'. '{0}' is not a valid identifier."),Pattern_0_can_have_at_most_one_Asterisk_character:a(5061,e.DiagnosticCategory.Error,"Pattern_0_can_have_at_most_one_Asterisk_character_5061","Pattern '{0}' can have at most one '*' character."),Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character:a(5062,e.DiagnosticCategory.Error,"Substitution_0_in_pattern_1_can_have_at_most_one_Asterisk_character_5062","Substitution '{0}' in pattern '{1}' can have at most one '*' character."),Substitutions_for_pattern_0_should_be_an_array:a(5063,e.DiagnosticCategory.Error,"Substitutions_for_pattern_0_should_be_an_array_5063","Substitutions for pattern '{0}' should be an array."),Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2:a(5064,e.DiagnosticCategory.Error,"Substitution_0_for_pattern_1_has_incorrect_type_expected_string_got_2_5064","Substitution '{0}' for pattern '{1}' has incorrect type, expected 'string', got '{2}'."),File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0:a(5065,e.DiagnosticCategory.Error,"File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildca_5065","File specification cannot contain a parent directory ('..') that appears after a recursive directory wildcard ('**'): '{0}'."),Substitutions_for_pattern_0_shouldn_t_be_an_empty_array:a(5066,e.DiagnosticCategory.Error,"Substitutions_for_pattern_0_shouldn_t_be_an_empty_array_5066","Substitutions for pattern '{0}' shouldn't be an empty array."),Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name:a(5067,e.DiagnosticCategory.Error,"Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name_5067","Invalid value for 'jsxFactory'. '{0}' is not a valid identifier or qualified-name."),Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig:a(5068,e.DiagnosticCategory.Error,"Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript__5068","Adding a tsconfig.json file will help organize projects that contain both TypeScript and JavaScript files. Learn more at https://aka.ms/tsconfig."),Option_0_cannot_be_specified_without_specifying_option_1_or_option_2:a(5069,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_without_specifying_option_1_or_option_2_5069","Option '{0}' cannot be specified without specifying option '{1}' or option '{2}'."),Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy:a(5070,e.DiagnosticCategory.Error,"Option_resolveJsonModule_cannot_be_specified_without_node_module_resolution_strategy_5070","Option '--resolveJsonModule' cannot be specified without 'node' module resolution strategy."),Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_esNext:a(5071,e.DiagnosticCategory.Error,"Option_resolveJsonModule_can_only_be_specified_when_module_code_generation_is_commonjs_amd_es2015_or_5071","Option '--resolveJsonModule' can only be specified when module code generation is 'commonjs', 'amd', 'es2015' or 'esNext'."),Unknown_build_option_0:a(5072,e.DiagnosticCategory.Error,"Unknown_build_option_0_5072","Unknown build option '{0}'."),Build_option_0_requires_a_value_of_type_1:a(5073,e.DiagnosticCategory.Error,"Build_option_0_requires_a_value_of_type_1_5073","Build option '{0}' requires a value of type {1}."),Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBuildInfoFile_is_specified:a(5074,e.DiagnosticCategory.Error,"Option_incremental_can_only_be_specified_using_tsconfig_emitting_to_single_file_or_when_option_tsBui_5074","Option '--incremental' can only be specified using tsconfig, emitting to single file or when option '--tsBuildInfoFile' is specified."),_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_constraint_2:a(5075,e.DiagnosticCategory.Error,"_0_is_assignable_to_the_constraint_of_type_1_but_1_could_be_instantiated_with_a_different_subtype_of_5075","'{0}' is assignable to the constraint of type '{1}', but '{1}' could be instantiated with a different subtype of constraint '{2}'."),_0_and_1_operations_cannot_be_mixed_without_parentheses:a(5076,e.DiagnosticCategory.Error,"_0_and_1_operations_cannot_be_mixed_without_parentheses_5076","'{0}' and '{1}' operations cannot be mixed without parentheses."),Unknown_build_option_0_Did_you_mean_1:a(5077,e.DiagnosticCategory.Error,"Unknown_build_option_0_Did_you_mean_1_5077","Unknown build option '{0}'. Did you mean '{1}'?"),Unknown_watch_option_0:a(5078,e.DiagnosticCategory.Error,"Unknown_watch_option_0_5078","Unknown watch option '{0}'."),Unknown_watch_option_0_Did_you_mean_1:a(5079,e.DiagnosticCategory.Error,"Unknown_watch_option_0_Did_you_mean_1_5079","Unknown watch option '{0}'. Did you mean '{1}'?"),Watch_option_0_requires_a_value_of_type_1:a(5080,e.DiagnosticCategory.Error,"Watch_option_0_requires_a_value_of_type_1_5080","Watch option '{0}' requires a value of type {1}."),Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0:a(5081,e.DiagnosticCategory.Error,"Cannot_find_a_tsconfig_json_file_at_the_current_directory_Colon_0_5081","Cannot find a tsconfig.json file at the current directory: {0}."),_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1:a(5082,e.DiagnosticCategory.Error,"_0_could_be_instantiated_with_an_arbitrary_type_which_could_be_unrelated_to_1_5082","'{0}' could be instantiated with an arbitrary type which could be unrelated to '{1}'."),Cannot_read_file_0:a(5083,e.DiagnosticCategory.Error,"Cannot_read_file_0_5083","Cannot read file '{0}'."),Tuple_members_must_all_have_names_or_all_not_have_names:a(5084,e.DiagnosticCategory.Error,"Tuple_members_must_all_have_names_or_all_not_have_names_5084","Tuple members must all have names or all not have names."),A_tuple_member_cannot_be_both_optional_and_rest:a(5085,e.DiagnosticCategory.Error,"A_tuple_member_cannot_be_both_optional_and_rest_5085","A tuple member cannot be both optional and rest."),A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type:a(5086,e.DiagnosticCategory.Error,"A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_c_5086","A labeled tuple element is declared as optional with a question mark after the name and before the colon, rather than after the type."),A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type:a(5087,e.DiagnosticCategory.Error,"A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type_5087","A labeled tuple element is declared as rest with a '...' before the name, rather than before the type."),The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialized_A_type_annotation_is_necessary:a(5088,e.DiagnosticCategory.Error,"The_inferred_type_of_0_references_a_type_with_a_cyclic_structure_which_cannot_be_trivially_serialize_5088","The inferred type of '{0}' references a type with a cyclic structure which cannot be trivially serialized. A type annotation is necessary."),Option_0_cannot_be_specified_when_option_jsx_is_1:a(5089,e.DiagnosticCategory.Error,"Option_0_cannot_be_specified_when_option_jsx_is_1_5089","Option '{0}' cannot be specified when option 'jsx' is '{1}'."),Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash:a(5090,e.DiagnosticCategory.Error,"Non_relative_paths_are_not_allowed_when_baseUrl_is_not_set_Did_you_forget_a_leading_Slash_5090","Non-relative paths are not allowed when 'baseUrl' is not set. Did you forget a leading './'?"),Option_preserveConstEnums_cannot_be_disabled_when_isolatedModules_is_enabled:a(5091,e.DiagnosticCategory.Error,"Option_preserveConstEnums_cannot_be_disabled_when_isolatedModules_is_enabled_5091","Option 'preserveConstEnums' cannot be disabled when 'isolatedModules' is enabled."),The_root_value_of_a_0_file_must_be_an_object:a(5092,e.DiagnosticCategory.Error,"The_root_value_of_a_0_file_must_be_an_object_5092","The root value of a '{0}' file must be an object."),Compiler_option_0_may_only_be_used_with_build:a(5093,e.DiagnosticCategory.Error,"Compiler_option_0_may_only_be_used_with_build_5093","Compiler option '--{0}' may only be used with '--build'."),Compiler_option_0_may_not_be_used_with_build:a(5094,e.DiagnosticCategory.Error,"Compiler_option_0_may_not_be_used_with_build_5094","Compiler option '--{0}' may not be used with '--build'."),Generates_a_sourcemap_for_each_corresponding_d_ts_file:a(6e3,e.DiagnosticCategory.Message,"Generates_a_sourcemap_for_each_corresponding_d_ts_file_6000","Generates a sourcemap for each corresponding '.d.ts' file."),Concatenate_and_emit_output_to_single_file:a(6001,e.DiagnosticCategory.Message,"Concatenate_and_emit_output_to_single_file_6001","Concatenate and emit output to single file."),Generates_corresponding_d_ts_file:a(6002,e.DiagnosticCategory.Message,"Generates_corresponding_d_ts_file_6002","Generates corresponding '.d.ts' file."),Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations:a(6655,e.DiagnosticCategory.Message,"Specify_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations_6655","Specify the location where debugger should locate map files instead of generated locations."),Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations:a(6004,e.DiagnosticCategory.Message,"Specify_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations_6004","Specify the location where debugger should locate TypeScript files instead of source locations."),Watch_input_files:a(6005,e.DiagnosticCategory.Message,"Watch_input_files_6005","Watch input files."),Redirect_output_structure_to_the_directory:a(6006,e.DiagnosticCategory.Message,"Redirect_output_structure_to_the_directory_6006","Redirect output structure to the directory."),Do_not_erase_const_enum_declarations_in_generated_code:a(6007,e.DiagnosticCategory.Message,"Do_not_erase_const_enum_declarations_in_generated_code_6007","Do not erase const enum declarations in generated code."),Do_not_emit_outputs_if_any_errors_were_reported:a(6008,e.DiagnosticCategory.Message,"Do_not_emit_outputs_if_any_errors_were_reported_6008","Do not emit outputs if any errors were reported."),Do_not_emit_comments_to_output:a(6009,e.DiagnosticCategory.Message,"Do_not_emit_comments_to_output_6009","Do not emit comments to output."),Do_not_emit_outputs:a(6010,e.DiagnosticCategory.Message,"Do_not_emit_outputs_6010","Do not emit outputs."),Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typechecking:a(6011,e.DiagnosticCategory.Message,"Allow_default_imports_from_modules_with_no_default_export_This_does_not_affect_code_emit_just_typech_6011","Allow default imports from modules with no default export. This does not affect code emit, just typechecking."),Skip_type_checking_of_declaration_files:a(6012,e.DiagnosticCategory.Message,"Skip_type_checking_of_declaration_files_6012","Skip type checking of declaration files."),Do_not_resolve_the_real_path_of_symlinks:a(6013,e.DiagnosticCategory.Message,"Do_not_resolve_the_real_path_of_symlinks_6013","Do not resolve the real path of symlinks."),Only_emit_d_ts_declaration_files:a(6014,e.DiagnosticCategory.Message,"Only_emit_d_ts_declaration_files_6014","Only emit '.d.ts' declaration files."),Specify_ECMAScript_target_version:a(6015,e.DiagnosticCategory.Message,"Specify_ECMAScript_target_version_6015","Specify ECMAScript target version."),Specify_module_code_generation:a(6016,e.DiagnosticCategory.Message,"Specify_module_code_generation_6016","Specify module code generation."),Print_this_message:a(6017,e.DiagnosticCategory.Message,"Print_this_message_6017","Print this message."),Print_the_compiler_s_version:a(6019,e.DiagnosticCategory.Message,"Print_the_compiler_s_version_6019","Print the compiler's version."),Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json:a(6020,e.DiagnosticCategory.Message,"Compile_the_project_given_the_path_to_its_configuration_file_or_to_a_folder_with_a_tsconfig_json_6020","Compile the project given the path to its configuration file, or to a folder with a 'tsconfig.json'."),Syntax_Colon_0:a(6023,e.DiagnosticCategory.Message,"Syntax_Colon_0_6023","Syntax: {0}"),options:a(6024,e.DiagnosticCategory.Message,"options_6024","options"),file:a(6025,e.DiagnosticCategory.Message,"file_6025","file"),Examples_Colon_0:a(6026,e.DiagnosticCategory.Message,"Examples_Colon_0_6026","Examples: {0}"),Options_Colon:a(6027,e.DiagnosticCategory.Message,"Options_Colon_6027","Options:"),Version_0:a(6029,e.DiagnosticCategory.Message,"Version_0_6029","Version {0}"),Insert_command_line_options_and_files_from_a_file:a(6030,e.DiagnosticCategory.Message,"Insert_command_line_options_and_files_from_a_file_6030","Insert command line options and files from a file."),Starting_compilation_in_watch_mode:a(6031,e.DiagnosticCategory.Message,"Starting_compilation_in_watch_mode_6031","Starting compilation in watch mode..."),File_change_detected_Starting_incremental_compilation:a(6032,e.DiagnosticCategory.Message,"File_change_detected_Starting_incremental_compilation_6032","File change detected. Starting incremental compilation..."),KIND:a(6034,e.DiagnosticCategory.Message,"KIND_6034","KIND"),FILE:a(6035,e.DiagnosticCategory.Message,"FILE_6035","FILE"),VERSION:a(6036,e.DiagnosticCategory.Message,"VERSION_6036","VERSION"),LOCATION:a(6037,e.DiagnosticCategory.Message,"LOCATION_6037","LOCATION"),DIRECTORY:a(6038,e.DiagnosticCategory.Message,"DIRECTORY_6038","DIRECTORY"),STRATEGY:a(6039,e.DiagnosticCategory.Message,"STRATEGY_6039","STRATEGY"),FILE_OR_DIRECTORY:a(6040,e.DiagnosticCategory.Message,"FILE_OR_DIRECTORY_6040","FILE OR DIRECTORY"),Generates_corresponding_map_file:a(6043,e.DiagnosticCategory.Message,"Generates_corresponding_map_file_6043","Generates corresponding '.map' file."),Compiler_option_0_expects_an_argument:a(6044,e.DiagnosticCategory.Error,"Compiler_option_0_expects_an_argument_6044","Compiler option '{0}' expects an argument."),Unterminated_quoted_string_in_response_file_0:a(6045,e.DiagnosticCategory.Error,"Unterminated_quoted_string_in_response_file_0_6045","Unterminated quoted string in response file '{0}'."),Argument_for_0_option_must_be_Colon_1:a(6046,e.DiagnosticCategory.Error,"Argument_for_0_option_must_be_Colon_1_6046","Argument for '{0}' option must be: {1}."),Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1:a(6048,e.DiagnosticCategory.Error,"Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1_6048","Locale must be of the form or -. For example '{0}' or '{1}'."),Unsupported_locale_0:a(6049,e.DiagnosticCategory.Error,"Unsupported_locale_0_6049","Unsupported locale '{0}'."),Unable_to_open_file_0:a(6050,e.DiagnosticCategory.Error,"Unable_to_open_file_0_6050","Unable to open file '{0}'."),Corrupted_locale_file_0:a(6051,e.DiagnosticCategory.Error,"Corrupted_locale_file_0_6051","Corrupted locale file {0}."),Raise_error_on_expressions_and_declarations_with_an_implied_any_type:a(6052,e.DiagnosticCategory.Message,"Raise_error_on_expressions_and_declarations_with_an_implied_any_type_6052","Raise error on expressions and declarations with an implied 'any' type."),File_0_not_found:a(6053,e.DiagnosticCategory.Error,"File_0_not_found_6053","File '{0}' not found."),File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1:a(6054,e.DiagnosticCategory.Error,"File_0_has_an_unsupported_extension_The_only_supported_extensions_are_1_6054","File '{0}' has an unsupported extension. The only supported extensions are {1}."),Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures:a(6055,e.DiagnosticCategory.Message,"Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures_6055","Suppress noImplicitAny errors for indexing objects lacking index signatures."),Do_not_emit_declarations_for_code_that_has_an_internal_annotation:a(6056,e.DiagnosticCategory.Message,"Do_not_emit_declarations_for_code_that_has_an_internal_annotation_6056","Do not emit declarations for code that has an '@internal' annotation."),Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir:a(6058,e.DiagnosticCategory.Message,"Specify_the_root_directory_of_input_files_Use_to_control_the_output_directory_structure_with_outDir_6058","Specify the root directory of input files. Use to control the output directory structure with --outDir."),File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files:a(6059,e.DiagnosticCategory.Error,"File_0_is_not_under_rootDir_1_rootDir_is_expected_to_contain_all_source_files_6059","File '{0}' is not under 'rootDir' '{1}'. 'rootDir' is expected to contain all source files."),Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix:a(6060,e.DiagnosticCategory.Message,"Specify_the_end_of_line_sequence_to_be_used_when_emitting_files_Colon_CRLF_dos_or_LF_unix_6060","Specify the end of line sequence to be used when emitting files: 'CRLF' (dos) or 'LF' (unix)."),NEWLINE:a(6061,e.DiagnosticCategory.Message,"NEWLINE_6061","NEWLINE"),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line:a(6064,e.DiagnosticCategory.Error,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line_6064","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'null' on command line."),Enables_experimental_support_for_ES7_decorators:a(6065,e.DiagnosticCategory.Message,"Enables_experimental_support_for_ES7_decorators_6065","Enables experimental support for ES7 decorators."),Enables_experimental_support_for_emitting_type_metadata_for_decorators:a(6066,e.DiagnosticCategory.Message,"Enables_experimental_support_for_emitting_type_metadata_for_decorators_6066","Enables experimental support for emitting type metadata for decorators."),Enables_experimental_support_for_ES7_async_functions:a(6068,e.DiagnosticCategory.Message,"Enables_experimental_support_for_ES7_async_functions_6068","Enables experimental support for ES7 async functions."),Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6:a(6069,e.DiagnosticCategory.Message,"Specify_module_resolution_strategy_Colon_node_Node_js_or_classic_TypeScript_pre_1_6_6069","Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)."),Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file:a(6070,e.DiagnosticCategory.Message,"Initializes_a_TypeScript_project_and_creates_a_tsconfig_json_file_6070","Initializes a TypeScript project and creates a tsconfig.json file."),Successfully_created_a_tsconfig_json_file:a(6071,e.DiagnosticCategory.Message,"Successfully_created_a_tsconfig_json_file_6071","Successfully created a tsconfig.json file."),Suppress_excess_property_checks_for_object_literals:a(6072,e.DiagnosticCategory.Message,"Suppress_excess_property_checks_for_object_literals_6072","Suppress excess property checks for object literals."),Stylize_errors_and_messages_using_color_and_context_experimental:a(6073,e.DiagnosticCategory.Message,"Stylize_errors_and_messages_using_color_and_context_experimental_6073","Stylize errors and messages using color and context (experimental)."),Do_not_report_errors_on_unused_labels:a(6074,e.DiagnosticCategory.Message,"Do_not_report_errors_on_unused_labels_6074","Do not report errors on unused labels."),Report_error_when_not_all_code_paths_in_function_return_a_value:a(6075,e.DiagnosticCategory.Message,"Report_error_when_not_all_code_paths_in_function_return_a_value_6075","Report error when not all code paths in function return a value."),Report_errors_for_fallthrough_cases_in_switch_statement:a(6076,e.DiagnosticCategory.Message,"Report_errors_for_fallthrough_cases_in_switch_statement_6076","Report errors for fallthrough cases in switch statement."),Do_not_report_errors_on_unreachable_code:a(6077,e.DiagnosticCategory.Message,"Do_not_report_errors_on_unreachable_code_6077","Do not report errors on unreachable code."),Disallow_inconsistently_cased_references_to_the_same_file:a(6078,e.DiagnosticCategory.Message,"Disallow_inconsistently_cased_references_to_the_same_file_6078","Disallow inconsistently-cased references to the same file."),Specify_library_files_to_be_included_in_the_compilation:a(6079,e.DiagnosticCategory.Message,"Specify_library_files_to_be_included_in_the_compilation_6079","Specify library files to be included in the compilation."),Specify_JSX_code_generation:a(6080,e.DiagnosticCategory.Message,"Specify_JSX_code_generation_6080","Specify JSX code generation."),File_0_has_an_unsupported_extension_so_skipping_it:a(6081,e.DiagnosticCategory.Message,"File_0_has_an_unsupported_extension_so_skipping_it_6081","File '{0}' has an unsupported extension, so skipping it."),Only_amd_and_system_modules_are_supported_alongside_0:a(6082,e.DiagnosticCategory.Error,"Only_amd_and_system_modules_are_supported_alongside_0_6082","Only 'amd' and 'system' modules are supported alongside --{0}."),Base_directory_to_resolve_non_absolute_module_names:a(6083,e.DiagnosticCategory.Message,"Base_directory_to_resolve_non_absolute_module_names_6083","Base directory to resolve non-absolute module names."),Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react_JSX_emit:a(6084,e.DiagnosticCategory.Message,"Deprecated_Use_jsxFactory_instead_Specify_the_object_invoked_for_createElement_when_targeting_react__6084","[Deprecated] Use '--jsxFactory' instead. Specify the object invoked for createElement when targeting 'react' JSX emit"),Enable_tracing_of_the_name_resolution_process:a(6085,e.DiagnosticCategory.Message,"Enable_tracing_of_the_name_resolution_process_6085","Enable tracing of the name resolution process."),Resolving_module_0_from_1:a(6086,e.DiagnosticCategory.Message,"Resolving_module_0_from_1_6086","======== Resolving module '{0}' from '{1}'. ========"),Explicitly_specified_module_resolution_kind_Colon_0:a(6087,e.DiagnosticCategory.Message,"Explicitly_specified_module_resolution_kind_Colon_0_6087","Explicitly specified module resolution kind: '{0}'."),Module_resolution_kind_is_not_specified_using_0:a(6088,e.DiagnosticCategory.Message,"Module_resolution_kind_is_not_specified_using_0_6088","Module resolution kind is not specified, using '{0}'."),Module_name_0_was_successfully_resolved_to_1:a(6089,e.DiagnosticCategory.Message,"Module_name_0_was_successfully_resolved_to_1_6089","======== Module name '{0}' was successfully resolved to '{1}'. ========"),Module_name_0_was_not_resolved:a(6090,e.DiagnosticCategory.Message,"Module_name_0_was_not_resolved_6090","======== Module name '{0}' was not resolved. ========"),paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0:a(6091,e.DiagnosticCategory.Message,"paths_option_is_specified_looking_for_a_pattern_to_match_module_name_0_6091","'paths' option is specified, looking for a pattern to match module name '{0}'."),Module_name_0_matched_pattern_1:a(6092,e.DiagnosticCategory.Message,"Module_name_0_matched_pattern_1_6092","Module name '{0}', matched pattern '{1}'."),Trying_substitution_0_candidate_module_location_Colon_1:a(6093,e.DiagnosticCategory.Message,"Trying_substitution_0_candidate_module_location_Colon_1_6093","Trying substitution '{0}', candidate module location: '{1}'."),Resolving_module_name_0_relative_to_base_url_1_2:a(6094,e.DiagnosticCategory.Message,"Resolving_module_name_0_relative_to_base_url_1_2_6094","Resolving module name '{0}' relative to base url '{1}' - '{2}'."),Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1:a(6095,e.DiagnosticCategory.Message,"Loading_module_as_file_Slash_folder_candidate_module_location_0_target_file_type_1_6095","Loading module as file / folder, candidate module location '{0}', target file type '{1}'."),File_0_does_not_exist:a(6096,e.DiagnosticCategory.Message,"File_0_does_not_exist_6096","File '{0}' does not exist."),File_0_exist_use_it_as_a_name_resolution_result:a(6097,e.DiagnosticCategory.Message,"File_0_exist_use_it_as_a_name_resolution_result_6097","File '{0}' exist - use it as a name resolution result."),Loading_module_0_from_node_modules_folder_target_file_type_1:a(6098,e.DiagnosticCategory.Message,"Loading_module_0_from_node_modules_folder_target_file_type_1_6098","Loading module '{0}' from 'node_modules' folder, target file type '{1}'."),Found_package_json_at_0:a(6099,e.DiagnosticCategory.Message,"Found_package_json_at_0_6099","Found 'package.json' at '{0}'."),package_json_does_not_have_a_0_field:a(6100,e.DiagnosticCategory.Message,"package_json_does_not_have_a_0_field_6100","'package.json' does not have a '{0}' field."),package_json_has_0_field_1_that_references_2:a(6101,e.DiagnosticCategory.Message,"package_json_has_0_field_1_that_references_2_6101","'package.json' has '{0}' field '{1}' that references '{2}'."),Allow_javascript_files_to_be_compiled:a(6102,e.DiagnosticCategory.Message,"Allow_javascript_files_to_be_compiled_6102","Allow javascript files to be compiled."),Option_0_should_have_array_of_strings_as_a_value:a(6103,e.DiagnosticCategory.Error,"Option_0_should_have_array_of_strings_as_a_value_6103","Option '{0}' should have array of strings as a value."),Checking_if_0_is_the_longest_matching_prefix_for_1_2:a(6104,e.DiagnosticCategory.Message,"Checking_if_0_is_the_longest_matching_prefix_for_1_2_6104","Checking if '{0}' is the longest matching prefix for '{1}' - '{2}'."),Expected_type_of_0_field_in_package_json_to_be_1_got_2:a(6105,e.DiagnosticCategory.Message,"Expected_type_of_0_field_in_package_json_to_be_1_got_2_6105","Expected type of '{0}' field in 'package.json' to be '{1}', got '{2}'."),baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1:a(6106,e.DiagnosticCategory.Message,"baseUrl_option_is_set_to_0_using_this_value_to_resolve_non_relative_module_name_1_6106","'baseUrl' option is set to '{0}', using this value to resolve non-relative module name '{1}'."),rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0:a(6107,e.DiagnosticCategory.Message,"rootDirs_option_is_set_using_it_to_resolve_relative_module_name_0_6107","'rootDirs' option is set, using it to resolve relative module name '{0}'."),Longest_matching_prefix_for_0_is_1:a(6108,e.DiagnosticCategory.Message,"Longest_matching_prefix_for_0_is_1_6108","Longest matching prefix for '{0}' is '{1}'."),Loading_0_from_the_root_dir_1_candidate_location_2:a(6109,e.DiagnosticCategory.Message,"Loading_0_from_the_root_dir_1_candidate_location_2_6109","Loading '{0}' from the root dir '{1}', candidate location '{2}'."),Trying_other_entries_in_rootDirs:a(6110,e.DiagnosticCategory.Message,"Trying_other_entries_in_rootDirs_6110","Trying other entries in 'rootDirs'."),Module_resolution_using_rootDirs_has_failed:a(6111,e.DiagnosticCategory.Message,"Module_resolution_using_rootDirs_has_failed_6111","Module resolution using 'rootDirs' has failed."),Do_not_emit_use_strict_directives_in_module_output:a(6112,e.DiagnosticCategory.Message,"Do_not_emit_use_strict_directives_in_module_output_6112","Do not emit 'use strict' directives in module output."),Enable_strict_null_checks:a(6113,e.DiagnosticCategory.Message,"Enable_strict_null_checks_6113","Enable strict null checks."),Unknown_option_excludes_Did_you_mean_exclude:a(6114,e.DiagnosticCategory.Error,"Unknown_option_excludes_Did_you_mean_exclude_6114","Unknown option 'excludes'. Did you mean 'exclude'?"),Raise_error_on_this_expressions_with_an_implied_any_type:a(6115,e.DiagnosticCategory.Message,"Raise_error_on_this_expressions_with_an_implied_any_type_6115","Raise error on 'this' expressions with an implied 'any' type."),Resolving_type_reference_directive_0_containing_file_1_root_directory_2:a(6116,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_1_root_directory_2_6116","======== Resolving type reference directive '{0}', containing file '{1}', root directory '{2}'. ========"),Resolving_using_primary_search_paths:a(6117,e.DiagnosticCategory.Message,"Resolving_using_primary_search_paths_6117","Resolving using primary search paths..."),Resolving_from_node_modules_folder:a(6118,e.DiagnosticCategory.Message,"Resolving_from_node_modules_folder_6118","Resolving from node_modules folder..."),Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2:a(6119,e.DiagnosticCategory.Message,"Type_reference_directive_0_was_successfully_resolved_to_1_primary_Colon_2_6119","======== Type reference directive '{0}' was successfully resolved to '{1}', primary: {2}. ========"),Type_reference_directive_0_was_not_resolved:a(6120,e.DiagnosticCategory.Message,"Type_reference_directive_0_was_not_resolved_6120","======== Type reference directive '{0}' was not resolved. ========"),Resolving_with_primary_search_path_0:a(6121,e.DiagnosticCategory.Message,"Resolving_with_primary_search_path_0_6121","Resolving with primary search path '{0}'."),Root_directory_cannot_be_determined_skipping_primary_search_paths:a(6122,e.DiagnosticCategory.Message,"Root_directory_cannot_be_determined_skipping_primary_search_paths_6122","Root directory cannot be determined, skipping primary search paths."),Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set:a(6123,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_1_root_directory_not_set_6123","======== Resolving type reference directive '{0}', containing file '{1}', root directory not set. ========"),Type_declaration_files_to_be_included_in_compilation:a(6124,e.DiagnosticCategory.Message,"Type_declaration_files_to_be_included_in_compilation_6124","Type declaration files to be included in compilation."),Looking_up_in_node_modules_folder_initial_location_0:a(6125,e.DiagnosticCategory.Message,"Looking_up_in_node_modules_folder_initial_location_0_6125","Looking up in 'node_modules' folder, initial location '{0}'."),Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_modules_folder:a(6126,e.DiagnosticCategory.Message,"Containing_file_is_not_specified_and_root_directory_cannot_be_determined_skipping_lookup_in_node_mod_6126","Containing file is not specified and root directory cannot be determined, skipping lookup in 'node_modules' folder."),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1:a(6127,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_1_6127","======== Resolving type reference directive '{0}', containing file not set, root directory '{1}'. ========"),Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set:a(6128,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_not_set_root_directory_not_set_6128","======== Resolving type reference directive '{0}', containing file not set, root directory not set. ========"),Resolving_real_path_for_0_result_1:a(6130,e.DiagnosticCategory.Message,"Resolving_real_path_for_0_result_1_6130","Resolving real path for '{0}', result '{1}'."),Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system:a(6131,e.DiagnosticCategory.Error,"Cannot_compile_modules_using_option_0_unless_the_module_flag_is_amd_or_system_6131","Cannot compile modules using option '{0}' unless the '--module' flag is 'amd' or 'system'."),File_name_0_has_a_1_extension_stripping_it:a(6132,e.DiagnosticCategory.Message,"File_name_0_has_a_1_extension_stripping_it_6132","File name '{0}' has a '{1}' extension - stripping it."),_0_is_declared_but_its_value_is_never_read:a(6133,e.DiagnosticCategory.Error,"_0_is_declared_but_its_value_is_never_read_6133","'{0}' is declared but its value is never read.",!0),Report_errors_on_unused_locals:a(6134,e.DiagnosticCategory.Message,"Report_errors_on_unused_locals_6134","Report errors on unused locals."),Report_errors_on_unused_parameters:a(6135,e.DiagnosticCategory.Message,"Report_errors_on_unused_parameters_6135","Report errors on unused parameters."),The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files:a(6136,e.DiagnosticCategory.Message,"The_maximum_dependency_depth_to_search_under_node_modules_and_load_JavaScript_files_6136","The maximum dependency depth to search under node_modules and load JavaScript files."),Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1:a(6137,e.DiagnosticCategory.Error,"Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1_6137","Cannot import type declaration files. Consider importing '{0}' instead of '{1}'."),Property_0_is_declared_but_its_value_is_never_read:a(6138,e.DiagnosticCategory.Error,"Property_0_is_declared_but_its_value_is_never_read_6138","Property '{0}' is declared but its value is never read.",!0),Import_emit_helpers_from_tslib:a(6139,e.DiagnosticCategory.Message,"Import_emit_helpers_from_tslib_6139","Import emit helpers from 'tslib'."),Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using_cache_location_2:a(6140,e.DiagnosticCategory.Error,"Auto_discovery_for_typings_is_enabled_in_project_0_Running_extra_resolution_pass_for_module_1_using__6140","Auto discovery for typings is enabled in project '{0}'. Running extra resolution pass for module '{1}' using cache location '{2}'."),Parse_in_strict_mode_and_emit_use_strict_for_each_source_file:a(6141,e.DiagnosticCategory.Message,"Parse_in_strict_mode_and_emit_use_strict_for_each_source_file_6141",'Parse in strict mode and emit "use strict" for each source file.'),Module_0_was_resolved_to_1_but_jsx_is_not_set:a(6142,e.DiagnosticCategory.Error,"Module_0_was_resolved_to_1_but_jsx_is_not_set_6142","Module '{0}' was resolved to '{1}', but '--jsx' is not set."),Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1:a(6144,e.DiagnosticCategory.Message,"Module_0_was_resolved_as_locally_declared_ambient_module_in_file_1_6144","Module '{0}' was resolved as locally declared ambient module in file '{1}'."),Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified:a(6145,e.DiagnosticCategory.Message,"Module_0_was_resolved_as_ambient_module_declared_in_1_since_this_file_was_not_modified_6145","Module '{0}' was resolved as ambient module declared in '{1}' since this file was not modified."),Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h:a(6146,e.DiagnosticCategory.Message,"Specify_the_JSX_factory_function_to_use_when_targeting_react_JSX_emit_e_g_React_createElement_or_h_6146","Specify the JSX factory function to use when targeting 'react' JSX emit, e.g. 'React.createElement' or 'h'."),Resolution_for_module_0_was_found_in_cache_from_location_1:a(6147,e.DiagnosticCategory.Message,"Resolution_for_module_0_was_found_in_cache_from_location_1_6147","Resolution for module '{0}' was found in cache from location '{1}'."),Directory_0_does_not_exist_skipping_all_lookups_in_it:a(6148,e.DiagnosticCategory.Message,"Directory_0_does_not_exist_skipping_all_lookups_in_it_6148","Directory '{0}' does not exist, skipping all lookups in it."),Show_diagnostic_information:a(6149,e.DiagnosticCategory.Message,"Show_diagnostic_information_6149","Show diagnostic information."),Show_verbose_diagnostic_information:a(6150,e.DiagnosticCategory.Message,"Show_verbose_diagnostic_information_6150","Show verbose diagnostic information."),Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file:a(6151,e.DiagnosticCategory.Message,"Emit_a_single_file_with_source_maps_instead_of_having_a_separate_file_6151","Emit a single file with source maps instead of having a separate file."),Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap_to_be_set:a(6152,e.DiagnosticCategory.Message,"Emit_the_source_alongside_the_sourcemaps_within_a_single_file_requires_inlineSourceMap_or_sourceMap__6152","Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set."),Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule:a(6153,e.DiagnosticCategory.Message,"Transpile_each_file_as_a_separate_module_similar_to_ts_transpileModule_6153","Transpile each file as a separate module (similar to 'ts.transpileModule')."),Print_names_of_generated_files_part_of_the_compilation:a(6154,e.DiagnosticCategory.Message,"Print_names_of_generated_files_part_of_the_compilation_6154","Print names of generated files part of the compilation."),Print_names_of_files_part_of_the_compilation:a(6155,e.DiagnosticCategory.Message,"Print_names_of_files_part_of_the_compilation_6155","Print names of files part of the compilation."),The_locale_used_when_displaying_messages_to_the_user_e_g_en_us:a(6156,e.DiagnosticCategory.Message,"The_locale_used_when_displaying_messages_to_the_user_e_g_en_us_6156","The locale used when displaying messages to the user (e.g. 'en-us')"),Do_not_generate_custom_helper_functions_like_extends_in_compiled_output:a(6157,e.DiagnosticCategory.Message,"Do_not_generate_custom_helper_functions_like_extends_in_compiled_output_6157","Do not generate custom helper functions like '__extends' in compiled output."),Do_not_include_the_default_library_file_lib_d_ts:a(6158,e.DiagnosticCategory.Message,"Do_not_include_the_default_library_file_lib_d_ts_6158","Do not include the default library file (lib.d.ts)."),Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files:a(6159,e.DiagnosticCategory.Message,"Do_not_add_triple_slash_references_or_imported_modules_to_the_list_of_compiled_files_6159","Do not add triple-slash references or imported modules to the list of compiled files."),Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files:a(6160,e.DiagnosticCategory.Message,"Deprecated_Use_skipLibCheck_instead_Skip_type_checking_of_default_library_declaration_files_6160","[Deprecated] Use '--skipLibCheck' instead. Skip type checking of default library declaration files."),List_of_folders_to_include_type_definitions_from:a(6161,e.DiagnosticCategory.Message,"List_of_folders_to_include_type_definitions_from_6161","List of folders to include type definitions from."),Disable_size_limitations_on_JavaScript_projects:a(6162,e.DiagnosticCategory.Message,"Disable_size_limitations_on_JavaScript_projects_6162","Disable size limitations on JavaScript projects."),The_character_set_of_the_input_files:a(6163,e.DiagnosticCategory.Message,"The_character_set_of_the_input_files_6163","The character set of the input files."),Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files:a(6622,e.DiagnosticCategory.Message,"Emit_a_UTF_8_Byte_Order_Mark_BOM_in_the_beginning_of_output_files_6622","Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files."),Do_not_truncate_error_messages:a(6165,e.DiagnosticCategory.Message,"Do_not_truncate_error_messages_6165","Do not truncate error messages."),Output_directory_for_generated_declaration_files:a(6166,e.DiagnosticCategory.Message,"Output_directory_for_generated_declaration_files_6166","Output directory for generated declaration files."),A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl:a(6167,e.DiagnosticCategory.Message,"A_series_of_entries_which_re_map_imports_to_lookup_locations_relative_to_the_baseUrl_6167","A series of entries which re-map imports to lookup locations relative to the 'baseUrl'."),List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime:a(6168,e.DiagnosticCategory.Message,"List_of_root_folders_whose_combined_content_represents_the_structure_of_the_project_at_runtime_6168","List of root folders whose combined content represents the structure of the project at runtime."),Show_all_compiler_options:a(6169,e.DiagnosticCategory.Message,"Show_all_compiler_options_6169","Show all compiler options."),Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file:a(6170,e.DiagnosticCategory.Message,"Deprecated_Use_outFile_instead_Concatenate_and_emit_output_to_single_file_6170","[Deprecated] Use '--outFile' instead. Concatenate and emit output to single file"),Command_line_Options:a(6171,e.DiagnosticCategory.Message,"Command_line_Options_6171","Command-line Options"),Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3:a(6179,e.DiagnosticCategory.Message,"Provide_full_support_for_iterables_in_for_of_spread_and_destructuring_when_targeting_ES5_or_ES3_6179","Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'."),Enable_all_strict_type_checking_options:a(6180,e.DiagnosticCategory.Message,"Enable_all_strict_type_checking_options_6180","Enable all strict type-checking options."),List_of_language_service_plugins:a(6181,e.DiagnosticCategory.Message,"List_of_language_service_plugins_6181","List of language service plugins."),Scoped_package_detected_looking_in_0:a(6182,e.DiagnosticCategory.Message,"Scoped_package_detected_looking_in_0_6182","Scoped package detected, looking in '{0}'"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2:a(6183,e.DiagnosticCategory.Message,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_6183","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:a(6184,e.DiagnosticCategory.Message,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package__6184","Reusing resolution of module '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Enable_strict_checking_of_function_types:a(6186,e.DiagnosticCategory.Message,"Enable_strict_checking_of_function_types_6186","Enable strict checking of function types."),Enable_strict_checking_of_property_initialization_in_classes:a(6187,e.DiagnosticCategory.Message,"Enable_strict_checking_of_property_initialization_in_classes_6187","Enable strict checking of property initialization in classes."),Numeric_separators_are_not_allowed_here:a(6188,e.DiagnosticCategory.Error,"Numeric_separators_are_not_allowed_here_6188","Numeric separators are not allowed here."),Multiple_consecutive_numeric_separators_are_not_permitted:a(6189,e.DiagnosticCategory.Error,"Multiple_consecutive_numeric_separators_are_not_permitted_6189","Multiple consecutive numeric separators are not permitted."),Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen:a(6191,e.DiagnosticCategory.Message,"Whether_to_keep_outdated_console_output_in_watch_mode_instead_of_clearing_the_screen_6191","Whether to keep outdated console output in watch mode instead of clearing the screen."),All_imports_in_import_declaration_are_unused:a(6192,e.DiagnosticCategory.Error,"All_imports_in_import_declaration_are_unused_6192","All imports in import declaration are unused.",!0),Found_1_error_Watching_for_file_changes:a(6193,e.DiagnosticCategory.Message,"Found_1_error_Watching_for_file_changes_6193","Found 1 error. Watching for file changes."),Found_0_errors_Watching_for_file_changes:a(6194,e.DiagnosticCategory.Message,"Found_0_errors_Watching_for_file_changes_6194","Found {0} errors. Watching for file changes."),Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols:a(6195,e.DiagnosticCategory.Message,"Resolve_keyof_to_string_valued_property_names_only_no_numbers_or_symbols_6195","Resolve 'keyof' to string valued property names only (no numbers or symbols)."),_0_is_declared_but_never_used:a(6196,e.DiagnosticCategory.Error,"_0_is_declared_but_never_used_6196","'{0}' is declared but never used.",!0),Include_modules_imported_with_json_extension:a(6197,e.DiagnosticCategory.Message,"Include_modules_imported_with_json_extension_6197","Include modules imported with '.json' extension"),All_destructured_elements_are_unused:a(6198,e.DiagnosticCategory.Error,"All_destructured_elements_are_unused_6198","All destructured elements are unused.",!0),All_variables_are_unused:a(6199,e.DiagnosticCategory.Error,"All_variables_are_unused_6199","All variables are unused.",!0),Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0:a(6200,e.DiagnosticCategory.Error,"Definitions_of_the_following_identifiers_conflict_with_those_in_another_file_Colon_0_6200","Definitions of the following identifiers conflict with those in another file: {0}"),Conflicts_are_in_this_file:a(6201,e.DiagnosticCategory.Message,"Conflicts_are_in_this_file_6201","Conflicts are in this file."),Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0:a(6202,e.DiagnosticCategory.Error,"Project_references_may_not_form_a_circular_graph_Cycle_detected_Colon_0_6202","Project references may not form a circular graph. Cycle detected: {0}"),_0_was_also_declared_here:a(6203,e.DiagnosticCategory.Message,"_0_was_also_declared_here_6203","'{0}' was also declared here."),and_here:a(6204,e.DiagnosticCategory.Message,"and_here_6204","and here."),All_type_parameters_are_unused:a(6205,e.DiagnosticCategory.Error,"All_type_parameters_are_unused_6205","All type parameters are unused."),package_json_has_a_typesVersions_field_with_version_specific_path_mappings:a(6206,e.DiagnosticCategory.Message,"package_json_has_a_typesVersions_field_with_version_specific_path_mappings_6206","'package.json' has a 'typesVersions' field with version-specific path mappings."),package_json_does_not_have_a_typesVersions_entry_that_matches_version_0:a(6207,e.DiagnosticCategory.Message,"package_json_does_not_have_a_typesVersions_entry_that_matches_version_0_6207","'package.json' does not have a 'typesVersions' entry that matches version '{0}'."),package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_match_module_name_2:a(6208,e.DiagnosticCategory.Message,"package_json_has_a_typesVersions_entry_0_that_matches_compiler_version_1_looking_for_a_pattern_to_ma_6208","'package.json' has a 'typesVersions' entry '{0}' that matches compiler version '{1}', looking for a pattern to match module name '{2}'."),package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range:a(6209,e.DiagnosticCategory.Message,"package_json_has_a_typesVersions_entry_0_that_is_not_a_valid_semver_range_6209","'package.json' has a 'typesVersions' entry '{0}' that is not a valid semver range."),An_argument_for_0_was_not_provided:a(6210,e.DiagnosticCategory.Message,"An_argument_for_0_was_not_provided_6210","An argument for '{0}' was not provided."),An_argument_matching_this_binding_pattern_was_not_provided:a(6211,e.DiagnosticCategory.Message,"An_argument_matching_this_binding_pattern_was_not_provided_6211","An argument matching this binding pattern was not provided."),Did_you_mean_to_call_this_expression:a(6212,e.DiagnosticCategory.Message,"Did_you_mean_to_call_this_expression_6212","Did you mean to call this expression?"),Did_you_mean_to_use_new_with_this_expression:a(6213,e.DiagnosticCategory.Message,"Did_you_mean_to_use_new_with_this_expression_6213","Did you mean to use 'new' with this expression?"),Enable_strict_bind_call_and_apply_methods_on_functions:a(6214,e.DiagnosticCategory.Message,"Enable_strict_bind_call_and_apply_methods_on_functions_6214","Enable strict 'bind', 'call', and 'apply' methods on functions."),Using_compiler_options_of_project_reference_redirect_0:a(6215,e.DiagnosticCategory.Message,"Using_compiler_options_of_project_reference_redirect_0_6215","Using compiler options of project reference redirect '{0}'."),Found_1_error:a(6216,e.DiagnosticCategory.Message,"Found_1_error_6216","Found 1 error."),Found_0_errors:a(6217,e.DiagnosticCategory.Message,"Found_0_errors_6217","Found {0} errors."),Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2:a(6218,e.DiagnosticCategory.Message,"Module_name_0_was_successfully_resolved_to_1_with_Package_ID_2_6218","======== Module name '{0}' was successfully resolved to '{1}' with Package ID '{2}'. ========"),Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3:a(6219,e.DiagnosticCategory.Message,"Type_reference_directive_0_was_successfully_resolved_to_1_with_Package_ID_2_primary_Colon_3_6219","======== Type reference directive '{0}' was successfully resolved to '{1}' with Package ID '{2}', primary: {3}. ========"),package_json_had_a_falsy_0_field:a(6220,e.DiagnosticCategory.Message,"package_json_had_a_falsy_0_field_6220","'package.json' had a falsy '{0}' field."),Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects:a(6221,e.DiagnosticCategory.Message,"Disable_use_of_source_files_instead_of_declaration_files_from_referenced_projects_6221","Disable use of source files instead of declaration files from referenced projects."),Emit_class_fields_with_Define_instead_of_Set:a(6222,e.DiagnosticCategory.Message,"Emit_class_fields_with_Define_instead_of_Set_6222","Emit class fields with Define instead of Set."),Generates_a_CPU_profile:a(6223,e.DiagnosticCategory.Message,"Generates_a_CPU_profile_6223","Generates a CPU profile."),Disable_solution_searching_for_this_project:a(6224,e.DiagnosticCategory.Message,"Disable_solution_searching_for_this_project_6224","Disable solution searching for this project."),Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling_UseFsEvents_UseFsEventsOnParentDirectory:a(6225,e.DiagnosticCategory.Message,"Specify_strategy_for_watching_file_Colon_FixedPollingInterval_default_PriorityPollingInterval_Dynami_6225","Specify strategy for watching file: 'FixedPollingInterval' (default), 'PriorityPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling', 'UseFsEvents', 'UseFsEventsOnParentDirectory'."),Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively_Colon_UseFsEvents_default_FixedPollingInterval_DynamicPriorityPolling_FixedChunkSizePolling:a(6226,e.DiagnosticCategory.Message,"Specify_strategy_for_watching_directory_on_platforms_that_don_t_support_recursive_watching_natively__6226","Specify strategy for watching directory on platforms that don't support recursive watching natively: 'UseFsEvents' (default), 'FixedPollingInterval', 'DynamicPriorityPolling', 'FixedChunkSizePolling'."),Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_FixedInterval_default_PriorityInterval_DynamicPriority_FixedChunkSize:a(6227,e.DiagnosticCategory.Message,"Specify_strategy_for_creating_a_polling_watch_when_it_fails_to_create_using_file_system_events_Colon_6227","Specify strategy for creating a polling watch when it fails to create using file system events: 'FixedInterval' (default), 'PriorityInterval', 'DynamicPriority', 'FixedChunkSize'."),Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3:a(6229,e.DiagnosticCategory.Error,"Tag_0_expects_at_least_1_arguments_but_the_JSX_factory_2_provides_at_most_3_6229","Tag '{0}' expects at least '{1}' arguments, but the JSX factory '{2}' provides at most '{3}'."),Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line:a(6230,e.DiagnosticCategory.Error,"Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line_6230","Option '{0}' can only be specified in 'tsconfig.json' file or set to 'false' or 'null' on command line."),Could_not_resolve_the_path_0_with_the_extensions_Colon_1:a(6231,e.DiagnosticCategory.Error,"Could_not_resolve_the_path_0_with_the_extensions_Colon_1_6231","Could not resolve the path '{0}' with the extensions: {1}."),Declaration_augments_declaration_in_another_file_This_cannot_be_serialized:a(6232,e.DiagnosticCategory.Error,"Declaration_augments_declaration_in_another_file_This_cannot_be_serialized_6232","Declaration augments declaration in another file. This cannot be serialized."),This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_file:a(6233,e.DiagnosticCategory.Error,"This_is_the_declaration_being_augmented_Consider_moving_the_augmenting_declaration_into_the_same_fil_6233","This is the declaration being augmented. Consider moving the augmenting declaration into the same file."),This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without:a(6234,e.DiagnosticCategory.Error,"This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without_6234","This expression is not callable because it is a 'get' accessor. Did you mean to use it without '()'?"),Disable_loading_referenced_projects:a(6235,e.DiagnosticCategory.Message,"Disable_loading_referenced_projects_6235","Disable loading referenced projects."),Arguments_for_the_rest_parameter_0_were_not_provided:a(6236,e.DiagnosticCategory.Error,"Arguments_for_the_rest_parameter_0_were_not_provided_6236","Arguments for the rest parameter '{0}' were not provided."),Generates_an_event_trace_and_a_list_of_types:a(6237,e.DiagnosticCategory.Message,"Generates_an_event_trace_and_a_list_of_types_6237","Generates an event trace and a list of types."),Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react:a(6238,e.DiagnosticCategory.Error,"Specify_the_module_specifier_to_be_used_to_import_the_jsx_and_jsxs_factory_functions_from_eg_react_6238","Specify the module specifier to be used to import the 'jsx' and 'jsxs' factory functions from. eg, react"),File_0_exists_according_to_earlier_cached_lookups:a(6239,e.DiagnosticCategory.Message,"File_0_exists_according_to_earlier_cached_lookups_6239","File '{0}' exists according to earlier cached lookups."),File_0_does_not_exist_according_to_earlier_cached_lookups:a(6240,e.DiagnosticCategory.Message,"File_0_does_not_exist_according_to_earlier_cached_lookups_6240","File '{0}' does not exist according to earlier cached lookups."),Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1:a(6241,e.DiagnosticCategory.Message,"Resolution_for_type_reference_directive_0_was_found_in_cache_from_location_1_6241","Resolution for type reference directive '{0}' was found in cache from location '{1}'."),Resolving_type_reference_directive_0_containing_file_1:a(6242,e.DiagnosticCategory.Message,"Resolving_type_reference_directive_0_containing_file_1_6242","======== Resolving type reference directive '{0}', containing file '{1}'. ========"),Interpret_optional_property_types_as_written_rather_than_adding_undefined:a(6243,e.DiagnosticCategory.Message,"Interpret_optional_property_types_as_written_rather_than_adding_undefined_6243","Interpret optional property types as written, rather than adding 'undefined'."),Modules:a(6244,e.DiagnosticCategory.Message,"Modules_6244","Modules"),File_Management:a(6245,e.DiagnosticCategory.Message,"File_Management_6245","File Management"),Emit:a(6246,e.DiagnosticCategory.Message,"Emit_6246","Emit"),JavaScript_Support:a(6247,e.DiagnosticCategory.Message,"JavaScript_Support_6247","JavaScript Support"),Type_Checking:a(6248,e.DiagnosticCategory.Message,"Type_Checking_6248","Type Checking"),Editor_Support:a(6249,e.DiagnosticCategory.Message,"Editor_Support_6249","Editor Support"),Watch_and_Build_Modes:a(6250,e.DiagnosticCategory.Message,"Watch_and_Build_Modes_6250","Watch and Build Modes"),Compiler_Diagnostics:a(6251,e.DiagnosticCategory.Message,"Compiler_Diagnostics_6251","Compiler Diagnostics"),Interop_Constraints:a(6252,e.DiagnosticCategory.Message,"Interop_Constraints_6252","Interop Constraints"),Backwards_Compatibility:a(6253,e.DiagnosticCategory.Message,"Backwards_Compatibility_6253","Backwards Compatibility"),Language_and_Environment:a(6254,e.DiagnosticCategory.Message,"Language_and_Environment_6254","Language and Environment"),Projects:a(6255,e.DiagnosticCategory.Message,"Projects_6255","Projects"),Output_Formatting:a(6256,e.DiagnosticCategory.Message,"Output_Formatting_6256","Output Formatting"),Completeness:a(6257,e.DiagnosticCategory.Message,"Completeness_6257","Completeness"),Projects_to_reference:a(6300,e.DiagnosticCategory.Message,"Projects_to_reference_6300","Projects to reference"),Enable_project_compilation:a(6302,e.DiagnosticCategory.Message,"Enable_project_compilation_6302","Enable project compilation"),Composite_projects_may_not_disable_declaration_emit:a(6304,e.DiagnosticCategory.Error,"Composite_projects_may_not_disable_declaration_emit_6304","Composite projects may not disable declaration emit."),Output_file_0_has_not_been_built_from_source_file_1:a(6305,e.DiagnosticCategory.Error,"Output_file_0_has_not_been_built_from_source_file_1_6305","Output file '{0}' has not been built from source file '{1}'."),Referenced_project_0_must_have_setting_composite_Colon_true:a(6306,e.DiagnosticCategory.Error,"Referenced_project_0_must_have_setting_composite_Colon_true_6306",`Referenced project '{0}' must have setting "composite": true.`),File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_include_pattern:a(6307,e.DiagnosticCategory.Error,"File_0_is_not_listed_within_the_file_list_of_project_1_Projects_must_list_all_files_or_use_an_includ_6307","File '{0}' is not listed within the file list of project '{1}'. Projects must list all files or use an 'include' pattern."),Cannot_prepend_project_0_because_it_does_not_have_outFile_set:a(6308,e.DiagnosticCategory.Error,"Cannot_prepend_project_0_because_it_does_not_have_outFile_set_6308","Cannot prepend project '{0}' because it does not have 'outFile' set"),Output_file_0_from_project_1_does_not_exist:a(6309,e.DiagnosticCategory.Error,"Output_file_0_from_project_1_does_not_exist_6309","Output file '{0}' from project '{1}' does not exist"),Referenced_project_0_may_not_disable_emit:a(6310,e.DiagnosticCategory.Error,"Referenced_project_0_may_not_disable_emit_6310","Referenced project '{0}' may not disable emit."),Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2:a(6350,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_oldest_output_1_is_older_than_newest_input_2_6350","Project '{0}' is out of date because oldest output '{1}' is older than newest input '{2}'"),Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2:a(6351,e.DiagnosticCategory.Message,"Project_0_is_up_to_date_because_newest_input_1_is_older_than_oldest_output_2_6351","Project '{0}' is up to date because newest input '{1}' is older than oldest output '{2}'"),Project_0_is_out_of_date_because_output_file_1_does_not_exist:a(6352,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_output_file_1_does_not_exist_6352","Project '{0}' is out of date because output file '{1}' does not exist"),Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date:a(6353,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_its_dependency_1_is_out_of_date_6353","Project '{0}' is out of date because its dependency '{1}' is out of date"),Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies:a(6354,e.DiagnosticCategory.Message,"Project_0_is_up_to_date_with_d_ts_files_from_its_dependencies_6354","Project '{0}' is up to date with .d.ts files from its dependencies"),Projects_in_this_build_Colon_0:a(6355,e.DiagnosticCategory.Message,"Projects_in_this_build_Colon_0_6355","Projects in this build: {0}"),A_non_dry_build_would_delete_the_following_files_Colon_0:a(6356,e.DiagnosticCategory.Message,"A_non_dry_build_would_delete_the_following_files_Colon_0_6356","A non-dry build would delete the following files: {0}"),A_non_dry_build_would_build_project_0:a(6357,e.DiagnosticCategory.Message,"A_non_dry_build_would_build_project_0_6357","A non-dry build would build project '{0}'"),Building_project_0:a(6358,e.DiagnosticCategory.Message,"Building_project_0_6358","Building project '{0}'..."),Updating_output_timestamps_of_project_0:a(6359,e.DiagnosticCategory.Message,"Updating_output_timestamps_of_project_0_6359","Updating output timestamps of project '{0}'..."),delete_this_Project_0_is_up_to_date_because_it_was_previously_built:a(6360,e.DiagnosticCategory.Message,"delete_this_Project_0_is_up_to_date_because_it_was_previously_built_6360","delete this - Project '{0}' is up to date because it was previously built"),Project_0_is_up_to_date:a(6361,e.DiagnosticCategory.Message,"Project_0_is_up_to_date_6361","Project '{0}' is up to date"),Skipping_build_of_project_0_because_its_dependency_1_has_errors:a(6362,e.DiagnosticCategory.Message,"Skipping_build_of_project_0_because_its_dependency_1_has_errors_6362","Skipping build of project '{0}' because its dependency '{1}' has errors"),Project_0_can_t_be_built_because_its_dependency_1_has_errors:a(6363,e.DiagnosticCategory.Message,"Project_0_can_t_be_built_because_its_dependency_1_has_errors_6363","Project '{0}' can't be built because its dependency '{1}' has errors"),Build_one_or_more_projects_and_their_dependencies_if_out_of_date:a(6364,e.DiagnosticCategory.Message,"Build_one_or_more_projects_and_their_dependencies_if_out_of_date_6364","Build one or more projects and their dependencies, if out of date"),Delete_the_outputs_of_all_projects:a(6365,e.DiagnosticCategory.Message,"Delete_the_outputs_of_all_projects_6365","Delete the outputs of all projects"),Show_what_would_be_built_or_deleted_if_specified_with_clean:a(6367,e.DiagnosticCategory.Message,"Show_what_would_be_built_or_deleted_if_specified_with_clean_6367","Show what would be built (or deleted, if specified with '--clean')"),Option_build_must_be_the_first_command_line_argument:a(6369,e.DiagnosticCategory.Error,"Option_build_must_be_the_first_command_line_argument_6369","Option '--build' must be the first command line argument."),Options_0_and_1_cannot_be_combined:a(6370,e.DiagnosticCategory.Error,"Options_0_and_1_cannot_be_combined_6370","Options '{0}' and '{1}' cannot be combined."),Updating_unchanged_output_timestamps_of_project_0:a(6371,e.DiagnosticCategory.Message,"Updating_unchanged_output_timestamps_of_project_0_6371","Updating unchanged output timestamps of project '{0}'..."),Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed:a(6372,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_output_of_its_dependency_1_has_changed_6372","Project '{0}' is out of date because output of its dependency '{1}' has changed"),Updating_output_of_project_0:a(6373,e.DiagnosticCategory.Message,"Updating_output_of_project_0_6373","Updating output of project '{0}'..."),A_non_dry_build_would_update_timestamps_for_output_of_project_0:a(6374,e.DiagnosticCategory.Message,"A_non_dry_build_would_update_timestamps_for_output_of_project_0_6374","A non-dry build would update timestamps for output of project '{0}'"),A_non_dry_build_would_update_output_of_project_0:a(6375,e.DiagnosticCategory.Message,"A_non_dry_build_would_update_output_of_project_0_6375","A non-dry build would update output of project '{0}'"),Cannot_update_output_of_project_0_because_there_was_error_reading_file_1:a(6376,e.DiagnosticCategory.Message,"Cannot_update_output_of_project_0_because_there_was_error_reading_file_1_6376","Cannot update output of project '{0}' because there was error reading file '{1}'"),Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1:a(6377,e.DiagnosticCategory.Error,"Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1_6377","Cannot write file '{0}' because it will overwrite '.tsbuildinfo' file generated by referenced project '{1}'"),Enable_incremental_compilation:a(6378,e.DiagnosticCategory.Message,"Enable_incremental_compilation_6378","Enable incremental compilation"),Composite_projects_may_not_disable_incremental_compilation:a(6379,e.DiagnosticCategory.Error,"Composite_projects_may_not_disable_incremental_compilation_6379","Composite projects may not disable incremental compilation."),Specify_file_to_store_incremental_compilation_information:a(6380,e.DiagnosticCategory.Message,"Specify_file_to_store_incremental_compilation_information_6380","Specify file to store incremental compilation information"),Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_current_version_2:a(6381,e.DiagnosticCategory.Message,"Project_0_is_out_of_date_because_output_for_it_was_generated_with_version_1_that_differs_with_curren_6381","Project '{0}' is out of date because output for it was generated with version '{1}' that differs with current version '{2}'"),Skipping_build_of_project_0_because_its_dependency_1_was_not_built:a(6382,e.DiagnosticCategory.Message,"Skipping_build_of_project_0_because_its_dependency_1_was_not_built_6382","Skipping build of project '{0}' because its dependency '{1}' was not built"),Project_0_can_t_be_built_because_its_dependency_1_was_not_built:a(6383,e.DiagnosticCategory.Message,"Project_0_can_t_be_built_because_its_dependency_1_was_not_built_6383","Project '{0}' can't be built because its dependency '{1}' was not built"),Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:a(6384,e.DiagnosticCategory.Message,"Have_recompiles_in_incremental_and_watch_assume_that_changes_within_a_file_will_only_affect_files_di_6384","Have recompiles in '--incremental' and '--watch' assume that changes within a file will only affect files directly depending on it."),_0_is_deprecated:a(6385,e.DiagnosticCategory.Suggestion,"_0_is_deprecated_6385","'{0}' is deprecated.",void 0,void 0,!0),Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_native_implementation_of_the_Web_Performance_API_could_not_be_found:a(6386,e.DiagnosticCategory.Message,"Performance_timings_for_diagnostics_or_extendedDiagnostics_are_not_available_in_this_session_A_nativ_6386","Performance timings for '--diagnostics' or '--extendedDiagnostics' are not available in this session. A native implementation of the Web Performance API could not be found."),The_signature_0_of_1_is_deprecated:a(6387,e.DiagnosticCategory.Suggestion,"The_signature_0_of_1_is_deprecated_6387","The signature '{0}' of '{1}' is deprecated.",void 0,void 0,!0),Project_0_is_being_forcibly_rebuilt:a(6388,e.DiagnosticCategory.Message,"Project_0_is_being_forcibly_rebuilt_6388","Project '{0}' is being forcibly rebuilt"),Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved:a(6389,e.DiagnosticCategory.Message,"Reusing_resolution_of_module_0_from_1_of_old_program_it_was_not_resolved_6389","Reusing resolution of module '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2:a(6390,e.DiagnosticCategory.Message,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6390","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved_to_2_with_Package_ID_3:a(6391,e.DiagnosticCategory.Message,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_successfully_resolved__6391","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was successfully resolved to '{2}' with Package ID '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved:a(6392,e.DiagnosticCategory.Message,"Reusing_resolution_of_type_reference_directive_0_from_1_of_old_program_it_was_not_resolved_6392","Reusing resolution of type reference directive '{0}' from '{1}' of old program, it was not resolved."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:a(6393,e.DiagnosticCategory.Message,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6393","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:a(6394,e.DiagnosticCategory.Message,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_6394","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:a(6395,e.DiagnosticCategory.Message,"Reusing_resolution_of_module_0_from_1_found_in_cache_from_location_2_it_was_not_resolved_6395","Reusing resolution of module '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3:a(6396,e.DiagnosticCategory.Message,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6396","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_successfully_resolved_to_3_with_Package_ID_4:a(6397,e.DiagnosticCategory.Message,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_succes_6397","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was successfully resolved to '{3}' with Package ID '{4}'."),Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_resolved:a(6398,e.DiagnosticCategory.Message,"Reusing_resolution_of_type_reference_directive_0_from_1_found_in_cache_from_location_2_it_was_not_re_6398","Reusing resolution of type reference directive '{0}' from '{1}' found in cache from location '{2}', it was not resolved."),The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1:a(6500,e.DiagnosticCategory.Message,"The_expected_type_comes_from_property_0_which_is_declared_here_on_type_1_6500","The expected type comes from property '{0}' which is declared here on type '{1}'"),The_expected_type_comes_from_this_index_signature:a(6501,e.DiagnosticCategory.Message,"The_expected_type_comes_from_this_index_signature_6501","The expected type comes from this index signature."),The_expected_type_comes_from_the_return_type_of_this_signature:a(6502,e.DiagnosticCategory.Message,"The_expected_type_comes_from_the_return_type_of_this_signature_6502","The expected type comes from the return type of this signature."),Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing:a(6503,e.DiagnosticCategory.Message,"Print_names_of_files_that_are_part_of_the_compilation_and_then_stop_processing_6503","Print names of files that are part of the compilation and then stop processing."),File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option:a(6504,e.DiagnosticCategory.Error,"File_0_is_a_JavaScript_file_Did_you_mean_to_enable_the_allowJs_option_6504","File '{0}' is a JavaScript file. Did you mean to enable the 'allowJs' option?"),Print_names_of_files_and_the_reason_they_are_part_of_the_compilation:a(6505,e.DiagnosticCategory.Message,"Print_names_of_files_and_the_reason_they_are_part_of_the_compilation_6505","Print names of files and the reason they are part of the compilation."),Consider_adding_a_declare_modifier_to_this_class:a(6506,e.DiagnosticCategory.Message,"Consider_adding_a_declare_modifier_to_this_class_6506","Consider adding a 'declare' modifier to this class."),Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these_files:a(6600,e.DiagnosticCategory.Message,"Allow_JavaScript_files_to_be_a_part_of_your_program_Use_the_checkJS_option_to_get_errors_from_these__6600","Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files."),Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export:a(6601,e.DiagnosticCategory.Message,"Allow_import_x_from_y_when_a_module_doesn_t_have_a_default_export_6601","Allow 'import x from y' when a module doesn't have a default export."),Allow_accessing_UMD_globals_from_modules:a(6602,e.DiagnosticCategory.Message,"Allow_accessing_UMD_globals_from_modules_6602","Allow accessing UMD globals from modules."),Disable_error_reporting_for_unreachable_code:a(6603,e.DiagnosticCategory.Message,"Disable_error_reporting_for_unreachable_code_6603","Disable error reporting for unreachable code."),Disable_error_reporting_for_unused_labels:a(6604,e.DiagnosticCategory.Message,"Disable_error_reporting_for_unused_labels_6604","Disable error reporting for unused labels."),Ensure_use_strict_is_always_emitted:a(6605,e.DiagnosticCategory.Message,"Ensure_use_strict_is_always_emitted_6605","Ensure 'use strict' is always emitted."),Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_will_only_affect_files_directly_depending_on_it:a(6606,e.DiagnosticCategory.Message,"Have_recompiles_in_projects_that_use_incremental_and_watch_mode_assume_that_changes_within_a_file_wi_6606","Have recompiles in projects that use `incremental` and `watch` mode assume that changes within a file will only affect files directly depending on it."),Specify_the_base_directory_to_resolve_non_relative_module_names:a(6607,e.DiagnosticCategory.Message,"Specify_the_base_directory_to_resolve_non_relative_module_names_6607","Specify the base directory to resolve non-relative module names."),No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files:a(6608,e.DiagnosticCategory.Message,"No_longer_supported_In_early_versions_manually_set_the_text_encoding_for_reading_files_6608","No longer supported. In early versions, manually set the text encoding for reading files."),Enable_error_reporting_in_type_checked_JavaScript_files:a(6609,e.DiagnosticCategory.Message,"Enable_error_reporting_in_type_checked_JavaScript_files_6609","Enable error reporting in type-checked JavaScript files."),Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references:a(6611,e.DiagnosticCategory.Message,"Enable_constraints_that_allow_a_TypeScript_project_to_be_used_with_project_references_6611","Enable constraints that allow a TypeScript project to be used with project references."),Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project:a(6612,e.DiagnosticCategory.Message,"Generate_d_ts_files_from_TypeScript_and_JavaScript_files_in_your_project_6612","Generate .d.ts files from TypeScript and JavaScript files in your project."),Specify_the_output_directory_for_generated_declaration_files:a(6613,e.DiagnosticCategory.Message,"Specify_the_output_directory_for_generated_declaration_files_6613","Specify the output directory for generated declaration files."),Create_sourcemaps_for_d_ts_files:a(6614,e.DiagnosticCategory.Message,"Create_sourcemaps_for_d_ts_files_6614","Create sourcemaps for d.ts files."),Output_compiler_performance_information_after_building:a(6615,e.DiagnosticCategory.Message,"Output_compiler_performance_information_after_building_6615","Output compiler performance information after building."),Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project:a(6616,e.DiagnosticCategory.Message,"Disables_inference_for_type_acquisition_by_looking_at_filenames_in_a_project_6616","Disables inference for type acquisition by looking at filenames in a project."),Reduce_the_number_of_projects_loaded_automatically_by_TypeScript:a(6617,e.DiagnosticCategory.Message,"Reduce_the_number_of_projects_loaded_automatically_by_TypeScript_6617","Reduce the number of projects loaded automatically by TypeScript."),Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server:a(6618,e.DiagnosticCategory.Message,"Remove_the_20mb_cap_on_total_source_code_size_for_JavaScript_files_in_the_TypeScript_language_server_6618","Remove the 20mb cap on total source code size for JavaScript files in the TypeScript language server."),Opt_a_project_out_of_multi_project_reference_checking_when_editing:a(6619,e.DiagnosticCategory.Message,"Opt_a_project_out_of_multi_project_reference_checking_when_editing_6619","Opt a project out of multi-project reference checking when editing."),Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects:a(6620,e.DiagnosticCategory.Message,"Disable_preferring_source_files_instead_of_declaration_files_when_referencing_composite_projects_6620","Disable preferring source files instead of declaration files when referencing composite projects"),Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration:a(6621,e.DiagnosticCategory.Message,"Emit_more_compliant_but_verbose_and_less_performant_JavaScript_for_iteration_6621","Emit more compliant, but verbose and less performant JavaScript for iteration."),Only_output_d_ts_files_and_not_JavaScript_files:a(6623,e.DiagnosticCategory.Message,"Only_output_d_ts_files_and_not_JavaScript_files_6623","Only output d.ts files and not JavaScript files."),Emit_design_type_metadata_for_decorated_declarations_in_source_files:a(6624,e.DiagnosticCategory.Message,"Emit_design_type_metadata_for_decorated_declarations_in_source_files_6624","Emit design-type metadata for decorated declarations in source files."),Disable_the_type_acquisition_for_JavaScript_projects:a(6625,e.DiagnosticCategory.Message,"Disable_the_type_acquisition_for_JavaScript_projects_6625","Disable the type acquisition for JavaScript projects"),Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheticDefaultImports_for_type_compatibility:a(6626,e.DiagnosticCategory.Message,"Emit_additional_JavaScript_to_ease_support_for_importing_CommonJS_modules_This_enables_allowSyntheti_6626","Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility."),Filters_results_from_the_include_option:a(6627,e.DiagnosticCategory.Message,"Filters_results_from_the_include_option_6627","Filters results from the `include` option."),Remove_a_list_of_directories_from_the_watch_process:a(6628,e.DiagnosticCategory.Message,"Remove_a_list_of_directories_from_the_watch_process_6628","Remove a list of directories from the watch process."),Remove_a_list_of_files_from_the_watch_mode_s_processing:a(6629,e.DiagnosticCategory.Message,"Remove_a_list_of_files_from_the_watch_mode_s_processing_6629","Remove a list of files from the watch mode's processing."),Enable_experimental_support_for_TC39_stage_2_draft_decorators:a(6630,e.DiagnosticCategory.Message,"Enable_experimental_support_for_TC39_stage_2_draft_decorators_6630","Enable experimental support for TC39 stage 2 draft decorators."),Print_files_read_during_the_compilation_including_why_it_was_included:a(6631,e.DiagnosticCategory.Message,"Print_files_read_during_the_compilation_including_why_it_was_included_6631","Print files read during the compilation including why it was included."),Output_more_detailed_compiler_performance_information_after_building:a(6632,e.DiagnosticCategory.Message,"Output_more_detailed_compiler_performance_information_after_building_6632","Output more detailed compiler performance information after building."),Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_are_inherited:a(6633,e.DiagnosticCategory.Message,"Specify_one_or_more_path_or_node_module_references_to_base_configuration_files_from_which_settings_a_6633","Specify one or more path or node module references to base configuration files from which settings are inherited."),Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers:a(6634,e.DiagnosticCategory.Message,"Specify_what_approach_the_watcher_should_use_if_the_system_runs_out_of_native_file_watchers_6634","Specify what approach the watcher should use if the system runs out of native file watchers."),Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include:a(6635,e.DiagnosticCategory.Message,"Include_a_list_of_files_This_does_not_support_glob_patterns_as_opposed_to_include_6635","Include a list of files. This does not support glob patterns, as opposed to `include`."),Build_all_projects_including_those_that_appear_to_be_up_to_date:a(6636,e.DiagnosticCategory.Message,"Build_all_projects_including_those_that_appear_to_be_up_to_date_6636","Build all projects, including those that appear to be up to date"),Ensure_that_casing_is_correct_in_imports:a(6637,e.DiagnosticCategory.Message,"Ensure_that_casing_is_correct_in_imports_6637","Ensure that casing is correct in imports."),Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging:a(6638,e.DiagnosticCategory.Message,"Emit_a_v8_CPU_profile_of_the_compiler_run_for_debugging_6638","Emit a v8 CPU profile of the compiler run for debugging."),Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file:a(6639,e.DiagnosticCategory.Message,"Allow_importing_helper_functions_from_tslib_once_per_project_instead_of_including_them_per_file_6639","Allow importing helper functions from tslib once per project, instead of including them per-file."),Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation:a(6641,e.DiagnosticCategory.Message,"Specify_a_list_of_glob_patterns_that_match_files_to_be_included_in_compilation_6641","Specify a list of glob patterns that match files to be included in compilation."),Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects:a(6642,e.DiagnosticCategory.Message,"Save_tsbuildinfo_files_to_allow_for_incremental_compilation_of_projects_6642","Save .tsbuildinfo files to allow for incremental compilation of projects."),Include_sourcemap_files_inside_the_emitted_JavaScript:a(6643,e.DiagnosticCategory.Message,"Include_sourcemap_files_inside_the_emitted_JavaScript_6643","Include sourcemap files inside the emitted JavaScript."),Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript:a(6644,e.DiagnosticCategory.Message,"Include_source_code_in_the_sourcemaps_inside_the_emitted_JavaScript_6644","Include source code in the sourcemaps inside the emitted JavaScript."),Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports:a(6645,e.DiagnosticCategory.Message,"Ensure_that_each_file_can_be_safely_transpiled_without_relying_on_other_imports_6645","Ensure that each file can be safely transpiled without relying on other imports."),Specify_what_JSX_code_is_generated:a(6646,e.DiagnosticCategory.Message,"Specify_what_JSX_code_is_generated_6646","Specify what JSX code is generated."),Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h:a(6647,e.DiagnosticCategory.Message,"Specify_the_JSX_factory_function_used_when_targeting_React_JSX_emit_e_g_React_createElement_or_h_6647","Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'"),Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragment_or_Fragment:a(6648,e.DiagnosticCategory.Message,"Specify_the_JSX_Fragment_reference_used_for_fragments_when_targeting_React_JSX_emit_e_g_React_Fragme_6648","Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'."),Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Asterisk:a(6649,e.DiagnosticCategory.Message,"Specify_module_specifier_used_to_import_the_JSX_factory_functions_when_using_jsx_Colon_react_jsx_Ast_6649","Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.`"),Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option:a(6650,e.DiagnosticCategory.Message,"Make_keyof_only_return_strings_instead_of_string_numbers_or_symbols_Legacy_option_6650","Make keyof only return strings instead of string, numbers or symbols. Legacy option."),Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment:a(6651,e.DiagnosticCategory.Message,"Specify_a_set_of_bundled_library_declaration_files_that_describe_the_target_runtime_environment_6651","Specify a set of bundled library declaration files that describe the target runtime environment."),Print_the_names_of_emitted_files_after_a_compilation:a(6652,e.DiagnosticCategory.Message,"Print_the_names_of_emitted_files_after_a_compilation_6652","Print the names of emitted files after a compilation."),Print_all_of_the_files_read_during_the_compilation:a(6653,e.DiagnosticCategory.Message,"Print_all_of_the_files_read_during_the_compilation_6653","Print all of the files read during the compilation."),Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit:a(6654,e.DiagnosticCategory.Message,"Set_the_language_of_the_messaging_from_TypeScript_This_does_not_affect_emit_6654","Set the language of the messaging from TypeScript. This does not affect emit."),Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicable_with_allowJs:a(6656,e.DiagnosticCategory.Message,"Specify_the_maximum_folder_depth_used_for_checking_JavaScript_files_from_node_modules_Only_applicabl_6656","Specify the maximum folder depth used for checking JavaScript files from `node_modules`. Only applicable with `allowJs`."),Specify_what_module_code_is_generated:a(6657,e.DiagnosticCategory.Message,"Specify_what_module_code_is_generated_6657","Specify what module code is generated."),Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier:a(6658,e.DiagnosticCategory.Message,"Specify_how_TypeScript_looks_up_a_file_from_a_given_module_specifier_6658","Specify how TypeScript looks up a file from a given module specifier."),Set_the_newline_character_for_emitting_files:a(6659,e.DiagnosticCategory.Message,"Set_the_newline_character_for_emitting_files_6659","Set the newline character for emitting files."),Disable_emitting_files_from_a_compilation:a(6660,e.DiagnosticCategory.Message,"Disable_emitting_files_from_a_compilation_6660","Disable emitting files from a compilation."),Disable_generating_custom_helper_functions_like_extends_in_compiled_output:a(6661,e.DiagnosticCategory.Message,"Disable_generating_custom_helper_functions_like_extends_in_compiled_output_6661","Disable generating custom helper functions like `__extends` in compiled output."),Disable_emitting_files_if_any_type_checking_errors_are_reported:a(6662,e.DiagnosticCategory.Message,"Disable_emitting_files_if_any_type_checking_errors_are_reported_6662","Disable emitting files if any type checking errors are reported."),Disable_truncating_types_in_error_messages:a(6663,e.DiagnosticCategory.Message,"Disable_truncating_types_in_error_messages_6663","Disable truncating types in error messages."),Enable_error_reporting_for_fallthrough_cases_in_switch_statements:a(6664,e.DiagnosticCategory.Message,"Enable_error_reporting_for_fallthrough_cases_in_switch_statements_6664","Enable error reporting for fallthrough cases in switch statements."),Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type:a(6665,e.DiagnosticCategory.Message,"Enable_error_reporting_for_expressions_and_declarations_with_an_implied_any_type_6665","Enable error reporting for expressions and declarations with an implied `any` type.."),Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier:a(6666,e.DiagnosticCategory.Message,"Ensure_overriding_members_in_derived_classes_are_marked_with_an_override_modifier_6666","Ensure overriding members in derived classes are marked with an override modifier."),Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function:a(6667,e.DiagnosticCategory.Message,"Enable_error_reporting_for_codepaths_that_do_not_explicitly_return_in_a_function_6667","Enable error reporting for codepaths that do not explicitly return in a function."),Enable_error_reporting_when_this_is_given_the_type_any:a(6668,e.DiagnosticCategory.Message,"Enable_error_reporting_when_this_is_given_the_type_any_6668","Enable error reporting when `this` is given the type `any`."),Disable_adding_use_strict_directives_in_emitted_JavaScript_files:a(6669,e.DiagnosticCategory.Message,"Disable_adding_use_strict_directives_in_emitted_JavaScript_files_6669","Disable adding 'use strict' directives in emitted JavaScript files."),Disable_including_any_library_files_including_the_default_lib_d_ts:a(6670,e.DiagnosticCategory.Message,"Disable_including_any_library_files_including_the_default_lib_d_ts_6670","Disable including any library files, including the default lib.d.ts."),Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type:a(6671,e.DiagnosticCategory.Message,"Enforces_using_indexed_accessors_for_keys_declared_using_an_indexed_type_6671","Enforces using indexed accessors for keys declared using an indexed type"),Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add_to_a_project:a(6672,e.DiagnosticCategory.Message,"Disallow_import_s_require_s_or_reference_s_from_expanding_the_number_of_files_TypeScript_should_add__6672","Disallow `import`s, `require`s or ``s from expanding the number of files TypeScript should add to a project."),Disable_strict_checking_of_generic_signatures_in_function_types:a(6673,e.DiagnosticCategory.Message,"Disable_strict_checking_of_generic_signatures_in_function_types_6673","Disable strict checking of generic signatures in function types."),Add_undefined_to_a_type_when_accessed_using_an_index:a(6674,e.DiagnosticCategory.Message,"Add_undefined_to_a_type_when_accessed_using_an_index_6674","Add `undefined` to a type when accessed using an index."),Enable_error_reporting_when_a_local_variables_aren_t_read:a(6675,e.DiagnosticCategory.Message,"Enable_error_reporting_when_a_local_variables_aren_t_read_6675","Enable error reporting when a local variables aren't read."),Raise_an_error_when_a_function_parameter_isn_t_read:a(6676,e.DiagnosticCategory.Message,"Raise_an_error_when_a_function_parameter_isn_t_read_6676","Raise an error when a function parameter isn't read"),Deprecated_setting_Use_outFile_instead:a(6677,e.DiagnosticCategory.Message,"Deprecated_setting_Use_outFile_instead_6677","Deprecated setting. Use `outFile` instead."),Specify_an_output_folder_for_all_emitted_files:a(6678,e.DiagnosticCategory.Message,"Specify_an_output_folder_for_all_emitted_files_6678","Specify an output folder for all emitted files."),Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designates_a_file_that_bundles_all_d_ts_output:a(6679,e.DiagnosticCategory.Message,"Specify_a_file_that_bundles_all_outputs_into_one_JavaScript_file_If_declaration_is_true_also_designa_6679","Specify a file that bundles all outputs into one JavaScript file. If `declaration` is true, also designates a file that bundles all .d.ts output."),Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations:a(6680,e.DiagnosticCategory.Message,"Specify_a_set_of_entries_that_re_map_imports_to_additional_lookup_locations_6680","Specify a set of entries that re-map imports to additional lookup locations."),Specify_a_list_of_language_service_plugins_to_include:a(6681,e.DiagnosticCategory.Message,"Specify_a_list_of_language_service_plugins_to_include_6681","Specify a list of language service plugins to include."),Disable_erasing_const_enum_declarations_in_generated_code:a(6682,e.DiagnosticCategory.Message,"Disable_erasing_const_enum_declarations_in_generated_code_6682","Disable erasing `const enum` declarations in generated code."),Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node:a(6683,e.DiagnosticCategory.Message,"Disable_resolving_symlinks_to_their_realpath_This_correlates_to_the_same_flag_in_node_6683","Disable resolving symlinks to their realpath. This correlates to the same flag in node."),Disable_wiping_the_console_in_watch_mode:a(6684,e.DiagnosticCategory.Message,"Disable_wiping_the_console_in_watch_mode_6684","Disable wiping the console in watch mode"),Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read:a(6685,e.DiagnosticCategory.Message,"Enable_color_and_formatting_in_TypeScript_s_output_to_make_compiler_errors_easier_to_read_6685","Enable color and formatting in TypeScript's output to make compiler errors easier to read"),Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit:a(6686,e.DiagnosticCategory.Message,"Specify_the_object_invoked_for_createElement_This_only_applies_when_targeting_react_JSX_emit_6686","Specify the object invoked for `createElement`. This only applies when targeting `react` JSX emit."),Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references:a(6687,e.DiagnosticCategory.Message,"Specify_an_array_of_objects_that_specify_paths_for_projects_Used_in_project_references_6687","Specify an array of objects that specify paths for projects. Used in project references."),Disable_emitting_comments:a(6688,e.DiagnosticCategory.Message,"Disable_emitting_comments_6688","Disable emitting comments."),Enable_importing_json_files:a(6689,e.DiagnosticCategory.Message,"Enable_importing_json_files_6689","Enable importing .json files"),Specify_the_root_folder_within_your_source_files:a(6690,e.DiagnosticCategory.Message,"Specify_the_root_folder_within_your_source_files_6690","Specify the root folder within your source files."),Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules:a(6691,e.DiagnosticCategory.Message,"Allow_multiple_folders_to_be_treated_as_one_when_resolving_modules_6691","Allow multiple folders to be treated as one when resolving modules."),Skip_type_checking_d_ts_files_that_are_included_with_TypeScript:a(6692,e.DiagnosticCategory.Message,"Skip_type_checking_d_ts_files_that_are_included_with_TypeScript_6692","Skip type checking .d.ts files that are included with TypeScript."),Skip_type_checking_all_d_ts_files:a(6693,e.DiagnosticCategory.Message,"Skip_type_checking_all_d_ts_files_6693","Skip type checking all .d.ts files."),Create_source_map_files_for_emitted_JavaScript_files:a(6694,e.DiagnosticCategory.Message,"Create_source_map_files_for_emitted_JavaScript_files_6694","Create source map files for emitted JavaScript files."),Specify_the_root_path_for_debuggers_to_find_the_reference_source_code:a(6695,e.DiagnosticCategory.Message,"Specify_the_root_path_for_debuggers_to_find_the_reference_source_code_6695","Specify the root path for debuggers to find the reference source code."),Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function:a(6697,e.DiagnosticCategory.Message,"Check_that_the_arguments_for_bind_call_and_apply_methods_match_the_original_function_6697","Check that the arguments for `bind`, `call`, and `apply` methods match the original function."),When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible:a(6698,e.DiagnosticCategory.Message,"When_assigning_functions_check_to_ensure_parameters_and_the_return_values_are_subtype_compatible_6698","When assigning functions, check to ensure parameters and the return values are subtype-compatible."),When_type_checking_take_into_account_null_and_undefined:a(6699,e.DiagnosticCategory.Message,"When_type_checking_take_into_account_null_and_undefined_6699","When type checking, take into account `null` and `undefined`."),Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor:a(6700,e.DiagnosticCategory.Message,"Check_for_class_properties_that_are_declared_but_not_set_in_the_constructor_6700","Check for class properties that are declared but not set in the constructor."),Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments:a(6701,e.DiagnosticCategory.Message,"Disable_emitting_declarations_that_have_internal_in_their_JSDoc_comments_6701","Disable emitting declarations that have `@internal` in their JSDoc comments."),Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals:a(6702,e.DiagnosticCategory.Message,"Disable_reporting_of_excess_property_errors_during_the_creation_of_object_literals_6702","Disable reporting of excess property errors during the creation of object literals."),Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures:a(6703,e.DiagnosticCategory.Message,"Suppress_noImplicitAny_errors_when_indexing_objects_that_lack_index_signatures_6703","Suppress `noImplicitAny` errors when indexing objects that lack index signatures."),Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_support_recursive_watching_natively:a(6704,e.DiagnosticCategory.Message,"Synchronously_call_callbacks_and_update_the_state_of_directory_watchers_on_platforms_that_don_t_supp_6704","Synchronously call callbacks and update the state of directory watchers on platforms that don`t support recursive watching natively."),Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declarations:a(6705,e.DiagnosticCategory.Message,"Set_the_JavaScript_language_version_for_emitted_JavaScript_and_include_compatible_library_declaratio_6705","Set the JavaScript language version for emitted JavaScript and include compatible library declarations."),Log_paths_used_during_the_moduleResolution_process:a(6706,e.DiagnosticCategory.Message,"Log_paths_used_during_the_moduleResolution_process_6706","Log paths used during the `moduleResolution` process."),Specify_the_folder_for_tsbuildinfo_incremental_compilation_files:a(6707,e.DiagnosticCategory.Message,"Specify_the_folder_for_tsbuildinfo_incremental_compilation_files_6707","Specify the folder for .tsbuildinfo incremental compilation files."),Specify_options_for_automatic_acquisition_of_declaration_files:a(6709,e.DiagnosticCategory.Message,"Specify_options_for_automatic_acquisition_of_declaration_files_6709","Specify options for automatic acquisition of declaration files."),Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types:a(6710,e.DiagnosticCategory.Message,"Specify_multiple_folders_that_act_like_Slashnode_modules_Slash_types_6710","Specify multiple folders that act like `./node_modules/@types`."),Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file:a(6711,e.DiagnosticCategory.Message,"Specify_type_package_names_to_be_included_without_being_referenced_in_a_source_file_6711","Specify type package names to be included without being referenced in a source file."),Emit_ECMAScript_standard_compliant_class_fields:a(6712,e.DiagnosticCategory.Message,"Emit_ECMAScript_standard_compliant_class_fields_6712","Emit ECMAScript-standard-compliant class fields."),Enable_verbose_logging:a(6713,e.DiagnosticCategory.Message,"Enable_verbose_logging_6713","Enable verbose logging"),Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality:a(6714,e.DiagnosticCategory.Message,"Specify_how_directories_are_watched_on_systems_that_lack_recursive_file_watching_functionality_6714","Specify how directories are watched on systems that lack recursive file-watching functionality."),Specify_how_the_TypeScript_watch_mode_works:a(6715,e.DiagnosticCategory.Message,"Specify_how_the_TypeScript_watch_mode_works_6715","Specify how the TypeScript watch mode works."),Include_undefined_in_index_signature_results:a(6716,e.DiagnosticCategory.Message,"Include_undefined_in_index_signature_results_6716","Include 'undefined' in index signature results"),Require_undeclared_properties_from_index_signatures_to_use_element_accesses:a(6717,e.DiagnosticCategory.Message,"Require_undeclared_properties_from_index_signatures_to_use_element_accesses_6717","Require undeclared properties from index signatures to use element accesses."),Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types:a(6718,e.DiagnosticCategory.Message,"Specify_emit_Slashchecking_behavior_for_imports_that_are_only_used_for_types_6718","Specify emit/checking behavior for imports that are only used for types"),Type_catch_clause_variables_as_unknown_instead_of_any:a(6803,e.DiagnosticCategory.Message,"Type_catch_clause_variables_as_unknown_instead_of_any_6803","Type catch clause variables as 'unknown' instead of 'any'."),one_of_Colon:a(6900,e.DiagnosticCategory.Message,"one_of_Colon_6900","one of:"),one_or_more_Colon:a(6901,e.DiagnosticCategory.Message,"one_or_more_Colon_6901","one or more:"),type_Colon:a(6902,e.DiagnosticCategory.Message,"type_Colon_6902","type:"),default_Colon:a(6903,e.DiagnosticCategory.Message,"default_Colon_6903","default:"),module_system_or_esModuleInterop:a(6904,e.DiagnosticCategory.Message,"module_system_or_esModuleInterop_6904",'module === "system" or esModuleInterop'),false_unless_strict_is_set:a(6905,e.DiagnosticCategory.Message,"false_unless_strict_is_set_6905","`false`, unless `strict` is set"),false_unless_composite_is_set:a(6906,e.DiagnosticCategory.Message,"false_unless_composite_is_set_6906","`false`, unless `composite` is set"),node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified:a(6907,e.DiagnosticCategory.Message,"node_modules_bower_components_jspm_packages_plus_the_value_of_outDir_if_one_is_specified_6907",'`["node_modules", "bower_components", "jspm_packages"]`, plus the value of `outDir` if one is specified.'),if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk:a(6908,e.DiagnosticCategory.Message,"if_files_is_specified_otherwise_Asterisk_Asterisk_Slash_Asterisk_6908",'`[]` if `files` is specified, otherwise `["**/*"]`'),true_if_composite_false_otherwise:a(6909,e.DiagnosticCategory.Message,"true_if_composite_false_otherwise_6909","`true` if `composite`, `false` otherwise"),module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node:a(69010,e.DiagnosticCategory.Message,"module_AMD_or_UMD_or_System_or_ES6_then_Classic_Otherwise_Node_69010","module === `AMD` or `UMD` or `System` or `ES6`, then `Classic`, Otherwise `Node`"),Computed_from_the_list_of_input_files:a(6911,e.DiagnosticCategory.Message,"Computed_from_the_list_of_input_files_6911","Computed from the list of input files"),Platform_specific:a(6912,e.DiagnosticCategory.Message,"Platform_specific_6912","Platform specific"),You_can_learn_about_all_of_the_compiler_options_at_0:a(6913,e.DiagnosticCategory.Message,"You_can_learn_about_all_of_the_compiler_options_at_0_6913","You can learn about all of the compiler options at {0}"),Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_config_watch_mode_with_Colon:a(6914,e.DiagnosticCategory.Message,"Including_watch_w_will_start_watching_the_current_project_for_the_file_changes_Once_set_you_can_conf_6914","Including --watch, -w will start watching the current project for the file changes. Once set, you can config watch mode with:"),Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_trigger_building_composite_projects_which_you_can_learn_more_about_at_0:a(6915,e.DiagnosticCategory.Message,"Using_build_b_will_make_tsc_behave_more_like_a_build_orchestrator_than_a_compiler_This_is_used_to_tr_6915","Using --build, -b will make tsc behave more like a build orchestrator than a compiler. This is used to trigger building composite projects which you can learn more about at {0}"),COMMON_COMMANDS:a(6916,e.DiagnosticCategory.Message,"COMMON_COMMANDS_6916","COMMON COMMANDS"),ALL_COMPILER_OPTIONS:a(6917,e.DiagnosticCategory.Message,"ALL_COMPILER_OPTIONS_6917","ALL COMPILER OPTIONS"),WATCH_OPTIONS:a(6918,e.DiagnosticCategory.Message,"WATCH_OPTIONS_6918","WATCH OPTIONS"),BUILD_OPTIONS:a(6919,e.DiagnosticCategory.Message,"BUILD_OPTIONS_6919","BUILD OPTIONS"),COMMON_COMPILER_OPTIONS:a(6920,e.DiagnosticCategory.Message,"COMMON_COMPILER_OPTIONS_6920","COMMON COMPILER OPTIONS"),COMMAND_LINE_FLAGS:a(6921,e.DiagnosticCategory.Message,"COMMAND_LINE_FLAGS_6921","COMMAND LINE FLAGS"),tsc_Colon_The_TypeScript_Compiler:a(6922,e.DiagnosticCategory.Message,"tsc_Colon_The_TypeScript_Compiler_6922","tsc: The TypeScript Compiler"),Compiles_the_current_project_tsconfig_json_in_the_working_directory:a(6923,e.DiagnosticCategory.Message,"Compiles_the_current_project_tsconfig_json_in_the_working_directory_6923","Compiles the current project (tsconfig.json in the working directory.)"),Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options:a(6924,e.DiagnosticCategory.Message,"Ignoring_tsconfig_json_compiles_the_specified_files_with_default_compiler_options_6924","Ignoring tsconfig.json, compiles the specified files with default compiler options."),Build_a_composite_project_in_the_working_directory:a(6925,e.DiagnosticCategory.Message,"Build_a_composite_project_in_the_working_directory_6925","Build a composite project in the working directory."),Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory:a(6926,e.DiagnosticCategory.Message,"Creates_a_tsconfig_json_with_the_recommended_settings_in_the_working_directory_6926","Creates a tsconfig.json with the recommended settings in the working directory."),Compiles_the_TypeScript_project_located_at_the_specified_path:a(6927,e.DiagnosticCategory.Message,"Compiles_the_TypeScript_project_located_at_the_specified_path_6927","Compiles the TypeScript project located at the specified path."),An_expanded_version_of_this_information_showing_all_possible_compiler_options:a(6928,e.DiagnosticCategory.Message,"An_expanded_version_of_this_information_showing_all_possible_compiler_options_6928","An expanded version of this information, showing all possible compiler options"),Compiles_the_current_project_with_additional_settings:a(6929,e.DiagnosticCategory.Message,"Compiles_the_current_project_with_additional_settings_6929","Compiles the current project, with additional settings."),Variable_0_implicitly_has_an_1_type:a(7005,e.DiagnosticCategory.Error,"Variable_0_implicitly_has_an_1_type_7005","Variable '{0}' implicitly has an '{1}' type."),Parameter_0_implicitly_has_an_1_type:a(7006,e.DiagnosticCategory.Error,"Parameter_0_implicitly_has_an_1_type_7006","Parameter '{0}' implicitly has an '{1}' type."),Member_0_implicitly_has_an_1_type:a(7008,e.DiagnosticCategory.Error,"Member_0_implicitly_has_an_1_type_7008","Member '{0}' implicitly has an '{1}' type."),new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type:a(7009,e.DiagnosticCategory.Error,"new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type_7009","'new' expression, whose target lacks a construct signature, implicitly has an 'any' type."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:a(7010,e.DiagnosticCategory.Error,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type_7010","'{0}', which lacks return-type annotation, implicitly has an '{1}' return type."),Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:a(7011,e.DiagnosticCategory.Error,"Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7011","Function expression, which lacks return-type annotation, implicitly has an '{0}' return type."),Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:a(7013,e.DiagnosticCategory.Error,"Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7013","Construct signature, which lacks return-type annotation, implicitly has an 'any' return type."),Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type:a(7014,e.DiagnosticCategory.Error,"Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type_7014","Function type, which lacks return-type annotation, implicitly has an '{0}' return type."),Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number:a(7015,e.DiagnosticCategory.Error,"Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number_7015","Element implicitly has an 'any' type because index expression is not of type 'number'."),Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type:a(7016,e.DiagnosticCategory.Error,"Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type_7016","Could not find a declaration file for module '{0}'. '{1}' implicitly has an 'any' type."),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature:a(7017,e.DiagnosticCategory.Error,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_7017","Element implicitly has an 'any' type because type '{0}' has no index signature."),Object_literal_s_property_0_implicitly_has_an_1_type:a(7018,e.DiagnosticCategory.Error,"Object_literal_s_property_0_implicitly_has_an_1_type_7018","Object literal's property '{0}' implicitly has an '{1}' type."),Rest_parameter_0_implicitly_has_an_any_type:a(7019,e.DiagnosticCategory.Error,"Rest_parameter_0_implicitly_has_an_any_type_7019","Rest parameter '{0}' implicitly has an 'any[]' type."),Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type:a(7020,e.DiagnosticCategory.Error,"Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type_7020","Call signature, which lacks return-type annotation, implicitly has an 'any' return type."),_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer:a(7022,e.DiagnosticCategory.Error,"_0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or__7022","'{0}' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer."),_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:a(7023,e.DiagnosticCategory.Error,"_0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_reference_7023","'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions:a(7024,e.DiagnosticCategory.Error,"Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_ref_7024","Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions."),Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation:a(7025,e.DiagnosticCategory.Error,"Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_retu_7025","Generator implicitly has yield type '{0}' because it does not yield any values. Consider supplying a return type annotation."),JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists:a(7026,e.DiagnosticCategory.Error,"JSX_element_implicitly_has_type_any_because_no_interface_JSX_0_exists_7026","JSX element implicitly has type 'any' because no interface 'JSX.{0}' exists."),Unreachable_code_detected:a(7027,e.DiagnosticCategory.Error,"Unreachable_code_detected_7027","Unreachable code detected.",!0),Unused_label:a(7028,e.DiagnosticCategory.Error,"Unused_label_7028","Unused label.",!0),Fallthrough_case_in_switch:a(7029,e.DiagnosticCategory.Error,"Fallthrough_case_in_switch_7029","Fallthrough case in switch."),Not_all_code_paths_return_a_value:a(7030,e.DiagnosticCategory.Error,"Not_all_code_paths_return_a_value_7030","Not all code paths return a value."),Binding_element_0_implicitly_has_an_1_type:a(7031,e.DiagnosticCategory.Error,"Binding_element_0_implicitly_has_an_1_type_7031","Binding element '{0}' implicitly has an '{1}' type."),Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation:a(7032,e.DiagnosticCategory.Error,"Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation_7032","Property '{0}' implicitly has type 'any', because its set accessor lacks a parameter type annotation."),Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation:a(7033,e.DiagnosticCategory.Error,"Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation_7033","Property '{0}' implicitly has type 'any', because its get accessor lacks a return type annotation."),Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined:a(7034,e.DiagnosticCategory.Error,"Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined_7034","Variable '{0}' implicitly has type '{1}' in some locations where its type cannot be determined."),Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0:a(7035,e.DiagnosticCategory.Error,"Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare__7035","Try `npm i --save-dev @types/{1}` if it exists or add a new declaration (.d.ts) file containing `declare module '{0}';`"),Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0:a(7036,e.DiagnosticCategory.Error,"Dynamic_import_s_specifier_must_be_of_type_string_but_here_has_type_0_7036","Dynamic import's specifier must be of type 'string', but here has type '{0}'."),Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for_all_imports_Implies_allowSyntheticDefaultImports:a(7037,e.DiagnosticCategory.Message,"Enables_emit_interoperability_between_CommonJS_and_ES_Modules_via_creation_of_namespace_objects_for__7037","Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'."),Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cause_a_failure_at_runtime_Consider_using_a_default_import_or_import_require_here_instead:a(7038,e.DiagnosticCategory.Message,"Type_originates_at_this_import_A_namespace_style_import_cannot_be_called_or_constructed_and_will_cau_7038","Type originates at this import. A namespace-style import cannot be called or constructed, and will cause a failure at runtime. Consider using a default import or import require here instead."),Mapped_object_type_implicitly_has_an_any_template_type:a(7039,e.DiagnosticCategory.Error,"Mapped_object_type_implicitly_has_an_any_template_type_7039","Mapped object type implicitly has an 'any' template type."),If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1:a(7040,e.DiagnosticCategory.Error,"If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_S_7040","If the '{0}' package actually exposes this module, consider sending a pull request to amend 'https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/{1}'"),The_containing_arrow_function_captures_the_global_value_of_this:a(7041,e.DiagnosticCategory.Error,"The_containing_arrow_function_captures_the_global_value_of_this_7041","The containing arrow function captures the global value of 'this'."),Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used:a(7042,e.DiagnosticCategory.Error,"Module_0_was_resolved_to_1_but_resolveJsonModule_is_not_used_7042","Module '{0}' was resolved to '{1}', but '--resolveJsonModule' is not used."),Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:a(7043,e.DiagnosticCategory.Suggestion,"Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7043","Variable '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:a(7044,e.DiagnosticCategory.Suggestion,"Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7044","Parameter '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage:a(7045,e.DiagnosticCategory.Suggestion,"Member_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage_7045","Member '{0}' implicitly has an '{1}' type, but a better type may be inferred from usage."),Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage:a(7046,e.DiagnosticCategory.Suggestion,"Variable_0_implicitly_has_type_1_in_some_locations_but_a_better_type_may_be_inferred_from_usage_7046","Variable '{0}' implicitly has type '{1}' in some locations, but a better type may be inferred from usage."),Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:a(7047,e.DiagnosticCategory.Suggestion,"Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage_7047","Rest parameter '{0}' implicitly has an 'any[]' type, but a better type may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage:a(7048,e.DiagnosticCategory.Suggestion,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_get_accessor_may_be_inferred_from_usage_7048","Property '{0}' implicitly has type 'any', but a better type for its get accessor may be inferred from usage."),Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage:a(7049,e.DiagnosticCategory.Suggestion,"Property_0_implicitly_has_type_any_but_a_better_type_for_its_set_accessor_may_be_inferred_from_usage_7049","Property '{0}' implicitly has type 'any', but a better type for its set accessor may be inferred from usage."),_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage:a(7050,e.DiagnosticCategory.Suggestion,"_0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage_7050","'{0}' implicitly has an '{1}' return type, but a better type may be inferred from usage."),Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1:a(7051,e.DiagnosticCategory.Error,"Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1_7051","Parameter has a name but no type. Did you mean '{0}: {1}'?"),Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1:a(7052,e.DiagnosticCategory.Error,"Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1_7052","Element implicitly has an 'any' type because type '{0}' has no index signature. Did you mean to call '{1}'?"),Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1:a(7053,e.DiagnosticCategory.Error,"Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1_7053","Element implicitly has an 'any' type because expression of type '{0}' can't be used to index type '{1}'."),No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1:a(7054,e.DiagnosticCategory.Error,"No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1_7054","No index signature with a parameter of type '{0}' was found on type '{1}'."),_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:a(7055,e.DiagnosticCategory.Error,"_0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type_7055","'{0}', which lacks return-type annotation, implicitly has an '{1}' yield type."),The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_type_annotation_is_needed:a(7056,e.DiagnosticCategory.Error,"The_inferred_type_of_this_node_exceeds_the_maximum_length_the_compiler_will_serialize_An_explicit_ty_7056","The inferred type of this node exceeds the maximum length the compiler will serialize. An explicit type annotation is needed."),yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_type_annotation:a(7057,e.DiagnosticCategory.Error,"yield_expression_implicitly_results_in_an_any_type_because_its_containing_generator_lacks_a_return_t_7057","'yield' expression implicitly results in an 'any' type because its containing generator lacks a return-type annotation."),You_cannot_rename_this_element:a(8e3,e.DiagnosticCategory.Error,"You_cannot_rename_this_element_8000","You cannot rename this element."),You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library:a(8001,e.DiagnosticCategory.Error,"You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library_8001","You cannot rename elements that are defined in the standard TypeScript library."),import_can_only_be_used_in_TypeScript_files:a(8002,e.DiagnosticCategory.Error,"import_can_only_be_used_in_TypeScript_files_8002","'import ... =' can only be used in TypeScript files."),export_can_only_be_used_in_TypeScript_files:a(8003,e.DiagnosticCategory.Error,"export_can_only_be_used_in_TypeScript_files_8003","'export =' can only be used in TypeScript files."),Type_parameter_declarations_can_only_be_used_in_TypeScript_files:a(8004,e.DiagnosticCategory.Error,"Type_parameter_declarations_can_only_be_used_in_TypeScript_files_8004","Type parameter declarations can only be used in TypeScript files."),implements_clauses_can_only_be_used_in_TypeScript_files:a(8005,e.DiagnosticCategory.Error,"implements_clauses_can_only_be_used_in_TypeScript_files_8005","'implements' clauses can only be used in TypeScript files."),_0_declarations_can_only_be_used_in_TypeScript_files:a(8006,e.DiagnosticCategory.Error,"_0_declarations_can_only_be_used_in_TypeScript_files_8006","'{0}' declarations can only be used in TypeScript files."),Type_aliases_can_only_be_used_in_TypeScript_files:a(8008,e.DiagnosticCategory.Error,"Type_aliases_can_only_be_used_in_TypeScript_files_8008","Type aliases can only be used in TypeScript files."),The_0_modifier_can_only_be_used_in_TypeScript_files:a(8009,e.DiagnosticCategory.Error,"The_0_modifier_can_only_be_used_in_TypeScript_files_8009","The '{0}' modifier can only be used in TypeScript files."),Type_annotations_can_only_be_used_in_TypeScript_files:a(8010,e.DiagnosticCategory.Error,"Type_annotations_can_only_be_used_in_TypeScript_files_8010","Type annotations can only be used in TypeScript files."),Type_arguments_can_only_be_used_in_TypeScript_files:a(8011,e.DiagnosticCategory.Error,"Type_arguments_can_only_be_used_in_TypeScript_files_8011","Type arguments can only be used in TypeScript files."),Parameter_modifiers_can_only_be_used_in_TypeScript_files:a(8012,e.DiagnosticCategory.Error,"Parameter_modifiers_can_only_be_used_in_TypeScript_files_8012","Parameter modifiers can only be used in TypeScript files."),Non_null_assertions_can_only_be_used_in_TypeScript_files:a(8013,e.DiagnosticCategory.Error,"Non_null_assertions_can_only_be_used_in_TypeScript_files_8013","Non-null assertions can only be used in TypeScript files."),Type_assertion_expressions_can_only_be_used_in_TypeScript_files:a(8016,e.DiagnosticCategory.Error,"Type_assertion_expressions_can_only_be_used_in_TypeScript_files_8016","Type assertion expressions can only be used in TypeScript files."),Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:a(8017,e.DiagnosticCategory.Error,"Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0_8017","Octal literal types must use ES2015 syntax. Use the syntax '{0}'."),Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0:a(8018,e.DiagnosticCategory.Error,"Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0_8018","Octal literals are not allowed in enums members initializer. Use the syntax '{0}'."),Report_errors_in_js_files:a(8019,e.DiagnosticCategory.Message,"Report_errors_in_js_files_8019","Report errors in .js files."),JSDoc_types_can_only_be_used_inside_documentation_comments:a(8020,e.DiagnosticCategory.Error,"JSDoc_types_can_only_be_used_inside_documentation_comments_8020","JSDoc types can only be used inside documentation comments."),JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags:a(8021,e.DiagnosticCategory.Error,"JSDoc_typedef_tag_should_either_have_a_type_annotation_or_be_followed_by_property_or_member_tags_8021","JSDoc '@typedef' tag should either have a type annotation or be followed by '@property' or '@member' tags."),JSDoc_0_is_not_attached_to_a_class:a(8022,e.DiagnosticCategory.Error,"JSDoc_0_is_not_attached_to_a_class_8022","JSDoc '@{0}' is not attached to a class."),JSDoc_0_1_does_not_match_the_extends_2_clause:a(8023,e.DiagnosticCategory.Error,"JSDoc_0_1_does_not_match_the_extends_2_clause_8023","JSDoc '@{0} {1}' does not match the 'extends {2}' clause."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name:a(8024,e.DiagnosticCategory.Error,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_8024","JSDoc '@param' tag has name '{0}', but there is no parameter with that name."),Class_declarations_cannot_have_more_than_one_augments_or_extends_tag:a(8025,e.DiagnosticCategory.Error,"Class_declarations_cannot_have_more_than_one_augments_or_extends_tag_8025","Class declarations cannot have more than one '@augments' or '@extends' tag."),Expected_0_type_arguments_provide_these_with_an_extends_tag:a(8026,e.DiagnosticCategory.Error,"Expected_0_type_arguments_provide_these_with_an_extends_tag_8026","Expected {0} type arguments; provide these with an '@extends' tag."),Expected_0_1_type_arguments_provide_these_with_an_extends_tag:a(8027,e.DiagnosticCategory.Error,"Expected_0_1_type_arguments_provide_these_with_an_extends_tag_8027","Expected {0}-{1} type arguments; provide these with an '@extends' tag."),JSDoc_may_only_appear_in_the_last_parameter_of_a_signature:a(8028,e.DiagnosticCategory.Error,"JSDoc_may_only_appear_in_the_last_parameter_of_a_signature_8028","JSDoc '...' may only appear in the last parameter of a signature."),JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_had_an_array_type:a(8029,e.DiagnosticCategory.Error,"JSDoc_param_tag_has_name_0_but_there_is_no_parameter_with_that_name_It_would_match_arguments_if_it_h_8029","JSDoc '@param' tag has name '{0}', but there is no parameter with that name. It would match 'arguments' if it had an array type."),The_type_of_a_function_declaration_must_match_the_function_s_signature:a(8030,e.DiagnosticCategory.Error,"The_type_of_a_function_declaration_must_match_the_function_s_signature_8030","The type of a function declaration must match the function's signature."),You_cannot_rename_a_module_via_a_global_import:a(8031,e.DiagnosticCategory.Error,"You_cannot_rename_a_module_via_a_global_import_8031","You cannot rename a module via a global import."),Qualified_name_0_is_not_allowed_without_a_leading_param_object_1:a(8032,e.DiagnosticCategory.Error,"Qualified_name_0_is_not_allowed_without_a_leading_param_object_1_8032","Qualified name '{0}' is not allowed without a leading '@param {object} {1}'."),A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags:a(8033,e.DiagnosticCategory.Error,"A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags_8033","A JSDoc '@typedef' comment may not contain multiple '@type' tags."),The_tag_was_first_specified_here:a(8034,e.DiagnosticCategory.Error,"The_tag_was_first_specified_here_8034","The tag was first specified here."),Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_class_extends_clause:a(9002,e.DiagnosticCategory.Error,"Only_identifiers_Slashqualified_names_with_optional_type_arguments_are_currently_supported_in_a_clas_9002","Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clause."),class_expressions_are_not_currently_supported:a(9003,e.DiagnosticCategory.Error,"class_expressions_are_not_currently_supported_9003","'class' expressions are not currently supported."),Language_service_is_disabled:a(9004,e.DiagnosticCategory.Error,"Language_service_is_disabled_9004","Language service is disabled."),Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_declaration_emit:a(9005,e.DiagnosticCategory.Error,"Declaration_emit_for_this_file_requires_using_private_name_0_An_explicit_type_annotation_may_unblock_9005","Declaration emit for this file requires using private name '{0}'. An explicit type annotation may unblock declaration emit."),Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotation_may_unblock_declaration_emit:a(9006,e.DiagnosticCategory.Error,"Declaration_emit_for_this_file_requires_using_private_name_0_from_module_1_An_explicit_type_annotati_9006","Declaration emit for this file requires using private name '{0}' from module '{1}'. An explicit type annotation may unblock declaration emit."),JSX_attributes_must_only_be_assigned_a_non_empty_expression:a(17e3,e.DiagnosticCategory.Error,"JSX_attributes_must_only_be_assigned_a_non_empty_expression_17000","JSX attributes must only be assigned a non-empty 'expression'."),JSX_elements_cannot_have_multiple_attributes_with_the_same_name:a(17001,e.DiagnosticCategory.Error,"JSX_elements_cannot_have_multiple_attributes_with_the_same_name_17001","JSX elements cannot have multiple attributes with the same name."),Expected_corresponding_JSX_closing_tag_for_0:a(17002,e.DiagnosticCategory.Error,"Expected_corresponding_JSX_closing_tag_for_0_17002","Expected corresponding JSX closing tag for '{0}'."),JSX_attribute_expected:a(17003,e.DiagnosticCategory.Error,"JSX_attribute_expected_17003","JSX attribute expected."),Cannot_use_JSX_unless_the_jsx_flag_is_provided:a(17004,e.DiagnosticCategory.Error,"Cannot_use_JSX_unless_the_jsx_flag_is_provided_17004","Cannot use JSX unless the '--jsx' flag is provided."),A_constructor_cannot_contain_a_super_call_when_its_class_extends_null:a(17005,e.DiagnosticCategory.Error,"A_constructor_cannot_contain_a_super_call_when_its_class_extends_null_17005","A constructor cannot contain a 'super' call when its class extends 'null'."),An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:a(17006,e.DiagnosticCategory.Error,"An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_ex_17006","An unary expression with the '{0}' operator is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses:a(17007,e.DiagnosticCategory.Error,"A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Con_17007","A type assertion expression is not allowed in the left-hand side of an exponentiation expression. Consider enclosing the expression in parentheses."),JSX_element_0_has_no_corresponding_closing_tag:a(17008,e.DiagnosticCategory.Error,"JSX_element_0_has_no_corresponding_closing_tag_17008","JSX element '{0}' has no corresponding closing tag."),super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class:a(17009,e.DiagnosticCategory.Error,"super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class_17009","'super' must be called before accessing 'this' in the constructor of a derived class."),Unknown_type_acquisition_option_0:a(17010,e.DiagnosticCategory.Error,"Unknown_type_acquisition_option_0_17010","Unknown type acquisition option '{0}'."),super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class:a(17011,e.DiagnosticCategory.Error,"super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class_17011","'super' must be called before accessing a property of 'super' in the constructor of a derived class."),_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2:a(17012,e.DiagnosticCategory.Error,"_0_is_not_a_valid_meta_property_for_keyword_1_Did_you_mean_2_17012","'{0}' is not a valid meta-property for keyword '{1}'. Did you mean '{2}'?"),Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constructor:a(17013,e.DiagnosticCategory.Error,"Meta_property_0_is_only_allowed_in_the_body_of_a_function_declaration_function_expression_or_constru_17013","Meta-property '{0}' is only allowed in the body of a function declaration, function expression, or constructor."),JSX_fragment_has_no_corresponding_closing_tag:a(17014,e.DiagnosticCategory.Error,"JSX_fragment_has_no_corresponding_closing_tag_17014","JSX fragment has no corresponding closing tag."),Expected_corresponding_closing_tag_for_JSX_fragment:a(17015,e.DiagnosticCategory.Error,"Expected_corresponding_closing_tag_for_JSX_fragment_17015","Expected corresponding closing tag for JSX fragment."),The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:a(17016,e.DiagnosticCategory.Error,"The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_com_17016","The 'jsxFragmentFactory' compiler option must be provided to use JSX fragments with the 'jsxFactory' compiler option."),An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments:a(17017,e.DiagnosticCategory.Error,"An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments_17017","An @jsxFrag pragma is required when using an @jsx pragma with JSX fragments."),Unknown_type_acquisition_option_0_Did_you_mean_1:a(17018,e.DiagnosticCategory.Error,"Unknown_type_acquisition_option_0_Did_you_mean_1_17018","Unknown type acquisition option '{0}'. Did you mean '{1}'?"),Circularity_detected_while_resolving_configuration_Colon_0:a(18e3,e.DiagnosticCategory.Error,"Circularity_detected_while_resolving_configuration_Colon_0_18000","Circularity detected while resolving configuration: {0}"),A_path_in_an_extends_option_must_be_relative_or_rooted_but_0_is_not:a(18001,e.DiagnosticCategory.Error,"A_path_in_an_extends_option_must_be_relative_or_rooted_but_0_is_not_18001","A path in an 'extends' option must be relative or rooted, but '{0}' is not."),The_files_list_in_config_file_0_is_empty:a(18002,e.DiagnosticCategory.Error,"The_files_list_in_config_file_0_is_empty_18002","The 'files' list in config file '{0}' is empty."),No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2:a(18003,e.DiagnosticCategory.Error,"No_inputs_were_found_in_config_file_0_Specified_include_paths_were_1_and_exclude_paths_were_2_18003","No inputs were found in config file '{0}'. Specified 'include' paths were '{1}' and 'exclude' paths were '{2}'."),File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module:a(80001,e.DiagnosticCategory.Suggestion,"File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module_80001","File is a CommonJS module; it may be converted to an ES6 module."),This_constructor_function_may_be_converted_to_a_class_declaration:a(80002,e.DiagnosticCategory.Suggestion,"This_constructor_function_may_be_converted_to_a_class_declaration_80002","This constructor function may be converted to a class declaration."),Import_may_be_converted_to_a_default_import:a(80003,e.DiagnosticCategory.Suggestion,"Import_may_be_converted_to_a_default_import_80003","Import may be converted to a default import."),JSDoc_types_may_be_moved_to_TypeScript_types:a(80004,e.DiagnosticCategory.Suggestion,"JSDoc_types_may_be_moved_to_TypeScript_types_80004","JSDoc types may be moved to TypeScript types."),require_call_may_be_converted_to_an_import:a(80005,e.DiagnosticCategory.Suggestion,"require_call_may_be_converted_to_an_import_80005","'require' call may be converted to an import."),This_may_be_converted_to_an_async_function:a(80006,e.DiagnosticCategory.Suggestion,"This_may_be_converted_to_an_async_function_80006","This may be converted to an async function."),await_has_no_effect_on_the_type_of_this_expression:a(80007,e.DiagnosticCategory.Suggestion,"await_has_no_effect_on_the_type_of_this_expression_80007","'await' has no effect on the type of this expression."),Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers:a(80008,e.DiagnosticCategory.Suggestion,"Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accur_80008","Numeric literals with absolute values equal to 2^53 or greater are too large to be represented accurately as integers."),Add_missing_super_call:a(90001,e.DiagnosticCategory.Message,"Add_missing_super_call_90001","Add missing 'super()' call"),Make_super_call_the_first_statement_in_the_constructor:a(90002,e.DiagnosticCategory.Message,"Make_super_call_the_first_statement_in_the_constructor_90002","Make 'super()' call the first statement in the constructor"),Change_extends_to_implements:a(90003,e.DiagnosticCategory.Message,"Change_extends_to_implements_90003","Change 'extends' to 'implements'"),Remove_unused_declaration_for_Colon_0:a(90004,e.DiagnosticCategory.Message,"Remove_unused_declaration_for_Colon_0_90004","Remove unused declaration for: '{0}'"),Remove_import_from_0:a(90005,e.DiagnosticCategory.Message,"Remove_import_from_0_90005","Remove import from '{0}'"),Implement_interface_0:a(90006,e.DiagnosticCategory.Message,"Implement_interface_0_90006","Implement interface '{0}'"),Implement_inherited_abstract_class:a(90007,e.DiagnosticCategory.Message,"Implement_inherited_abstract_class_90007","Implement inherited abstract class"),Add_0_to_unresolved_variable:a(90008,e.DiagnosticCategory.Message,"Add_0_to_unresolved_variable_90008","Add '{0}.' to unresolved variable"),Remove_variable_statement:a(90010,e.DiagnosticCategory.Message,"Remove_variable_statement_90010","Remove variable statement"),Remove_template_tag:a(90011,e.DiagnosticCategory.Message,"Remove_template_tag_90011","Remove template tag"),Remove_type_parameters:a(90012,e.DiagnosticCategory.Message,"Remove_type_parameters_90012","Remove type parameters"),Import_0_from_module_1:a(90013,e.DiagnosticCategory.Message,"Import_0_from_module_1_90013",`Import '{0}' from module "{1}"`),Change_0_to_1:a(90014,e.DiagnosticCategory.Message,"Change_0_to_1_90014","Change '{0}' to '{1}'"),Add_0_to_existing_import_declaration_from_1:a(90015,e.DiagnosticCategory.Message,"Add_0_to_existing_import_declaration_from_1_90015",`Add '{0}' to existing import declaration from "{1}"`),Declare_property_0:a(90016,e.DiagnosticCategory.Message,"Declare_property_0_90016","Declare property '{0}'"),Add_index_signature_for_property_0:a(90017,e.DiagnosticCategory.Message,"Add_index_signature_for_property_0_90017","Add index signature for property '{0}'"),Disable_checking_for_this_file:a(90018,e.DiagnosticCategory.Message,"Disable_checking_for_this_file_90018","Disable checking for this file"),Ignore_this_error_message:a(90019,e.DiagnosticCategory.Message,"Ignore_this_error_message_90019","Ignore this error message"),Initialize_property_0_in_the_constructor:a(90020,e.DiagnosticCategory.Message,"Initialize_property_0_in_the_constructor_90020","Initialize property '{0}' in the constructor"),Initialize_static_property_0:a(90021,e.DiagnosticCategory.Message,"Initialize_static_property_0_90021","Initialize static property '{0}'"),Change_spelling_to_0:a(90022,e.DiagnosticCategory.Message,"Change_spelling_to_0_90022","Change spelling to '{0}'"),Declare_method_0:a(90023,e.DiagnosticCategory.Message,"Declare_method_0_90023","Declare method '{0}'"),Declare_static_method_0:a(90024,e.DiagnosticCategory.Message,"Declare_static_method_0_90024","Declare static method '{0}'"),Prefix_0_with_an_underscore:a(90025,e.DiagnosticCategory.Message,"Prefix_0_with_an_underscore_90025","Prefix '{0}' with an underscore"),Rewrite_as_the_indexed_access_type_0:a(90026,e.DiagnosticCategory.Message,"Rewrite_as_the_indexed_access_type_0_90026","Rewrite as the indexed access type '{0}'"),Declare_static_property_0:a(90027,e.DiagnosticCategory.Message,"Declare_static_property_0_90027","Declare static property '{0}'"),Call_decorator_expression:a(90028,e.DiagnosticCategory.Message,"Call_decorator_expression_90028","Call decorator expression"),Add_async_modifier_to_containing_function:a(90029,e.DiagnosticCategory.Message,"Add_async_modifier_to_containing_function_90029","Add async modifier to containing function"),Replace_infer_0_with_unknown:a(90030,e.DiagnosticCategory.Message,"Replace_infer_0_with_unknown_90030","Replace 'infer {0}' with 'unknown'"),Replace_all_unused_infer_with_unknown:a(90031,e.DiagnosticCategory.Message,"Replace_all_unused_infer_with_unknown_90031","Replace all unused 'infer' with 'unknown'"),Import_default_0_from_module_1:a(90032,e.DiagnosticCategory.Message,"Import_default_0_from_module_1_90032",`Import default '{0}' from module "{1}"`),Add_default_import_0_to_existing_import_declaration_from_1:a(90033,e.DiagnosticCategory.Message,"Add_default_import_0_to_existing_import_declaration_from_1_90033",`Add default import '{0}' to existing import declaration from "{1}"`),Add_parameter_name:a(90034,e.DiagnosticCategory.Message,"Add_parameter_name_90034","Add parameter name"),Declare_private_property_0:a(90035,e.DiagnosticCategory.Message,"Declare_private_property_0_90035","Declare private property '{0}'"),Replace_0_with_Promise_1:a(90036,e.DiagnosticCategory.Message,"Replace_0_with_Promise_1_90036","Replace '{0}' with 'Promise<{1}>'"),Fix_all_incorrect_return_type_of_an_async_functions:a(90037,e.DiagnosticCategory.Message,"Fix_all_incorrect_return_type_of_an_async_functions_90037","Fix all incorrect return type of an async functions"),Declare_private_method_0:a(90038,e.DiagnosticCategory.Message,"Declare_private_method_0_90038","Declare private method '{0}'"),Remove_unused_destructuring_declaration:a(90039,e.DiagnosticCategory.Message,"Remove_unused_destructuring_declaration_90039","Remove unused destructuring declaration"),Remove_unused_declarations_for_Colon_0:a(90041,e.DiagnosticCategory.Message,"Remove_unused_declarations_for_Colon_0_90041","Remove unused declarations for: '{0}'"),Declare_a_private_field_named_0:a(90053,e.DiagnosticCategory.Message,"Declare_a_private_field_named_0_90053","Declare a private field named '{0}'."),Convert_function_to_an_ES2015_class:a(95001,e.DiagnosticCategory.Message,"Convert_function_to_an_ES2015_class_95001","Convert function to an ES2015 class"),Convert_function_0_to_class:a(95002,e.DiagnosticCategory.Message,"Convert_function_0_to_class_95002","Convert function '{0}' to class"),Convert_0_to_1_in_0:a(95003,e.DiagnosticCategory.Message,"Convert_0_to_1_in_0_95003","Convert '{0}' to '{1} in {0}'"),Extract_to_0_in_1:a(95004,e.DiagnosticCategory.Message,"Extract_to_0_in_1_95004","Extract to {0} in {1}"),Extract_function:a(95005,e.DiagnosticCategory.Message,"Extract_function_95005","Extract function"),Extract_constant:a(95006,e.DiagnosticCategory.Message,"Extract_constant_95006","Extract constant"),Extract_to_0_in_enclosing_scope:a(95007,e.DiagnosticCategory.Message,"Extract_to_0_in_enclosing_scope_95007","Extract to {0} in enclosing scope"),Extract_to_0_in_1_scope:a(95008,e.DiagnosticCategory.Message,"Extract_to_0_in_1_scope_95008","Extract to {0} in {1} scope"),Annotate_with_type_from_JSDoc:a(95009,e.DiagnosticCategory.Message,"Annotate_with_type_from_JSDoc_95009","Annotate with type from JSDoc"),Annotate_with_types_from_JSDoc:a(95010,e.DiagnosticCategory.Message,"Annotate_with_types_from_JSDoc_95010","Annotate with types from JSDoc"),Infer_type_of_0_from_usage:a(95011,e.DiagnosticCategory.Message,"Infer_type_of_0_from_usage_95011","Infer type of '{0}' from usage"),Infer_parameter_types_from_usage:a(95012,e.DiagnosticCategory.Message,"Infer_parameter_types_from_usage_95012","Infer parameter types from usage"),Convert_to_default_import:a(95013,e.DiagnosticCategory.Message,"Convert_to_default_import_95013","Convert to default import"),Install_0:a(95014,e.DiagnosticCategory.Message,"Install_0_95014","Install '{0}'"),Replace_import_with_0:a(95015,e.DiagnosticCategory.Message,"Replace_import_with_0_95015","Replace import with '{0}'."),Use_synthetic_default_member:a(95016,e.DiagnosticCategory.Message,"Use_synthetic_default_member_95016","Use synthetic 'default' member."),Convert_to_ES6_module:a(95017,e.DiagnosticCategory.Message,"Convert_to_ES6_module_95017","Convert to ES6 module"),Add_undefined_type_to_property_0:a(95018,e.DiagnosticCategory.Message,"Add_undefined_type_to_property_0_95018","Add 'undefined' type to property '{0}'"),Add_initializer_to_property_0:a(95019,e.DiagnosticCategory.Message,"Add_initializer_to_property_0_95019","Add initializer to property '{0}'"),Add_definite_assignment_assertion_to_property_0:a(95020,e.DiagnosticCategory.Message,"Add_definite_assignment_assertion_to_property_0_95020","Add definite assignment assertion to property '{0}'"),Convert_all_type_literals_to_mapped_type:a(95021,e.DiagnosticCategory.Message,"Convert_all_type_literals_to_mapped_type_95021","Convert all type literals to mapped type"),Add_all_missing_members:a(95022,e.DiagnosticCategory.Message,"Add_all_missing_members_95022","Add all missing members"),Infer_all_types_from_usage:a(95023,e.DiagnosticCategory.Message,"Infer_all_types_from_usage_95023","Infer all types from usage"),Delete_all_unused_declarations:a(95024,e.DiagnosticCategory.Message,"Delete_all_unused_declarations_95024","Delete all unused declarations"),Prefix_all_unused_declarations_with_where_possible:a(95025,e.DiagnosticCategory.Message,"Prefix_all_unused_declarations_with_where_possible_95025","Prefix all unused declarations with '_' where possible"),Fix_all_detected_spelling_errors:a(95026,e.DiagnosticCategory.Message,"Fix_all_detected_spelling_errors_95026","Fix all detected spelling errors"),Add_initializers_to_all_uninitialized_properties:a(95027,e.DiagnosticCategory.Message,"Add_initializers_to_all_uninitialized_properties_95027","Add initializers to all uninitialized properties"),Add_definite_assignment_assertions_to_all_uninitialized_properties:a(95028,e.DiagnosticCategory.Message,"Add_definite_assignment_assertions_to_all_uninitialized_properties_95028","Add definite assignment assertions to all uninitialized properties"),Add_undefined_type_to_all_uninitialized_properties:a(95029,e.DiagnosticCategory.Message,"Add_undefined_type_to_all_uninitialized_properties_95029","Add undefined type to all uninitialized properties"),Change_all_jsdoc_style_types_to_TypeScript:a(95030,e.DiagnosticCategory.Message,"Change_all_jsdoc_style_types_to_TypeScript_95030","Change all jsdoc-style types to TypeScript"),Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types:a(95031,e.DiagnosticCategory.Message,"Change_all_jsdoc_style_types_to_TypeScript_and_add_undefined_to_nullable_types_95031","Change all jsdoc-style types to TypeScript (and add '| undefined' to nullable types)"),Implement_all_unimplemented_interfaces:a(95032,e.DiagnosticCategory.Message,"Implement_all_unimplemented_interfaces_95032","Implement all unimplemented interfaces"),Install_all_missing_types_packages:a(95033,e.DiagnosticCategory.Message,"Install_all_missing_types_packages_95033","Install all missing types packages"),Rewrite_all_as_indexed_access_types:a(95034,e.DiagnosticCategory.Message,"Rewrite_all_as_indexed_access_types_95034","Rewrite all as indexed access types"),Convert_all_to_default_imports:a(95035,e.DiagnosticCategory.Message,"Convert_all_to_default_imports_95035","Convert all to default imports"),Make_all_super_calls_the_first_statement_in_their_constructor:a(95036,e.DiagnosticCategory.Message,"Make_all_super_calls_the_first_statement_in_their_constructor_95036","Make all 'super()' calls the first statement in their constructor"),Add_qualifier_to_all_unresolved_variables_matching_a_member_name:a(95037,e.DiagnosticCategory.Message,"Add_qualifier_to_all_unresolved_variables_matching_a_member_name_95037","Add qualifier to all unresolved variables matching a member name"),Change_all_extended_interfaces_to_implements:a(95038,e.DiagnosticCategory.Message,"Change_all_extended_interfaces_to_implements_95038","Change all extended interfaces to 'implements'"),Add_all_missing_super_calls:a(95039,e.DiagnosticCategory.Message,"Add_all_missing_super_calls_95039","Add all missing super calls"),Implement_all_inherited_abstract_classes:a(95040,e.DiagnosticCategory.Message,"Implement_all_inherited_abstract_classes_95040","Implement all inherited abstract classes"),Add_all_missing_async_modifiers:a(95041,e.DiagnosticCategory.Message,"Add_all_missing_async_modifiers_95041","Add all missing 'async' modifiers"),Add_ts_ignore_to_all_error_messages:a(95042,e.DiagnosticCategory.Message,"Add_ts_ignore_to_all_error_messages_95042","Add '@ts-ignore' to all error messages"),Annotate_everything_with_types_from_JSDoc:a(95043,e.DiagnosticCategory.Message,"Annotate_everything_with_types_from_JSDoc_95043","Annotate everything with types from JSDoc"),Add_to_all_uncalled_decorators:a(95044,e.DiagnosticCategory.Message,"Add_to_all_uncalled_decorators_95044","Add '()' to all uncalled decorators"),Convert_all_constructor_functions_to_classes:a(95045,e.DiagnosticCategory.Message,"Convert_all_constructor_functions_to_classes_95045","Convert all constructor functions to classes"),Generate_get_and_set_accessors:a(95046,e.DiagnosticCategory.Message,"Generate_get_and_set_accessors_95046","Generate 'get' and 'set' accessors"),Convert_require_to_import:a(95047,e.DiagnosticCategory.Message,"Convert_require_to_import_95047","Convert 'require' to 'import'"),Convert_all_require_to_import:a(95048,e.DiagnosticCategory.Message,"Convert_all_require_to_import_95048","Convert all 'require' to 'import'"),Move_to_a_new_file:a(95049,e.DiagnosticCategory.Message,"Move_to_a_new_file_95049","Move to a new file"),Remove_unreachable_code:a(95050,e.DiagnosticCategory.Message,"Remove_unreachable_code_95050","Remove unreachable code"),Remove_all_unreachable_code:a(95051,e.DiagnosticCategory.Message,"Remove_all_unreachable_code_95051","Remove all unreachable code"),Add_missing_typeof:a(95052,e.DiagnosticCategory.Message,"Add_missing_typeof_95052","Add missing 'typeof'"),Remove_unused_label:a(95053,e.DiagnosticCategory.Message,"Remove_unused_label_95053","Remove unused label"),Remove_all_unused_labels:a(95054,e.DiagnosticCategory.Message,"Remove_all_unused_labels_95054","Remove all unused labels"),Convert_0_to_mapped_object_type:a(95055,e.DiagnosticCategory.Message,"Convert_0_to_mapped_object_type_95055","Convert '{0}' to mapped object type"),Convert_namespace_import_to_named_imports:a(95056,e.DiagnosticCategory.Message,"Convert_namespace_import_to_named_imports_95056","Convert namespace import to named imports"),Convert_named_imports_to_namespace_import:a(95057,e.DiagnosticCategory.Message,"Convert_named_imports_to_namespace_import_95057","Convert named imports to namespace import"),Add_or_remove_braces_in_an_arrow_function:a(95058,e.DiagnosticCategory.Message,"Add_or_remove_braces_in_an_arrow_function_95058","Add or remove braces in an arrow function"),Add_braces_to_arrow_function:a(95059,e.DiagnosticCategory.Message,"Add_braces_to_arrow_function_95059","Add braces to arrow function"),Remove_braces_from_arrow_function:a(95060,e.DiagnosticCategory.Message,"Remove_braces_from_arrow_function_95060","Remove braces from arrow function"),Convert_default_export_to_named_export:a(95061,e.DiagnosticCategory.Message,"Convert_default_export_to_named_export_95061","Convert default export to named export"),Convert_named_export_to_default_export:a(95062,e.DiagnosticCategory.Message,"Convert_named_export_to_default_export_95062","Convert named export to default export"),Add_missing_enum_member_0:a(95063,e.DiagnosticCategory.Message,"Add_missing_enum_member_0_95063","Add missing enum member '{0}'"),Add_all_missing_imports:a(95064,e.DiagnosticCategory.Message,"Add_all_missing_imports_95064","Add all missing imports"),Convert_to_async_function:a(95065,e.DiagnosticCategory.Message,"Convert_to_async_function_95065","Convert to async function"),Convert_all_to_async_functions:a(95066,e.DiagnosticCategory.Message,"Convert_all_to_async_functions_95066","Convert all to async functions"),Add_missing_call_parentheses:a(95067,e.DiagnosticCategory.Message,"Add_missing_call_parentheses_95067","Add missing call parentheses"),Add_all_missing_call_parentheses:a(95068,e.DiagnosticCategory.Message,"Add_all_missing_call_parentheses_95068","Add all missing call parentheses"),Add_unknown_conversion_for_non_overlapping_types:a(95069,e.DiagnosticCategory.Message,"Add_unknown_conversion_for_non_overlapping_types_95069","Add 'unknown' conversion for non-overlapping types"),Add_unknown_to_all_conversions_of_non_overlapping_types:a(95070,e.DiagnosticCategory.Message,"Add_unknown_to_all_conversions_of_non_overlapping_types_95070","Add 'unknown' to all conversions of non-overlapping types"),Add_missing_new_operator_to_call:a(95071,e.DiagnosticCategory.Message,"Add_missing_new_operator_to_call_95071","Add missing 'new' operator to call"),Add_missing_new_operator_to_all_calls:a(95072,e.DiagnosticCategory.Message,"Add_missing_new_operator_to_all_calls_95072","Add missing 'new' operator to all calls"),Add_names_to_all_parameters_without_names:a(95073,e.DiagnosticCategory.Message,"Add_names_to_all_parameters_without_names_95073","Add names to all parameters without names"),Enable_the_experimentalDecorators_option_in_your_configuration_file:a(95074,e.DiagnosticCategory.Message,"Enable_the_experimentalDecorators_option_in_your_configuration_file_95074","Enable the 'experimentalDecorators' option in your configuration file"),Convert_parameters_to_destructured_object:a(95075,e.DiagnosticCategory.Message,"Convert_parameters_to_destructured_object_95075","Convert parameters to destructured object"),Extract_type:a(95077,e.DiagnosticCategory.Message,"Extract_type_95077","Extract type"),Extract_to_type_alias:a(95078,e.DiagnosticCategory.Message,"Extract_to_type_alias_95078","Extract to type alias"),Extract_to_typedef:a(95079,e.DiagnosticCategory.Message,"Extract_to_typedef_95079","Extract to typedef"),Infer_this_type_of_0_from_usage:a(95080,e.DiagnosticCategory.Message,"Infer_this_type_of_0_from_usage_95080","Infer 'this' type of '{0}' from usage"),Add_const_to_unresolved_variable:a(95081,e.DiagnosticCategory.Message,"Add_const_to_unresolved_variable_95081","Add 'const' to unresolved variable"),Add_const_to_all_unresolved_variables:a(95082,e.DiagnosticCategory.Message,"Add_const_to_all_unresolved_variables_95082","Add 'const' to all unresolved variables"),Add_await:a(95083,e.DiagnosticCategory.Message,"Add_await_95083","Add 'await'"),Add_await_to_initializer_for_0:a(95084,e.DiagnosticCategory.Message,"Add_await_to_initializer_for_0_95084","Add 'await' to initializer for '{0}'"),Fix_all_expressions_possibly_missing_await:a(95085,e.DiagnosticCategory.Message,"Fix_all_expressions_possibly_missing_await_95085","Fix all expressions possibly missing 'await'"),Remove_unnecessary_await:a(95086,e.DiagnosticCategory.Message,"Remove_unnecessary_await_95086","Remove unnecessary 'await'"),Remove_all_unnecessary_uses_of_await:a(95087,e.DiagnosticCategory.Message,"Remove_all_unnecessary_uses_of_await_95087","Remove all unnecessary uses of 'await'"),Enable_the_jsx_flag_in_your_configuration_file:a(95088,e.DiagnosticCategory.Message,"Enable_the_jsx_flag_in_your_configuration_file_95088","Enable the '--jsx' flag in your configuration file"),Add_await_to_initializers:a(95089,e.DiagnosticCategory.Message,"Add_await_to_initializers_95089","Add 'await' to initializers"),Extract_to_interface:a(95090,e.DiagnosticCategory.Message,"Extract_to_interface_95090","Extract to interface"),Convert_to_a_bigint_numeric_literal:a(95091,e.DiagnosticCategory.Message,"Convert_to_a_bigint_numeric_literal_95091","Convert to a bigint numeric literal"),Convert_all_to_bigint_numeric_literals:a(95092,e.DiagnosticCategory.Message,"Convert_all_to_bigint_numeric_literals_95092","Convert all to bigint numeric literals"),Convert_const_to_let:a(95093,e.DiagnosticCategory.Message,"Convert_const_to_let_95093","Convert 'const' to 'let'"),Prefix_with_declare:a(95094,e.DiagnosticCategory.Message,"Prefix_with_declare_95094","Prefix with 'declare'"),Prefix_all_incorrect_property_declarations_with_declare:a(95095,e.DiagnosticCategory.Message,"Prefix_all_incorrect_property_declarations_with_declare_95095","Prefix all incorrect property declarations with 'declare'"),Convert_to_template_string:a(95096,e.DiagnosticCategory.Message,"Convert_to_template_string_95096","Convert to template string"),Add_export_to_make_this_file_into_a_module:a(95097,e.DiagnosticCategory.Message,"Add_export_to_make_this_file_into_a_module_95097","Add 'export {}' to make this file into a module"),Set_the_target_option_in_your_configuration_file_to_0:a(95098,e.DiagnosticCategory.Message,"Set_the_target_option_in_your_configuration_file_to_0_95098","Set the 'target' option in your configuration file to '{0}'"),Set_the_module_option_in_your_configuration_file_to_0:a(95099,e.DiagnosticCategory.Message,"Set_the_module_option_in_your_configuration_file_to_0_95099","Set the 'module' option in your configuration file to '{0}'"),Convert_invalid_character_to_its_html_entity_code:a(95100,e.DiagnosticCategory.Message,"Convert_invalid_character_to_its_html_entity_code_95100","Convert invalid character to its html entity code"),Convert_all_invalid_characters_to_HTML_entity_code:a(95101,e.DiagnosticCategory.Message,"Convert_all_invalid_characters_to_HTML_entity_code_95101","Convert all invalid characters to HTML entity code"),Add_class_tag:a(95102,e.DiagnosticCategory.Message,"Add_class_tag_95102","Add '@class' tag"),Add_this_tag:a(95103,e.DiagnosticCategory.Message,"Add_this_tag_95103","Add '@this' tag"),Add_this_parameter:a(95104,e.DiagnosticCategory.Message,"Add_this_parameter_95104","Add 'this' parameter."),Convert_function_expression_0_to_arrow_function:a(95105,e.DiagnosticCategory.Message,"Convert_function_expression_0_to_arrow_function_95105","Convert function expression '{0}' to arrow function"),Convert_function_declaration_0_to_arrow_function:a(95106,e.DiagnosticCategory.Message,"Convert_function_declaration_0_to_arrow_function_95106","Convert function declaration '{0}' to arrow function"),Fix_all_implicit_this_errors:a(95107,e.DiagnosticCategory.Message,"Fix_all_implicit_this_errors_95107","Fix all implicit-'this' errors"),Wrap_invalid_character_in_an_expression_container:a(95108,e.DiagnosticCategory.Message,"Wrap_invalid_character_in_an_expression_container_95108","Wrap invalid character in an expression container"),Wrap_all_invalid_characters_in_an_expression_container:a(95109,e.DiagnosticCategory.Message,"Wrap_all_invalid_characters_in_an_expression_container_95109","Wrap all invalid characters in an expression container"),Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file:a(95110,e.DiagnosticCategory.Message,"Visit_https_Colon_Slash_Slashaka_ms_Slashtsconfig_json_to_read_more_about_this_file_95110","Visit https://aka.ms/tsconfig.json to read more about this file"),Add_a_return_statement:a(95111,e.DiagnosticCategory.Message,"Add_a_return_statement_95111","Add a return statement"),Remove_braces_from_arrow_function_body:a(95112,e.DiagnosticCategory.Message,"Remove_braces_from_arrow_function_body_95112","Remove braces from arrow function body"),Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal:a(95113,e.DiagnosticCategory.Message,"Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal_95113","Wrap the following body with parentheses which should be an object literal"),Add_all_missing_return_statement:a(95114,e.DiagnosticCategory.Message,"Add_all_missing_return_statement_95114","Add all missing return statement"),Remove_braces_from_all_arrow_function_bodies_with_relevant_issues:a(95115,e.DiagnosticCategory.Message,"Remove_braces_from_all_arrow_function_bodies_with_relevant_issues_95115","Remove braces from all arrow function bodies with relevant issues"),Wrap_all_object_literal_with_parentheses:a(95116,e.DiagnosticCategory.Message,"Wrap_all_object_literal_with_parentheses_95116","Wrap all object literal with parentheses"),Move_labeled_tuple_element_modifiers_to_labels:a(95117,e.DiagnosticCategory.Message,"Move_labeled_tuple_element_modifiers_to_labels_95117","Move labeled tuple element modifiers to labels"),Convert_overload_list_to_single_signature:a(95118,e.DiagnosticCategory.Message,"Convert_overload_list_to_single_signature_95118","Convert overload list to single signature"),Generate_get_and_set_accessors_for_all_overriding_properties:a(95119,e.DiagnosticCategory.Message,"Generate_get_and_set_accessors_for_all_overriding_properties_95119","Generate 'get' and 'set' accessors for all overriding properties"),Wrap_in_JSX_fragment:a(95120,e.DiagnosticCategory.Message,"Wrap_in_JSX_fragment_95120","Wrap in JSX fragment"),Wrap_all_unparented_JSX_in_JSX_fragment:a(95121,e.DiagnosticCategory.Message,"Wrap_all_unparented_JSX_in_JSX_fragment_95121","Wrap all unparented JSX in JSX fragment"),Convert_arrow_function_or_function_expression:a(95122,e.DiagnosticCategory.Message,"Convert_arrow_function_or_function_expression_95122","Convert arrow function or function expression"),Convert_to_anonymous_function:a(95123,e.DiagnosticCategory.Message,"Convert_to_anonymous_function_95123","Convert to anonymous function"),Convert_to_named_function:a(95124,e.DiagnosticCategory.Message,"Convert_to_named_function_95124","Convert to named function"),Convert_to_arrow_function:a(95125,e.DiagnosticCategory.Message,"Convert_to_arrow_function_95125","Convert to arrow function"),Remove_parentheses:a(95126,e.DiagnosticCategory.Message,"Remove_parentheses_95126","Remove parentheses"),Could_not_find_a_containing_arrow_function:a(95127,e.DiagnosticCategory.Message,"Could_not_find_a_containing_arrow_function_95127","Could not find a containing arrow function"),Containing_function_is_not_an_arrow_function:a(95128,e.DiagnosticCategory.Message,"Containing_function_is_not_an_arrow_function_95128","Containing function is not an arrow function"),Could_not_find_export_statement:a(95129,e.DiagnosticCategory.Message,"Could_not_find_export_statement_95129","Could not find export statement"),This_file_already_has_a_default_export:a(95130,e.DiagnosticCategory.Message,"This_file_already_has_a_default_export_95130","This file already has a default export"),Could_not_find_import_clause:a(95131,e.DiagnosticCategory.Message,"Could_not_find_import_clause_95131","Could not find import clause"),Could_not_find_namespace_import_or_named_imports:a(95132,e.DiagnosticCategory.Message,"Could_not_find_namespace_import_or_named_imports_95132","Could not find namespace import or named imports"),Selection_is_not_a_valid_type_node:a(95133,e.DiagnosticCategory.Message,"Selection_is_not_a_valid_type_node_95133","Selection is not a valid type node"),No_type_could_be_extracted_from_this_type_node:a(95134,e.DiagnosticCategory.Message,"No_type_could_be_extracted_from_this_type_node_95134","No type could be extracted from this type node"),Could_not_find_property_for_which_to_generate_accessor:a(95135,e.DiagnosticCategory.Message,"Could_not_find_property_for_which_to_generate_accessor_95135","Could not find property for which to generate accessor"),Name_is_not_valid:a(95136,e.DiagnosticCategory.Message,"Name_is_not_valid_95136","Name is not valid"),Can_only_convert_property_with_modifier:a(95137,e.DiagnosticCategory.Message,"Can_only_convert_property_with_modifier_95137","Can only convert property with modifier"),Switch_each_misused_0_to_1:a(95138,e.DiagnosticCategory.Message,"Switch_each_misused_0_to_1_95138","Switch each misused '{0}' to '{1}'"),Convert_to_optional_chain_expression:a(95139,e.DiagnosticCategory.Message,"Convert_to_optional_chain_expression_95139","Convert to optional chain expression"),Could_not_find_convertible_access_expression:a(95140,e.DiagnosticCategory.Message,"Could_not_find_convertible_access_expression_95140","Could not find convertible access expression"),Could_not_find_matching_access_expressions:a(95141,e.DiagnosticCategory.Message,"Could_not_find_matching_access_expressions_95141","Could not find matching access expressions"),Can_only_convert_logical_AND_access_chains:a(95142,e.DiagnosticCategory.Message,"Can_only_convert_logical_AND_access_chains_95142","Can only convert logical AND access chains"),Add_void_to_Promise_resolved_without_a_value:a(95143,e.DiagnosticCategory.Message,"Add_void_to_Promise_resolved_without_a_value_95143","Add 'void' to Promise resolved without a value"),Add_void_to_all_Promises_resolved_without_a_value:a(95144,e.DiagnosticCategory.Message,"Add_void_to_all_Promises_resolved_without_a_value_95144","Add 'void' to all Promises resolved without a value"),Use_element_access_for_0:a(95145,e.DiagnosticCategory.Message,"Use_element_access_for_0_95145","Use element access for '{0}'"),Use_element_access_for_all_undeclared_properties:a(95146,e.DiagnosticCategory.Message,"Use_element_access_for_all_undeclared_properties_95146","Use element access for all undeclared properties."),Delete_all_unused_imports:a(95147,e.DiagnosticCategory.Message,"Delete_all_unused_imports_95147","Delete all unused imports"),Infer_function_return_type:a(95148,e.DiagnosticCategory.Message,"Infer_function_return_type_95148","Infer function return type"),Return_type_must_be_inferred_from_a_function:a(95149,e.DiagnosticCategory.Message,"Return_type_must_be_inferred_from_a_function_95149","Return type must be inferred from a function"),Could_not_determine_function_return_type:a(95150,e.DiagnosticCategory.Message,"Could_not_determine_function_return_type_95150","Could not determine function return type"),Could_not_convert_to_arrow_function:a(95151,e.DiagnosticCategory.Message,"Could_not_convert_to_arrow_function_95151","Could not convert to arrow function"),Could_not_convert_to_named_function:a(95152,e.DiagnosticCategory.Message,"Could_not_convert_to_named_function_95152","Could not convert to named function"),Could_not_convert_to_anonymous_function:a(95153,e.DiagnosticCategory.Message,"Could_not_convert_to_anonymous_function_95153","Could not convert to anonymous function"),Can_only_convert_string_concatenation:a(95154,e.DiagnosticCategory.Message,"Can_only_convert_string_concatenation_95154","Can only convert string concatenation"),Selection_is_not_a_valid_statement_or_statements:a(95155,e.DiagnosticCategory.Message,"Selection_is_not_a_valid_statement_or_statements_95155","Selection is not a valid statement or statements"),Add_missing_function_declaration_0:a(95156,e.DiagnosticCategory.Message,"Add_missing_function_declaration_0_95156","Add missing function declaration '{0}'"),Add_all_missing_function_declarations:a(95157,e.DiagnosticCategory.Message,"Add_all_missing_function_declarations_95157","Add all missing function declarations"),Method_not_implemented:a(95158,e.DiagnosticCategory.Message,"Method_not_implemented_95158","Method not implemented."),Function_not_implemented:a(95159,e.DiagnosticCategory.Message,"Function_not_implemented_95159","Function not implemented."),Add_override_modifier:a(95160,e.DiagnosticCategory.Message,"Add_override_modifier_95160","Add 'override' modifier"),Remove_override_modifier:a(95161,e.DiagnosticCategory.Message,"Remove_override_modifier_95161","Remove 'override' modifier"),Add_all_missing_override_modifiers:a(95162,e.DiagnosticCategory.Message,"Add_all_missing_override_modifiers_95162","Add all missing 'override' modifiers"),Remove_all_unnecessary_override_modifiers:a(95163,e.DiagnosticCategory.Message,"Remove_all_unnecessary_override_modifiers_95163","Remove all unnecessary 'override' modifiers"),Can_only_convert_named_export:a(95164,e.DiagnosticCategory.Message,"Can_only_convert_named_export_95164","Can only convert named export"),Add_missing_properties:a(95165,e.DiagnosticCategory.Message,"Add_missing_properties_95165","Add missing properties"),Add_all_missing_properties:a(95166,e.DiagnosticCategory.Message,"Add_all_missing_properties_95166","Add all missing properties"),Add_missing_attributes:a(95167,e.DiagnosticCategory.Message,"Add_missing_attributes_95167","Add missing attributes"),Add_all_missing_attributes:a(95168,e.DiagnosticCategory.Message,"Add_all_missing_attributes_95168","Add all missing attributes"),No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer:a(18004,e.DiagnosticCategory.Error,"No_value_exists_in_scope_for_the_shorthand_property_0_Either_declare_one_or_provide_an_initializer_18004","No value exists in scope for the shorthand property '{0}'. Either declare one or provide an initializer."),Classes_may_not_have_a_field_named_constructor:a(18006,e.DiagnosticCategory.Error,"Classes_may_not_have_a_field_named_constructor_18006","Classes may not have a field named 'constructor'."),JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array:a(18007,e.DiagnosticCategory.Error,"JSX_expressions_may_not_use_the_comma_operator_Did_you_mean_to_write_an_array_18007","JSX expressions may not use the comma operator. Did you mean to write an array?"),Private_identifiers_cannot_be_used_as_parameters:a(18009,e.DiagnosticCategory.Error,"Private_identifiers_cannot_be_used_as_parameters_18009","Private identifiers cannot be used as parameters."),An_accessibility_modifier_cannot_be_used_with_a_private_identifier:a(18010,e.DiagnosticCategory.Error,"An_accessibility_modifier_cannot_be_used_with_a_private_identifier_18010","An accessibility modifier cannot be used with a private identifier."),The_operand_of_a_delete_operator_cannot_be_a_private_identifier:a(18011,e.DiagnosticCategory.Error,"The_operand_of_a_delete_operator_cannot_be_a_private_identifier_18011","The operand of a 'delete' operator cannot be a private identifier."),constructor_is_a_reserved_word:a(18012,e.DiagnosticCategory.Error,"constructor_is_a_reserved_word_18012","'#constructor' is a reserved word."),Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier:a(18013,e.DiagnosticCategory.Error,"Property_0_is_not_accessible_outside_class_1_because_it_has_a_private_identifier_18013","Property '{0}' is not accessible outside class '{1}' because it has a private identifier."),The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_private_identifier_with_the_same_spelling:a(18014,e.DiagnosticCategory.Error,"The_property_0_cannot_be_accessed_on_type_1_within_this_class_because_it_is_shadowed_by_another_priv_18014","The property '{0}' cannot be accessed on type '{1}' within this class because it is shadowed by another private identifier with the same spelling."),Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2:a(18015,e.DiagnosticCategory.Error,"Property_0_in_type_1_refers_to_a_different_member_that_cannot_be_accessed_from_within_type_2_18015","Property '{0}' in type '{1}' refers to a different member that cannot be accessed from within type '{2}'."),Private_identifiers_are_not_allowed_outside_class_bodies:a(18016,e.DiagnosticCategory.Error,"Private_identifiers_are_not_allowed_outside_class_bodies_18016","Private identifiers are not allowed outside class bodies."),The_shadowing_declaration_of_0_is_defined_here:a(18017,e.DiagnosticCategory.Error,"The_shadowing_declaration_of_0_is_defined_here_18017","The shadowing declaration of '{0}' is defined here"),The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here:a(18018,e.DiagnosticCategory.Error,"The_declaration_of_0_that_you_probably_intended_to_use_is_defined_here_18018","The declaration of '{0}' that you probably intended to use is defined here"),_0_modifier_cannot_be_used_with_a_private_identifier:a(18019,e.DiagnosticCategory.Error,"_0_modifier_cannot_be_used_with_a_private_identifier_18019","'{0}' modifier cannot be used with a private identifier."),An_enum_member_cannot_be_named_with_a_private_identifier:a(18024,e.DiagnosticCategory.Error,"An_enum_member_cannot_be_named_with_a_private_identifier_18024","An enum member cannot be named with a private identifier."),can_only_be_used_at_the_start_of_a_file:a(18026,e.DiagnosticCategory.Error,"can_only_be_used_at_the_start_of_a_file_18026","'#!' can only be used at the start of a file."),Compiler_reserves_name_0_when_emitting_private_identifier_downlevel:a(18027,e.DiagnosticCategory.Error,"Compiler_reserves_name_0_when_emitting_private_identifier_downlevel_18027","Compiler reserves name '{0}' when emitting private identifier downlevel."),Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher:a(18028,e.DiagnosticCategory.Error,"Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher_18028","Private identifiers are only available when targeting ECMAScript 2015 and higher."),Private_identifiers_are_not_allowed_in_variable_declarations:a(18029,e.DiagnosticCategory.Error,"Private_identifiers_are_not_allowed_in_variable_declarations_18029","Private identifiers are not allowed in variable declarations."),An_optional_chain_cannot_contain_private_identifiers:a(18030,e.DiagnosticCategory.Error,"An_optional_chain_cannot_contain_private_identifiers_18030","An optional chain cannot contain private identifiers."),The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents:a(18031,e.DiagnosticCategory.Error,"The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituent_18031","The intersection '{0}' was reduced to 'never' because property '{1}' has conflicting types in some constituents."),The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some:a(18032,e.DiagnosticCategory.Error,"The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_pr_18032","The intersection '{0}' was reduced to 'never' because property '{1}' exists in multiple constituents and is private in some."),Only_numeric_enums_can_have_computed_members_but_this_expression_has_type_0_If_you_do_not_need_exhaustiveness_checks_consider_using_an_object_literal_instead:a(18033,e.DiagnosticCategory.Error,"Only_numeric_enums_can_have_computed_members_but_this_expression_has_type_0_If_you_do_not_need_exhau_18033","Only numeric enums can have computed members, but this expression has type '{0}'. If you do not need exhaustiveness checks, consider using an object literal instead."),Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compiler_option_is_specified_e_g_Fragment:a(18034,e.DiagnosticCategory.Message,"Specify_the_JSX_fragment_factory_function_to_use_when_targeting_react_JSX_emit_with_jsxFactory_compi_18034","Specify the JSX fragment factory function to use when targeting 'react' JSX emit with 'jsxFactory' compiler option is specified, e.g. 'Fragment'."),Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name:a(18035,e.DiagnosticCategory.Error,"Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name_18035","Invalid value for 'jsxFragmentFactory'. '{0}' is not a valid identifier or qualified-name."),Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_decorator:a(18036,e.DiagnosticCategory.Error,"Class_decorators_can_t_be_used_with_static_private_identifier_Consider_removing_the_experimental_dec_18036","Class decorators can't be used with static private identifier. Consider removing the experimental decorator."),Await_expression_cannot_be_used_inside_a_class_static_block:a(18037,e.DiagnosticCategory.Error,"Await_expression_cannot_be_used_inside_a_class_static_block_18037","Await expression cannot be used inside a class static block."),For_await_loops_cannot_be_used_inside_a_class_static_block:a(18038,e.DiagnosticCategory.Error,"For_await_loops_cannot_be_used_inside_a_class_static_block_18038","'For await' loops cannot be used inside a class static block."),Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block:a(18039,e.DiagnosticCategory.Error,"Invalid_use_of_0_It_cannot_be_used_inside_a_class_static_block_18039","Invalid use of '{0}'. It cannot be used inside a class static block."),A_return_statement_cannot_be_used_inside_a_class_static_block:a(18041,e.DiagnosticCategory.Error,"A_return_statement_cannot_be_used_inside_a_class_static_block_18041","A 'return' statement cannot be used inside a class static block.")}})(un||(un={}));var un;(function(e){var a;function d(we){return we>=79}e.tokenIsIdentifierOrKeyword=d;function g(we){return we===31||d(we)}e.tokenIsIdentifierOrKeywordOrGreaterThan=g,e.textToKeywordObj=(a={abstract:126,any:129,as:127,asserts:128,bigint:156,boolean:132,break:81,case:82,catch:83,class:84,continue:86,const:85},a["constructor"]=133,a.debugger=87,a.declare=134,a.default=88,a.delete=89,a.do=90,a.else=91,a.enum=92,a.export=93,a.extends=94,a.false=95,a.finally=96,a.for=97,a.from=154,a.function=98,a.get=135,a.if=99,a.implements=117,a.import=100,a.in=101,a.infer=136,a.instanceof=102,a.interface=118,a.intrinsic=137,a.is=138,a.keyof=139,a.let=119,a.module=140,a.namespace=141,a.never=142,a.new=103,a.null=104,a.number=145,a.object=146,a.package=120,a.private=121,a.protected=122,a.public=123,a.override=157,a.readonly=143,a.require=144,a.global=155,a.return=105,a.set=147,a.static=124,a.string=148,a.super=106,a.switch=107,a.symbol=149,a.this=108,a.throw=109,a.true=110,a.try=111,a.type=150,a.typeof=112,a.undefined=151,a.unique=152,a.unknown=153,a.var=113,a.void=114,a.while=115,a.with=116,a.yield=125,a.async=130,a.await=131,a.of=158,a);var t=new e.Map(e.getEntries(e.textToKeywordObj)),p=new e.Map(e.getEntries(Dt(Dt({},e.textToKeywordObj),{"{":18,"}":19,"(":20,")":21,"[":22,"]":23,".":24,"...":25,";":26,",":27,"<":29,">":31,"<=":32,">=":33,"==":34,"!=":35,"===":36,"!==":37,"=>":38,"+":39,"-":40,"**":42,"*":41,"/":43,"%":44,"++":45,"--":46,"<<":47,">":48,">>>":49,"&":50,"|":51,"^":52,"!":53,"~":54,"&&":55,"||":56,"?":57,"??":60,"?.":28,":":58,"=":63,"+=":64,"-=":65,"*=":66,"**=":67,"/=":68,"%=":69,"<<=":70,">>=":71,">>>=":72,"&=":73,"|=":74,"^=":78,"||=":75,"&&=":76,"??=":77,"@":59,"#":62,"`":61}))),P=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1569,1594,1600,1610,1649,1747,1749,1749,1765,1766,1786,1788,1808,1808,1810,1836,1920,1957,2309,2361,2365,2365,2384,2384,2392,2401,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2784,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2877,2877,2908,2909,2911,2913,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3294,3294,3296,3297,3333,3340,3342,3344,3346,3368,3370,3385,3424,3425,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3805,3840,3840,3904,3911,3913,3946,3976,3979,4096,4129,4131,4135,4137,4138,4176,4181,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6067,6176,6263,6272,6312,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8319,8319,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12329,12337,12341,12344,12346,12353,12436,12445,12446,12449,12538,12540,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65138,65140,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],J=[170,170,181,181,186,186,192,214,216,246,248,543,546,563,592,685,688,696,699,705,720,721,736,740,750,750,768,846,864,866,890,890,902,902,904,906,908,908,910,929,931,974,976,983,986,1011,1024,1153,1155,1158,1164,1220,1223,1224,1227,1228,1232,1269,1272,1273,1329,1366,1369,1369,1377,1415,1425,1441,1443,1465,1467,1469,1471,1471,1473,1474,1476,1476,1488,1514,1520,1522,1569,1594,1600,1621,1632,1641,1648,1747,1749,1756,1759,1768,1770,1773,1776,1788,1808,1836,1840,1866,1920,1968,2305,2307,2309,2361,2364,2381,2384,2388,2392,2403,2406,2415,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2492,2494,2500,2503,2504,2507,2509,2519,2519,2524,2525,2527,2531,2534,2545,2562,2562,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2649,2652,2654,2654,2662,2676,2689,2691,2693,2699,2701,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2784,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2870,2873,2876,2883,2887,2888,2891,2893,2902,2903,2908,2909,2911,2913,2918,2927,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,2997,2999,3001,3006,3010,3014,3016,3018,3021,3031,3031,3047,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3134,3140,3142,3144,3146,3149,3157,3158,3168,3169,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3262,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3297,3302,3311,3330,3331,3333,3340,3342,3344,3346,3368,3370,3385,3390,3395,3398,3400,3402,3405,3415,3415,3424,3425,3430,3439,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3805,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3946,3953,3972,3974,3979,3984,3991,3993,4028,4038,4038,4096,4129,4131,4135,4137,4138,4140,4146,4150,4153,4160,4169,4176,4185,4256,4293,4304,4342,4352,4441,4447,4514,4520,4601,4608,4614,4616,4678,4680,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4742,4744,4744,4746,4749,4752,4782,4784,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4814,4816,4822,4824,4846,4848,4878,4880,4880,4882,4885,4888,4894,4896,4934,4936,4954,4969,4977,5024,5108,5121,5740,5743,5750,5761,5786,5792,5866,6016,6099,6112,6121,6160,6169,6176,6263,6272,6313,7680,7835,7840,7929,7936,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8319,8319,8400,8412,8417,8417,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8497,8499,8505,8544,8579,12293,12295,12321,12335,12337,12341,12344,12346,12353,12436,12441,12442,12445,12446,12449,12542,12549,12588,12593,12686,12704,12727,13312,19893,19968,40869,40960,42124,44032,55203,63744,64045,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65056,65059,65075,65076,65101,65103,65136,65138,65140,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65381,65470,65474,65479,65482,65487,65490,65495,65498,65500],h=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1319,1329,1366,1369,1369,1377,1415,1488,1514,1520,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2208,2208,2210,2220,2308,2361,2365,2365,2384,2384,2392,2401,2417,2423,2425,2431,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3133,3160,3161,3168,3169,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3424,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6263,6272,6312,6314,6314,6320,6389,6400,6428,6480,6509,6512,6516,6528,6571,6593,6599,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7401,7404,7406,7409,7413,7414,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11823,11823,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42647,42656,42735,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43648,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],v=[170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,902,902,904,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1319,1329,1366,1369,1369,1377,1415,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1520,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2048,2093,2112,2139,2208,2208,2210,2220,2276,2302,2304,2403,2406,2415,2417,2423,2425,2431,2433,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3073,3075,3077,3084,3086,3088,3090,3112,3114,3123,3125,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3161,3168,3171,3174,3183,3202,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3330,3331,3333,3340,3342,3344,3346,3386,3389,3396,3398,3400,3402,3406,3415,3415,3424,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3719,3720,3722,3722,3725,3725,3732,3735,3737,3743,3745,3747,3749,3749,3751,3751,3754,3755,3757,3769,3771,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4992,5007,5024,5108,5121,5740,5743,5759,5761,5786,5792,5866,5870,5872,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6263,6272,6314,6320,6389,6400,6428,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6617,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7376,7378,7380,7414,7424,7654,7676,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8204,8205,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8473,8477,8484,8484,8486,8486,8488,8488,8490,8493,8495,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,11823,11823,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12442,12445,12447,12449,12538,12540,12543,12549,12589,12593,12686,12704,12730,12784,12799,13312,19893,19968,40908,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42647,42655,42737,42775,42783,42786,42888,42891,42894,42896,42899,42912,42922,43e3,43047,43072,43123,43136,43204,43216,43225,43232,43255,43259,43259,43264,43309,43312,43347,43360,43388,43392,43456,43471,43481,43520,43574,43584,43597,43600,43609,43616,43638,43642,43643,43648,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43968,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65062,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500],I=[65,90,97,122,170,170,181,181,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,880,884,886,887,890,893,895,895,902,902,904,906,908,908,910,929,931,1013,1015,1153,1162,1327,1329,1366,1369,1369,1376,1416,1488,1514,1519,1522,1568,1610,1646,1647,1649,1747,1749,1749,1765,1766,1774,1775,1786,1788,1791,1791,1808,1808,1810,1839,1869,1957,1969,1969,1994,2026,2036,2037,2042,2042,2048,2069,2074,2074,2084,2084,2088,2088,2112,2136,2144,2154,2208,2228,2230,2237,2308,2361,2365,2365,2384,2384,2392,2401,2417,2432,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2493,2493,2510,2510,2524,2525,2527,2529,2544,2545,2556,2556,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2649,2652,2654,2654,2674,2676,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2749,2749,2768,2768,2784,2785,2809,2809,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2877,2877,2908,2909,2911,2913,2929,2929,2947,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3024,3024,3077,3084,3086,3088,3090,3112,3114,3129,3133,3133,3160,3162,3168,3169,3200,3200,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3261,3261,3294,3294,3296,3297,3313,3314,3333,3340,3342,3344,3346,3386,3389,3389,3406,3406,3412,3414,3423,3425,3450,3455,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3585,3632,3634,3635,3648,3654,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3760,3762,3763,3773,3773,3776,3780,3782,3782,3804,3807,3840,3840,3904,3911,3913,3948,3976,3980,4096,4138,4159,4159,4176,4181,4186,4189,4193,4193,4197,4198,4206,4208,4213,4225,4238,4238,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5905,5920,5937,5952,5969,5984,5996,5998,6e3,6016,6067,6103,6103,6108,6108,6176,6264,6272,6312,6314,6314,6320,6389,6400,6430,6480,6509,6512,6516,6528,6571,6576,6601,6656,6678,6688,6740,6823,6823,6917,6963,6981,6987,7043,7072,7086,7087,7098,7141,7168,7203,7245,7247,7258,7293,7296,7304,7312,7354,7357,7359,7401,7404,7406,7411,7413,7414,7418,7418,7424,7615,7680,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8305,8305,8319,8319,8336,8348,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11502,11506,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11648,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,12293,12295,12321,12329,12337,12341,12344,12348,12353,12438,12443,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42527,42538,42539,42560,42606,42623,42653,42656,42735,42775,42783,42786,42888,42891,42943,42946,42950,42999,43009,43011,43013,43015,43018,43020,43042,43072,43123,43138,43187,43250,43255,43259,43259,43261,43262,43274,43301,43312,43334,43360,43388,43396,43442,43471,43471,43488,43492,43494,43503,43514,43518,43520,43560,43584,43586,43588,43595,43616,43638,43642,43642,43646,43695,43697,43697,43701,43702,43705,43709,43712,43712,43714,43714,43739,43741,43744,43754,43762,43764,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44002,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64285,64287,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65136,65140,65142,65276,65313,65338,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66176,66204,66208,66256,66304,66335,66349,66378,66384,66421,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68096,68112,68115,68117,68119,68121,68149,68192,68220,68224,68252,68288,68295,68297,68324,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68899,69376,69404,69415,69415,69424,69445,69600,69622,69635,69687,69763,69807,69840,69864,69891,69926,69956,69956,69968,70002,70006,70006,70019,70066,70081,70084,70106,70106,70108,70108,70144,70161,70163,70187,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70366,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70461,70461,70480,70480,70493,70497,70656,70708,70727,70730,70751,70751,70784,70831,70852,70853,70855,70855,71040,71086,71128,71131,71168,71215,71236,71236,71296,71338,71352,71352,71424,71450,71680,71723,71840,71903,71935,71935,72096,72103,72106,72144,72161,72161,72163,72163,72192,72192,72203,72242,72250,72250,72272,72272,72284,72329,72349,72349,72384,72440,72704,72712,72714,72750,72768,72768,72818,72847,72960,72966,72968,72969,72971,73008,73030,73030,73056,73061,73063,73064,73066,73097,73112,73112,73440,73458,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92880,92909,92928,92975,92992,92995,93027,93047,93053,93071,93760,93823,93952,94026,94032,94032,94099,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,123136,123180,123191,123197,123214,123214,123584,123627,124928,125124,125184,125251,125259,125259,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101],X=[48,57,65,90,95,95,97,122,170,170,181,181,183,183,186,186,192,214,216,246,248,705,710,721,736,740,748,748,750,750,768,884,886,887,890,893,895,895,902,906,908,908,910,929,931,1013,1015,1153,1155,1159,1162,1327,1329,1366,1369,1369,1376,1416,1425,1469,1471,1471,1473,1474,1476,1477,1479,1479,1488,1514,1519,1522,1552,1562,1568,1641,1646,1747,1749,1756,1759,1768,1770,1788,1791,1791,1808,1866,1869,1969,1984,2037,2042,2042,2045,2045,2048,2093,2112,2139,2144,2154,2208,2228,2230,2237,2259,2273,2275,2403,2406,2415,2417,2435,2437,2444,2447,2448,2451,2472,2474,2480,2482,2482,2486,2489,2492,2500,2503,2504,2507,2510,2519,2519,2524,2525,2527,2531,2534,2545,2556,2556,2558,2558,2561,2563,2565,2570,2575,2576,2579,2600,2602,2608,2610,2611,2613,2614,2616,2617,2620,2620,2622,2626,2631,2632,2635,2637,2641,2641,2649,2652,2654,2654,2662,2677,2689,2691,2693,2701,2703,2705,2707,2728,2730,2736,2738,2739,2741,2745,2748,2757,2759,2761,2763,2765,2768,2768,2784,2787,2790,2799,2809,2815,2817,2819,2821,2828,2831,2832,2835,2856,2858,2864,2866,2867,2869,2873,2876,2884,2887,2888,2891,2893,2902,2903,2908,2909,2911,2915,2918,2927,2929,2929,2946,2947,2949,2954,2958,2960,2962,2965,2969,2970,2972,2972,2974,2975,2979,2980,2984,2986,2990,3001,3006,3010,3014,3016,3018,3021,3024,3024,3031,3031,3046,3055,3072,3084,3086,3088,3090,3112,3114,3129,3133,3140,3142,3144,3146,3149,3157,3158,3160,3162,3168,3171,3174,3183,3200,3203,3205,3212,3214,3216,3218,3240,3242,3251,3253,3257,3260,3268,3270,3272,3274,3277,3285,3286,3294,3294,3296,3299,3302,3311,3313,3314,3328,3331,3333,3340,3342,3344,3346,3396,3398,3400,3402,3406,3412,3415,3423,3427,3430,3439,3450,3455,3458,3459,3461,3478,3482,3505,3507,3515,3517,3517,3520,3526,3530,3530,3535,3540,3542,3542,3544,3551,3558,3567,3570,3571,3585,3642,3648,3662,3664,3673,3713,3714,3716,3716,3718,3722,3724,3747,3749,3749,3751,3773,3776,3780,3782,3782,3784,3789,3792,3801,3804,3807,3840,3840,3864,3865,3872,3881,3893,3893,3895,3895,3897,3897,3902,3911,3913,3948,3953,3972,3974,3991,3993,4028,4038,4038,4096,4169,4176,4253,4256,4293,4295,4295,4301,4301,4304,4346,4348,4680,4682,4685,4688,4694,4696,4696,4698,4701,4704,4744,4746,4749,4752,4784,4786,4789,4792,4798,4800,4800,4802,4805,4808,4822,4824,4880,4882,4885,4888,4954,4957,4959,4969,4977,4992,5007,5024,5109,5112,5117,5121,5740,5743,5759,5761,5786,5792,5866,5870,5880,5888,5900,5902,5908,5920,5940,5952,5971,5984,5996,5998,6e3,6002,6003,6016,6099,6103,6103,6108,6109,6112,6121,6155,6157,6160,6169,6176,6264,6272,6314,6320,6389,6400,6430,6432,6443,6448,6459,6470,6509,6512,6516,6528,6571,6576,6601,6608,6618,6656,6683,6688,6750,6752,6780,6783,6793,6800,6809,6823,6823,6832,6845,6912,6987,6992,7001,7019,7027,7040,7155,7168,7223,7232,7241,7245,7293,7296,7304,7312,7354,7357,7359,7376,7378,7380,7418,7424,7673,7675,7957,7960,7965,7968,8005,8008,8013,8016,8023,8025,8025,8027,8027,8029,8029,8031,8061,8064,8116,8118,8124,8126,8126,8130,8132,8134,8140,8144,8147,8150,8155,8160,8172,8178,8180,8182,8188,8255,8256,8276,8276,8305,8305,8319,8319,8336,8348,8400,8412,8417,8417,8421,8432,8450,8450,8455,8455,8458,8467,8469,8469,8472,8477,8484,8484,8486,8486,8488,8488,8490,8505,8508,8511,8517,8521,8526,8526,8544,8584,11264,11310,11312,11358,11360,11492,11499,11507,11520,11557,11559,11559,11565,11565,11568,11623,11631,11631,11647,11670,11680,11686,11688,11694,11696,11702,11704,11710,11712,11718,11720,11726,11728,11734,11736,11742,11744,11775,12293,12295,12321,12335,12337,12341,12344,12348,12353,12438,12441,12447,12449,12538,12540,12543,12549,12591,12593,12686,12704,12730,12784,12799,13312,19893,19968,40943,40960,42124,42192,42237,42240,42508,42512,42539,42560,42607,42612,42621,42623,42737,42775,42783,42786,42888,42891,42943,42946,42950,42999,43047,43072,43123,43136,43205,43216,43225,43232,43255,43259,43259,43261,43309,43312,43347,43360,43388,43392,43456,43471,43481,43488,43518,43520,43574,43584,43597,43600,43609,43616,43638,43642,43714,43739,43741,43744,43759,43762,43766,43777,43782,43785,43790,43793,43798,43808,43814,43816,43822,43824,43866,43868,43879,43888,44010,44012,44013,44016,44025,44032,55203,55216,55238,55243,55291,63744,64109,64112,64217,64256,64262,64275,64279,64285,64296,64298,64310,64312,64316,64318,64318,64320,64321,64323,64324,64326,64433,64467,64829,64848,64911,64914,64967,65008,65019,65024,65039,65056,65071,65075,65076,65101,65103,65136,65140,65142,65276,65296,65305,65313,65338,65343,65343,65345,65370,65382,65470,65474,65479,65482,65487,65490,65495,65498,65500,65536,65547,65549,65574,65576,65594,65596,65597,65599,65613,65616,65629,65664,65786,65856,65908,66045,66045,66176,66204,66208,66256,66272,66272,66304,66335,66349,66378,66384,66426,66432,66461,66464,66499,66504,66511,66513,66517,66560,66717,66720,66729,66736,66771,66776,66811,66816,66855,66864,66915,67072,67382,67392,67413,67424,67431,67584,67589,67592,67592,67594,67637,67639,67640,67644,67644,67647,67669,67680,67702,67712,67742,67808,67826,67828,67829,67840,67861,67872,67897,67968,68023,68030,68031,68096,68099,68101,68102,68108,68115,68117,68119,68121,68149,68152,68154,68159,68159,68192,68220,68224,68252,68288,68295,68297,68326,68352,68405,68416,68437,68448,68466,68480,68497,68608,68680,68736,68786,68800,68850,68864,68903,68912,68921,69376,69404,69415,69415,69424,69456,69600,69622,69632,69702,69734,69743,69759,69818,69840,69864,69872,69881,69888,69940,69942,69951,69956,69958,69968,70003,70006,70006,70016,70084,70089,70092,70096,70106,70108,70108,70144,70161,70163,70199,70206,70206,70272,70278,70280,70280,70282,70285,70287,70301,70303,70312,70320,70378,70384,70393,70400,70403,70405,70412,70415,70416,70419,70440,70442,70448,70450,70451,70453,70457,70459,70468,70471,70472,70475,70477,70480,70480,70487,70487,70493,70499,70502,70508,70512,70516,70656,70730,70736,70745,70750,70751,70784,70853,70855,70855,70864,70873,71040,71093,71096,71104,71128,71133,71168,71232,71236,71236,71248,71257,71296,71352,71360,71369,71424,71450,71453,71467,71472,71481,71680,71738,71840,71913,71935,71935,72096,72103,72106,72151,72154,72161,72163,72164,72192,72254,72263,72263,72272,72345,72349,72349,72384,72440,72704,72712,72714,72758,72760,72768,72784,72793,72818,72847,72850,72871,72873,72886,72960,72966,72968,72969,72971,73014,73018,73018,73020,73021,73023,73031,73040,73049,73056,73061,73063,73064,73066,73102,73104,73105,73107,73112,73120,73129,73440,73462,73728,74649,74752,74862,74880,75075,77824,78894,82944,83526,92160,92728,92736,92766,92768,92777,92880,92909,92912,92916,92928,92982,92992,92995,93008,93017,93027,93047,93053,93071,93760,93823,93952,94026,94031,94087,94095,94111,94176,94177,94179,94179,94208,100343,100352,101106,110592,110878,110928,110930,110948,110951,110960,111355,113664,113770,113776,113788,113792,113800,113808,113817,113821,113822,119141,119145,119149,119154,119163,119170,119173,119179,119210,119213,119362,119364,119808,119892,119894,119964,119966,119967,119970,119970,119973,119974,119977,119980,119982,119993,119995,119995,119997,120003,120005,120069,120071,120074,120077,120084,120086,120092,120094,120121,120123,120126,120128,120132,120134,120134,120138,120144,120146,120485,120488,120512,120514,120538,120540,120570,120572,120596,120598,120628,120630,120654,120656,120686,120688,120712,120714,120744,120746,120770,120772,120779,120782,120831,121344,121398,121403,121452,121461,121461,121476,121476,121499,121503,121505,121519,122880,122886,122888,122904,122907,122913,122915,122916,122918,122922,123136,123180,123184,123197,123200,123209,123214,123214,123584,123641,124928,125124,125136,125142,125184,125259,125264,125273,126464,126467,126469,126495,126497,126498,126500,126500,126503,126503,126505,126514,126516,126519,126521,126521,126523,126523,126530,126530,126535,126535,126537,126537,126539,126539,126541,126543,126545,126546,126548,126548,126551,126551,126553,126553,126555,126555,126557,126557,126559,126559,126561,126562,126564,126564,126567,126570,126572,126578,126580,126583,126585,126588,126590,126590,126592,126601,126603,126619,126625,126627,126629,126633,126635,126651,131072,173782,173824,177972,177984,178205,178208,183969,183984,191456,194560,195101,917760,917999],se=/^\/\/\/?\s*@(ts-expect-error|ts-ignore)/,y=/^(?:\/|\*)*\s*@(ts-expect-error|ts-ignore)/;function w(we,ze){if(we=2?w(we,I):ze===1?w(we,h):w(we,P)}e.isUnicodeIdentifierStart=D;function U(we,ze){return ze>=2?w(we,X):ze===1?w(we,v):w(we,J)}function B(we){var ze=[];return we.forEach(function(Cn,an){ze[Cn]=an}),ze}var R=B(p);function O(we){return R[we]}e.tokenToString=O;function k(we){return p.get(we)}e.stringToToken=k;function M(we){for(var ze=new Array,Cn=0,an=0;Cn127&&E(vn)&&(ze.push(an),an=Cn);break}}return ze.push(an),ze}e.computeLineStarts=M;function z(we,ze,Cn,an){return we.getPositionOfLineAndCharacter?we.getPositionOfLineAndCharacter(ze,Cn,an):Y(ne(we),ze,Cn,we.text,an)}e.getPositionOfLineAndCharacter=z;function Y(we,ze,Cn,an,vn){(ze<0||ze>=we.length)&&(vn?ze=ze<0?0:ze>=we.length?we.length-1:ze:e.Debug.fail("Bad line number. Line: "+ze+", lineStarts.length: "+we.length+" , line map is correct? "+(an!==void 0?e.arraysEqual(we,M(an)):"unknown")));var Nn=we[ze]+Cn;return vn?Nn>we[ze+1]?we[ze+1]:typeof an=="string"&&Nn>an.length?an.length:Nn:(ze=8192&&we<=8203||we===8239||we===8287||we===12288||we===65279}e.isWhiteSpaceSingleLine=A;function E(we){return we===10||we===13||we===8232||we===8233}e.isLineBreak=E;function x(we){return we>=48&&we<=57}function C(we){return x(we)||we>=65&&we<=70||we>=97&&we<=102}function m(we){return we<=1114111}function c(we){return we>=48&&we<=55}e.isOctalDigit=c;function f(we,ze){var Cn=we.charCodeAt(ze);switch(Cn){case 13:case 10:case 9:case 11:case 12:case 32:case 47:case 60:case 124:case 61:case 62:return!0;case 35:return ze===0;default:return Cn>127}}e.couldStartTrivia=f;function N(we,ze,Cn,an,vn){if(e.positionIsSynthesized(ze))return ze;for(var Nn=!1;;){var Kn=we.charCodeAt(ze);switch(Kn){case 13:we.charCodeAt(ze+1)===10&&ze++;case 10:if(ze++,Cn)return ze;Nn=!!vn;continue;case 9:case 11:case 12:case 32:ze++;continue;case 47:if(an)break;if(we.charCodeAt(ze+1)===47){for(ze+=2;ze127&&b(Kn)){ze++;continue}break}return ze}}e.skipTrivia=N;var V="<<<<<<<".length;function Z(we,ze){if(e.Debug.assert(ze>=0),ze===0||E(we.charCodeAt(ze-1))){var Cn=we.charCodeAt(ze);if(ze+V=0&&Cn127&&b(qe)){qn&&E(qe)&&(Tn=!0),Cn++;continue}break e}}return qn&&(Be=vn($e,ie,dn,Tn,Nn,Be)),Be}function re(we,ze,Cn,an){return F(!1,we,ze,!1,Cn,an)}e.forEachLeadingCommentRange=re;function q(we,ze,Cn,an){return F(!1,we,ze,!0,Cn,an)}e.forEachTrailingCommentRange=q;function ue(we,ze,Cn,an,vn){return F(!0,we,ze,!1,Cn,an,vn)}e.reduceEachLeadingCommentRange=ue;function ke(we,ze,Cn,an,vn){return F(!0,we,ze,!0,Cn,an,vn)}e.reduceEachTrailingCommentRange=ke;function de(we,ze,Cn,an,vn,Nn){return Nn||(Nn=[]),Nn.push({kind:Cn,pos:we,end:ze,hasTrailingNewLine:an}),Nn}function xe(we,ze){return ue(we,ze,de,void 0,void 0)}e.getLeadingCommentRanges=xe;function Le(we,ze){return ke(we,ze,de,void 0,void 0)}e.getTrailingCommentRanges=Le;function He(we){var ze=ce.exec(we);if(ze)return ze[0]}e.getShebang=He;function Ne(we,ze){return we>=65&&we<=90||we>=97&&we<=122||we===36||we===95||we>127&&D(we,ze)}e.isIdentifierStart=Ne;function De(we,ze,Cn){return we>=65&&we<=90||we>=97&&we<=122||we>=48&&we<=57||we===36||we===95||(Cn===1?we===45||we===58:!1)||we>127&&U(we,ze)}e.isIdentifierPart=De;function Ee(we,ze,Cn){var an=ye(we,0);if(!Ne(an,ze))return!1;for(var vn=Ie(an);vn116},isReservedWord:function(){return oe>=81&&oe<=116},isUnterminated:function(){return(Te&4)!=0},getCommentDirectives:function(){return qe},getNumericLiteralFlags:function(){return Te&1008},getTokenFlags:function(){return Te},reScanGreaterToken:tn,reScanAsteriskEqualsToken:le,reScanSlashToken:Vn,reScanTemplateToken:In,reScanTemplateHeadOrNoSubstitutionTemplate:pn,scanJsxIdentifier:gr,scanJsxAttributeValue:zr,reScanJsxAttributeValue:Tt,reScanJsxToken:Rn,reScanLessThanToken:hn,reScanHashToken:rr,reScanQuestionToken:lr,reScanInvalidIdentifier:fe,scanJsxToken:dr,scanJsDocToken:ht,scan:on,getText:fr,clearCommentDirectives:Pt,setText:fa,setScriptTarget:Ka,setLanguageVariant:Ei,setOnError:Xa,setTextPos:ti,setInJSDocType:ta,tryScan:Xt,lookAhead:qr,scanRange:dt};return e.Debug.isDebugging&&Object.defineProperty(be,"__debugShowCurrentPositionInText",{get:function(){var yr=be.getText();return yr.slice(0,be.getStartPos())+"\u2551"+yr.slice(be.getStartPos())}}),be;function Xe(yr,Kr,Vr){if(Kr===void 0&&(Kr=ie),vn){var wt=ie;ie=Kr,vn(yr,Vr||0),ie=wt}}function En(){for(var yr=ie,Kr=!1,Vr=!1,wt="";;){var Bt=$e.charCodeAt(ie);if(Bt===95){Te|=512,Kr?(Kr=!1,Vr=!0,wt+=$e.substring(yr,ie)):Xe(Vr?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,ie,1),ie++,yr=ie;continue}if(x(Bt)){Kr=!0,Vr=!1,ie++;continue}break}return $e.charCodeAt(ie-1)===95&&Xe(e.Diagnostics.Numeric_separators_are_not_allowed_here,ie-1,1),wt+$e.substring(yr,ie)}function Pe(){var yr=ie,Kr=En(),Vr,wt;$e.charCodeAt(ie)===46&&(ie++,Vr=En());var Bt=ie;if($e.charCodeAt(ie)===69||$e.charCodeAt(ie)===101){ie++,Te|=16,($e.charCodeAt(ie)===43||$e.charCodeAt(ie)===45)&&ie++;var Tr=ie,vr=En();vr?(wt=$e.substring(Bt,Tr)+vr,Bt=ie):Xe(e.Diagnostics.Digit_expected)}var Br;if(Te&512?(Br=Kr,Vr&&(Br+="."+Vr),wt&&(Br+=wt)):Br=$e.substring(yr,Bt),Vr!==void 0||Te&16)return he(yr,Vr===void 0&&!!(Te&16)),{type:8,value:""+ +Br};Be=Br;var Wr=jn();return he(yr),{type:Wr,value:Be}}function he(yr,Kr){if(!!Ne(ye($e,ie),we)){var Vr=ie,wt=Je().length;wt===1&&$e[Vr]==="n"?Xe(Kr?e.Diagnostics.A_bigint_literal_cannot_use_exponential_notation:e.Diagnostics.A_bigint_literal_must_be_an_integer,yr,Vr-yr+1):(Xe(e.Diagnostics.An_identifier_or_keyword_cannot_immediately_follow_a_numeric_literal,Vr,wt),ie=Vr)}}function ln(){for(var yr=ie;c($e.charCodeAt(ie));)ie++;return+$e.substring(yr,ie)}function sn(yr,Kr){var Vr=Un(yr,!1,Kr);return Vr?parseInt(Vr,16):-1}function An(yr,Kr){return Un(yr,!0,Kr)}function Un(yr,Kr,Vr){for(var wt=[],Bt=!1,Tr=!1;wt.length=65&&vr<=70)vr+=97-65;else if(!(vr>=48&&vr<=57||vr>=97&&vr<=102))break;wt.push(vr),ie++,Tr=!1}return wt.length=dn){Vr+=$e.substring(wt,ie),Te|=4,Xe(e.Diagnostics.Unterminated_string_literal);break}var Bt=$e.charCodeAt(ie);if(Bt===Kr){Vr+=$e.substring(wt,ie),ie++;break}if(Bt===92&&!yr){Vr+=$e.substring(wt,ie),Vr+=xr(),wt=ie;continue}if(E(Bt)&&!yr){Vr+=$e.substring(wt,ie),Te|=4,Xe(e.Diagnostics.Unterminated_string_literal);break}ie++}return Vr}function Cr(yr){var Kr=$e.charCodeAt(ie)===96;ie++;for(var Vr=ie,wt="",Bt;;){if(ie>=dn){wt+=$e.substring(Vr,ie),Te|=4,Xe(e.Diagnostics.Unterminated_template_literal),Bt=Kr?14:17;break}var Tr=$e.charCodeAt(ie);if(Tr===96){wt+=$e.substring(Vr,ie),ie++,Bt=Kr?14:17;break}if(Tr===36&&ie+1=dn)return Xe(e.Diagnostics.Unexpected_end_of_text),"";var Vr=$e.charCodeAt(ie);switch(ie++,Vr){case 48:return yr&&ie=0?String.fromCharCode(Kr):(Xe(e.Diagnostics.Hexadecimal_digit_expected),"")}function Ve(){var yr=An(1,!1),Kr=yr?parseInt(yr,16):-1,Vr=!1;return Kr<0?(Xe(e.Diagnostics.Hexadecimal_digit_expected),Vr=!0):Kr>1114111&&(Xe(e.Diagnostics.An_extended_Unicode_escape_value_must_be_between_0x0_and_0x10FFFF_inclusive),Vr=!0),ie>=dn?(Xe(e.Diagnostics.Unexpected_end_of_text),Vr=!0):$e.charCodeAt(ie)===125?ie++:(Xe(e.Diagnostics.Unterminated_Unicode_escape_sequence),Vr=!0),Vr?"":Me(Kr)}function Ln(){if(ie+5=2&&ye($e,ie+1)===117&&ye($e,ie+2)===123){var yr=ie;ie+=3;var Kr=An(1,!1),Vr=Kr?parseInt(Kr,16):-1;return ie=yr,Vr}return-1}function Je(){for(var yr="",Kr=ie;ie=0&&De(Vr,we)){ie+=3,Te|=8,yr+=Ve(),Kr=ie;continue}if(Vr=Ln(),!(Vr>=0&&De(Vr,we)))break;Te|=1024,yr+=$e.substring(Kr,ie),yr+=Me(Vr),ie+=6,Kr=ie}else break}return yr+=$e.substring(Kr,ie),yr}function kn(){var yr=Be.length;if(yr>=2&&yr<=12){var Kr=Be.charCodeAt(0);if(Kr>=97&&Kr<=122){var Vr=t.get(Be);if(Vr!==void 0)return oe=Vr}}return oe=79}function Qn(yr){for(var Kr="",Vr=!1,wt=!1;;){var Bt=$e.charCodeAt(ie);if(Bt===95){Te|=512,Vr?(Vr=!1,wt=!0):Xe(wt?e.Diagnostics.Multiple_consecutive_numeric_separators_are_not_permitted:e.Diagnostics.Numeric_separators_are_not_allowed_here,ie,1),ie++;continue}if(Vr=!0,!x(Bt)||Bt-48>=yr)break;Kr+=$e[ie],ie++,wt=!1}return $e.charCodeAt(ie-1)===95&&Xe(e.Diagnostics.Numeric_separators_are_not_allowed_here,ie-1,1),Kr}function jn(){if($e.charCodeAt(ie)===110)return Be+="n",Te&384&&(Be=e.parsePseudoBigInt(Be)+"n"),ie++,9;var yr=Te&128?parseInt(Be.slice(2),2):Te&256?parseInt(Be.slice(2),8):+Be;return Be=""+yr,8}function on(){var yr;Tn=ie,Te=0;for(var Kr=!1;;){if(qn=ie,ie>=dn)return oe=1;var Vr=ye($e,ie);if(Vr===35&&ie===0&&ge($e,ie)){if(ie=ae($e,ie),ze)continue;return oe=6}switch(Vr){case 10:case 13:if(Te|=1,ze){ie++;continue}else return Vr===13&&ie+1=0&&Ne(vr,we))return ie+=3,Te|=8,Be=Ve()+Je(),oe=kn();var Br=Ln();return Br>=0&&Ne(Br,we)?(ie+=6,Te|=1024,Be=String.fromCharCode(Br)+Je(),oe=kn()):(Xe(e.Diagnostics.Invalid_character),ie++,oe=0);case 35:return ie!==0&&$e[ie+1]==="!"?(Xe(e.Diagnostics.can_only_be_used_at_the_start_of_a_file),ie++,oe=0):(Ne(ye($e,ie+1),we)?(ie++,Ge(ye($e,ie),we)):(Be=String.fromCharCode(ye($e,ie)),Xe(e.Diagnostics.Invalid_character,ie++,Ie(Vr))),oe=80);default:var Wr=Ge(Vr,we);if(Wr)return oe=Wr;if(A(Vr)){ie+=Ie(Vr);continue}else if(E(Vr)){Te|=1,ie+=Ie(Vr);continue}var tt=Ie(Vr);return Xe(e.Diagnostics.Invalid_character,ie,tt),ie+=tt,oe=0}}}function fe(){e.Debug.assert(oe===0,"'reScanInvalidIdentifier' should only be called when the current token is 'SyntaxKind.Unknown'."),ie=qn=Tn,Te=0;var yr=ye($e,ie),Kr=Ge(yr,99);return Kr?oe=Kr:(ie+=Ie(yr),oe)}function Ge(yr,Kr){var Vr=yr;if(Ne(Vr,Kr)){for(ie+=Ie(Vr);ie=dn)return oe=1;var Kr=$e.charCodeAt(ie);if(Kr===60)return $e.charCodeAt(ie+1)===47?(ie+=2,oe=30):(ie++,oe=29);if(Kr===123)return ie++,oe=18;for(var Vr=0;ie0)break;b(Kr)||(Vr=ie)}ie++}return Be=$e.substring(Tn,ie),Vr===-1?12:11}function gr(){if(d(oe)){for(var yr=!1;ie=dn)return oe=1;var yr=ye($e,ie);switch(ie+=Ie(yr),yr){case 9:case 11:case 12:case 32:for(;ie=0&&Ne(Kr,we))return ie+=3,Te|=8,Be=Ve()+Je(),oe=kn();var Vr=Ln();return Vr>=0&&Ne(Vr,we)?(ie+=6,Te|=1024,Be=String.fromCharCode(Vr)+Je(),oe=kn()):(ie++,oe=0)}if(Ne(yr,we)){for(var wt=yr;ie=0),ie=yr,Tn=yr,qn=yr,oe=0,Be=void 0,Te=0}function ta(yr){cn+=yr?1:-1}}e.createScanner=We;var ye=String.prototype.codePointAt?function(we,ze){return we.codePointAt(ze)}:function(ze,Cn){var an=ze.length;if(!(Cn<0||Cn>=an)){var vn=ze.charCodeAt(Cn);if(vn>=55296&&vn<=56319&&an>Cn+1){var Nn=ze.charCodeAt(Cn+1);if(Nn>=56320&&Nn<=57343)return(vn-55296)*1024+Nn-56320+65536}return vn}};function Ie(we){return we>=65536?2:1}function je(we){if(e.Debug.assert(0<=we&&we<=1114111),we<=65535)return String.fromCharCode(we);var ze=Math.floor((we-65536)/1024)+55296,Cn=(we-65536)%1024+56320;return String.fromCharCode(ze,Cn)}var Sn=String.fromCodePoint?function(we){return String.fromCodePoint(we)}:je;function Me(we){return Sn(we)}e.utf16EncodeAsString=Me})(un||(un={}));var un;(function(e){function a(Ce){return e.pathIsRelative(Ce)||e.isRootedDiskPath(Ce)}e.isExternalModuleNameRelative=a;function d(Ce){return e.sortAndDeduplicate(Ce,e.compareDiagnostics)}e.sortAndDeduplicateDiagnostics=d;function g(Ce){switch(Ce.target){case 99:return"lib.esnext.full.d.ts";case 8:return"lib.es2021.full.d.ts";case 7:return"lib.es2020.full.d.ts";case 6:return"lib.es2019.full.d.ts";case 5:return"lib.es2018.full.d.ts";case 4:return"lib.es2017.full.d.ts";case 3:return"lib.es2016.full.d.ts";case 2:return"lib.es6.d.ts";default:return"lib.d.ts"}}e.getDefaultLibFileName=g;function t(Ce){return Ce.start+Ce.length}e.textSpanEnd=t;function p(Ce){return Ce.length===0}e.textSpanIsEmpty=p;function P(Ce,Xn){return Xn>=Ce.start&&Xn=Ce.pos&&Xn<=Ce.end}e.textRangeContainsPositionInclusive=J;function h(Ce,Xn){return Xn.start>=Ce.start&&t(Xn)<=t(Ce)}e.textSpanContainsTextSpan=h;function v(Ce,Xn){return I(Ce,Xn)!==void 0}e.textSpanOverlapsWith=v;function I(Ce,Xn){var it=D(Ce,Xn);return it&&it.length===0?void 0:it}e.textSpanOverlap=I;function X(Ce,Xn){return y(Ce.start,Ce.length,Xn.start,Xn.length)}e.textSpanIntersectsWithTextSpan=X;function se(Ce,Xn,it){return y(Ce.start,Ce.length,Xn,it)}e.textSpanIntersectsWith=se;function y(Ce,Xn,it,Wt){var oa=Ce+Xn,ci=it+Wt;return it<=oa&&ci>=Ce}e.decodedTextSpanIntersectsWith=y;function w(Ce,Xn){return Xn<=t(Ce)&&Xn>=Ce.start}e.textSpanIntersectsWithPosition=w;function D(Ce,Xn){var it=Math.max(Ce.start,Xn.start),Wt=Math.min(t(Ce),t(Xn));return it<=Wt?B(it,Wt):void 0}e.textSpanIntersection=D;function U(Ce,Xn){if(Ce<0)throw new Error("start < 0");if(Xn<0)throw new Error("length < 0");return{start:Ce,length:Xn}}e.createTextSpan=U;function B(Ce,Xn){return U(Ce,Xn-Ce)}e.createTextSpanFromBounds=B;function R(Ce){return U(Ce.span.start,Ce.newLength)}e.textChangeRangeNewSpan=R;function O(Ce){return p(Ce.span)&&Ce.newLength===0}e.textChangeRangeIsUnchanged=O;function k(Ce,Xn){if(Xn<0)throw new Error("newLength < 0");return{span:Ce,newLength:Xn}}e.createTextChangeRange=k,e.unchangedTextChangeRange=k(U(0,0),0);function M(Ce){if(Ce.length===0)return e.unchangedTextChangeRange;if(Ce.length===1)return Ce[0];for(var Xn=Ce[0],it=Xn.span.start,Wt=t(Xn.span),oa=it+Xn.newLength,ci=1;ci=2&&Ce.charCodeAt(0)===95&&Ce.charCodeAt(1)===95?"_"+Ce:Ce}e.escapeLeadingUnderscores=f;function N(Ce){var Xn=Ce;return Xn.length>=3&&Xn.charCodeAt(0)===95&&Xn.charCodeAt(1)===95&&Xn.charCodeAt(2)===95?Xn.substr(1):Xn}e.unescapeLeadingUnderscores=N;function V(Ce){return N(Ce.escapedText)}e.idText=V;function Z(Ce){return Ce.valueDeclaration&&ht(Ce.valueDeclaration)?V(Ce.valueDeclaration.name):N(Ce.escapedName)}e.symbolName=Z;function S(Ce){var Xn=Ce.parent.parent;if(!!Xn){if(Ze(Xn))return ce(Xn);switch(Xn.kind){case 235:if(Xn.declarationList&&Xn.declarationList.declarations[0])return ce(Xn.declarationList.declarations[0]);break;case 236:var it=Xn.expression;switch(it.kind===219&&it.operatorToken.kind===63&&(it=it.left),it.kind){case 204:return it.name;case 205:var Wt=it.argumentExpression;if(e.isIdentifier(Wt))return Wt}break;case 210:return ce(Xn.expression);case 248:{if(Ze(Xn.statement)||za(Xn.statement))return ce(Xn.statement);break}}}}function ce(Ce){var Xn=q(Ce);return Xn&&e.isIdentifier(Xn)?Xn:void 0}function ge(Ce,Xn){return!!(F(Ce)&&e.isIdentifier(Ce.name)&&V(Ce.name)===V(Xn)||e.isVariableStatement(Ce)&&e.some(Ce.declarationList.declarations,function(it){return ge(it,Xn)}))}e.nodeHasName=ge;function ae(Ce){return Ce.name||S(Ce)}e.getNameOfJSDocTypedef=ae;function F(Ce){return!!Ce.name}e.isNamedDeclaration=F;function re(Ce){switch(Ce.kind){case 79:return Ce;case 342:case 335:{var Xn=Ce.name;if(Xn.kind===159)return Xn.right;break}case 206:case 219:{var it=Ce;switch(e.getAssignmentDeclarationKind(it)){case 1:case 4:case 5:case 3:return e.getElementOrPropertyAccessArgumentExpressionOrName(it.left);case 7:case 8:case 9:return it.arguments[1];default:return}}case 340:return ae(Ce);case 334:return S(Ce);case 269:{var Wt=Ce.expression;return e.isIdentifier(Wt)?Wt:void 0}case 205:var oa=Ce;if(e.isBindableStaticElementAccessExpression(oa))return oa.argumentExpression}return Ce.name}e.getNonAssignedNameOfDeclaration=re;function q(Ce){if(Ce!==void 0)return re(Ce)||(e.isFunctionExpression(Ce)||e.isArrowFunction(Ce)||e.isClassExpression(Ce)?ue(Ce):void 0)}e.getNameOfDeclaration=q;function ue(Ce){if(Ce.parent){if(e.isPropertyAssignment(Ce.parent)||e.isBindingElement(Ce.parent))return Ce.parent.name;if(e.isBinaryExpression(Ce.parent)&&Ce===Ce.parent.right){if(e.isIdentifier(Ce.parent.left))return Ce.parent.left;if(e.isAccessExpression(Ce.parent.left))return e.getElementOrPropertyAccessArgumentExpressionOrName(Ce.parent.left)}else if(e.isVariableDeclaration(Ce.parent)&&e.isIdentifier(Ce.parent.name))return Ce.parent.name}else return}e.getAssignedName=ue;function ke(Ce,Xn){if(Ce.name)if(e.isIdentifier(Ce.name)){var it=Ce.name.escapedText;return Te(Ce.parent,Xn).filter(function(ci){return e.isJSDocParameterTag(ci)&&e.isIdentifier(ci.name)&&ci.name.escapedText===it})}else{var Wt=Ce.parent.parameters.indexOf(Ce);e.Debug.assert(Wt>-1,"Parameters should always be in their parents' parameter list");var oa=Te(Ce.parent,Xn).filter(e.isJSDocParameterTag);if(Wt=159}e.isNodeKind=Vn;function or(Ce){return Ce>=0&&Ce<=158}e.isTokenKind=or;function bn(Ce){return or(Ce.kind)}e.isToken=bn;function In(Ce){return Ce.hasOwnProperty("pos")&&Ce.hasOwnProperty("end")}e.isNodeArray=In;function pn(Ce){return 8<=Ce&&Ce<=14}e.isLiteralKind=pn;function Rn(Ce){return pn(Ce.kind)}e.isLiteralExpression=Rn;function hn(Ce){return 14<=Ce&&Ce<=17}e.isTemplateLiteralKind=hn;function rr(Ce){return hn(Ce.kind)}e.isTemplateLiteralToken=rr;function lr(Ce){var Xn=Ce.kind;return Xn===16||Xn===17}e.isTemplateMiddleOrTemplateTail=lr;function dr(Ce){return e.isImportSpecifier(Ce)||e.isExportSpecifier(Ce)}e.isImportOrExportSpecifier=dr;function gr(Ce){switch(Ce.kind){case 268:case 273:return Ce.parent.parent.isTypeOnly;case 266:return Ce.parent.isTypeOnly;case 265:case 263:return Ce.isTypeOnly;default:return!1}}e.isTypeOnlyImportOrExportDeclaration=gr;function zr(Ce){return Ce.kind===10||hn(Ce.kind)}e.isStringTextContainingNode=zr;function Tt(Ce){return e.isIdentifier(Ce)&&(Ce.autoGenerateFlags&7)>0}e.isGeneratedIdentifier=Tt;function ht(Ce){return(e.isPropertyDeclaration(Ce)||vr(Ce))&&e.isPrivateIdentifier(Ce.name)}e.isPrivateIdentifierClassElementDeclaration=ht;function Or(Ce){return e.isPropertyAccessExpression(Ce)&&e.isPrivateIdentifier(Ce.name)}e.isPrivateIdentifierPropertyAccessExpression=Or;function dt(Ce){switch(Ce){case 126:case 130:case 85:case 134:case 88:case 93:case 123:case 121:case 122:case 143:case 124:case 157:return!0}return!1}e.isModifierKind=dt;function qr(Ce){return!!(e.modifierToFlag(Ce)&16476)}e.isParameterPropertyModifier=qr;function Xt(Ce){return qr(Ce)||Ce===124||Ce===157}e.isClassMemberModifier=Xt;function fr(Ce){return dt(Ce.kind)}e.isModifier=fr;function Pt(Ce){var Xn=Ce.kind;return Xn===159||Xn===79}e.isEntityName=Pt;function fa(Ce){var Xn=Ce.kind;return Xn===79||Xn===80||Xn===10||Xn===8||Xn===160}e.isPropertyName=fa;function Xa(Ce){var Xn=Ce.kind;return Xn===79||Xn===199||Xn===200}e.isBindingName=Xa;function Ka(Ce){return!!Ce&&Kr(Ce.kind)}e.isFunctionLike=Ka;function Ei(Ce){return!!Ce&&(Kr(Ce.kind)||e.isClassStaticBlockDeclaration(Ce))}e.isFunctionLikeOrClassStaticBlockDeclaration=Ei;function ti(Ce){return Ce&&yr(Ce.kind)}e.isFunctionLikeDeclaration=ti;function ta(Ce){return Ce.kind===110||Ce.kind===95}e.isBooleanLiteral=ta;function yr(Ce){switch(Ce){case 254:case 167:case 169:case 170:case 171:case 211:case 212:return!0;default:return!1}}function Kr(Ce){switch(Ce){case 166:case 172:case 318:case 173:case 174:case 177:case 312:case 178:return!0;default:return yr(Ce)}}e.isFunctionLikeKind=Kr;function Vr(Ce){return e.isSourceFile(Ce)||e.isModuleBlock(Ce)||e.isBlock(Ce)&&Ka(Ce.parent)}e.isFunctionOrModuleBlock=Vr;function wt(Ce){var Xn=Ce.kind;return Xn===169||Xn===165||Xn===167||Xn===170||Xn===171||Xn===174||Xn===168||Xn===232}e.isClassElement=wt;function Bt(Ce){return Ce&&(Ce.kind===255||Ce.kind===224)}e.isClassLike=Bt;function Tr(Ce){return Ce&&(Ce.kind===170||Ce.kind===171)}e.isAccessor=Tr;function vr(Ce){switch(Ce.kind){case 167:case 170:case 171:return!0;default:return!1}}e.isMethodOrAccessor=vr;function Br(Ce){var Xn=Ce.kind;return Xn===173||Xn===172||Xn===164||Xn===166||Xn===174}e.isTypeElement=Br;function Wr(Ce){return Br(Ce)||wt(Ce)}e.isClassOrTypeElement=Wr;function tt(Ce){var Xn=Ce.kind;return Xn===291||Xn===292||Xn===293||Xn===167||Xn===170||Xn===171}e.isObjectLiteralElementLike=tt;function er(Ce){return e.isTypeNodeKind(Ce.kind)}e.isTypeNode=er;function Zt(Ce){switch(Ce.kind){case 177:case 178:return!0}return!1}e.isFunctionOrConstructorTypeNode=Zt;function Ra(Ce){if(Ce){var Xn=Ce.kind;return Xn===200||Xn===199}return!1}e.isBindingPattern=Ra;function Va(Ce){var Xn=Ce.kind;return Xn===202||Xn===203}e.isAssignmentPattern=Va;function bi(Ce){var Xn=Ce.kind;return Xn===201||Xn===225}e.isArrayBindingElement=bi;function Fa(Ce){switch(Ce.kind){case 252:case 162:case 201:return!0}return!1}e.isDeclarationBindingElement=Fa;function ei(Ce){return Di(Ce)||ni(Ce)}e.isBindingOrAssignmentPattern=ei;function Di(Ce){switch(Ce.kind){case 199:case 203:return!0}return!1}e.isObjectBindingOrAssignmentPattern=Di;function Vi(Ce){switch(Ce.kind){case 201:case 291:case 292:case 293:return!0}return!1}e.isObjectBindingOrAssignmentElement=Vi;function ni(Ce){switch(Ce.kind){case 200:case 202:return!0}return!1}e.isArrayBindingOrAssignmentPattern=ni;function Ti(Ce){var Xn=Ce.kind;return Xn===204||Xn===159||Xn===198}e.isPropertyAccessOrQualifiedNameOrImportTypeNode=Ti;function Ci(Ce){var Xn=Ce.kind;return Xn===204||Xn===159}e.isPropertyAccessOrQualifiedName=Ci;function Zi(Ce){switch(Ce.kind){case 278:case 277:case 206:case 207:case 208:case 163:return!0;default:return!1}}e.isCallLikeExpression=Zi;function Ki(Ce){return Ce.kind===206||Ce.kind===207}e.isCallOrNewExpression=Ki;function ho(Ce){var Xn=Ce.kind;return Xn===221||Xn===14}e.isTemplateLiteral=ho;function Ri(Ce){return zi(kn(Ce).kind)}e.isLeftHandSideExpression=Ri;function zi(Ce){switch(Ce){case 204:case 205:case 207:case 206:case 276:case 277:case 280:case 208:case 202:case 210:case 203:case 224:case 211:case 79:case 13:case 8:case 9:case 10:case 14:case 221:case 95:case 104:case 108:case 110:case 106:case 228:case 229:case 100:return!0;default:return!1}}function Qo(Ce){return Pa(kn(Ce).kind)}e.isUnaryExpression=Qo;function Pa(Ce){switch(Ce){case 217:case 218:case 213:case 214:case 215:case 216:case 209:return!0;default:return zi(Ce)}}function co(Ce){switch(Ce.kind){case 218:return!0;case 217:return Ce.operator===45||Ce.operator===46;default:return!1}}e.isUnaryExpressionWithWrite=co;function za(Ce){return fi(kn(Ce).kind)}e.isExpression=za;function fi(Ce){switch(Ce){case 220:case 222:case 212:case 219:case 223:case 227:case 225:case 346:case 345:return!0;default:return Pa(Ce)}}function Wi(Ce){var Xn=Ce.kind;return Xn===209||Xn===227}e.isAssertionExpression=Wi;function _o(Ce){return e.isNotEmittedStatement(Ce)||e.isPartiallyEmittedExpression(Ce)}e.isNotEmittedOrPartiallyEmittedNode=_o;function No(Ce,Xn){switch(Ce.kind){case 240:case 241:case 242:case 238:case 239:return!0;case 248:return Xn&&No(Ce.statement,Xn)}return!1}e.isIterationStatement=No;function Mo(Ce){return e.isExportAssignment(Ce)||e.isExportDeclaration(Ce)}e.isScopeMarker=Mo;function yo(Ce){return e.some(Ce,Mo)}e.hasScopeMarker=yo;function qo(Ce){return!e.isAnyImportOrReExport(Ce)&&!e.isExportAssignment(Ce)&&!e.hasSyntacticModifier(Ce,1)&&!e.isAmbientModule(Ce)}e.needsScopeMarker=qo;function So(Ce){return e.isAnyImportOrReExport(Ce)||e.isExportAssignment(Ce)||e.hasSyntacticModifier(Ce,1)}e.isExternalModuleIndicator=So;function Zo(Ce){return Ce.kind===241||Ce.kind===242}e.isForInOrOfStatement=Zo;function fn(Ce){return e.isBlock(Ce)||za(Ce)}e.isConciseBody=fn;function cr(Ce){return e.isBlock(Ce)}e.isFunctionBody=cr;function Hr(Ce){return e.isVariableDeclarationList(Ce)||za(Ce)}e.isForInitializer=Hr;function zt(Ce){var Xn=Ce.kind;return Xn===260||Xn===259||Xn===79}e.isModuleBody=zt;function Oe(Ce){var Xn=Ce.kind;return Xn===260||Xn===259}e.isNamespaceBody=Oe;function Zn(Ce){var Xn=Ce.kind;return Xn===79||Xn===259}e.isJSDocNamespaceBody=Zn;function Pr(Ce){var Xn=Ce.kind;return Xn===267||Xn===266}e.isNamedImportBindings=Pr;function te(Ce){return Ce.kind===259||Ce.kind===258}e.isModuleOrEnumDeclaration=te;function Q(Ce){return Ce===212||Ce===201||Ce===255||Ce===224||Ce===168||Ce===169||Ce===258||Ce===294||Ce===273||Ce===254||Ce===211||Ce===170||Ce===265||Ce===263||Ce===268||Ce===256||Ce===283||Ce===167||Ce===166||Ce===259||Ce===262||Ce===266||Ce===272||Ce===162||Ce===291||Ce===165||Ce===164||Ce===171||Ce===292||Ce===257||Ce===161||Ce===252||Ce===340||Ce===333||Ce===342}function Ae(Ce){return Ce===254||Ce===274||Ce===255||Ce===256||Ce===257||Ce===258||Ce===259||Ce===264||Ce===263||Ce===270||Ce===269||Ce===262}function Fe(Ce){return Ce===244||Ce===243||Ce===251||Ce===238||Ce===236||Ce===234||Ce===241||Ce===242||Ce===240||Ce===237||Ce===248||Ce===245||Ce===247||Ce===249||Ce===250||Ce===235||Ce===239||Ce===246||Ce===344||Ce===348||Ce===347}function Ze(Ce){return Ce.kind===161?Ce.parent&&Ce.parent.kind!==339||e.isInJSFile(Ce):Q(Ce.kind)}e.isDeclaration=Ze;function Gn(Ce){return Ae(Ce.kind)}e.isDeclarationStatement=Gn;function Yn(Ce){return Fe(Ce.kind)}e.isStatementButNotDeclaration=Yn;function _r(Ce){var Xn=Ce.kind;return Fe(Xn)||Ae(Xn)||kr(Ce)}e.isStatement=_r;function kr(Ce){return Ce.kind!==233||Ce.parent!==void 0&&(Ce.parent.kind===250||Ce.parent.kind===290)?!1:!e.isFunctionBlock(Ce)}function Et(Ce){var Xn=Ce.kind;return Fe(Xn)||Ae(Xn)||Xn===233}e.isStatementOrBlock=Et;function Vt(Ce){var Xn=Ce.kind;return Xn===275||Xn===159||Xn===79}e.isModuleReference=Vt;function Ea(Ce){var Xn=Ce.kind;return Xn===108||Xn===79||Xn===204}e.isJsxTagNameExpression=Ea;function da(Ce){var Xn=Ce.kind;return Xn===276||Xn===286||Xn===277||Xn===11||Xn===280}e.isJsxChild=da;function ai(Ce){var Xn=Ce.kind;return Xn===283||Xn===285}e.isJsxAttributeLike=ai;function ji(Ce){var Xn=Ce.kind;return Xn===10||Xn===286}e.isStringLiteralOrJsxExpression=ji;function wi(Ce){var Xn=Ce.kind;return Xn===278||Xn===277}e.isJsxOpeningLikeElement=wi;function Gi(Ce){var Xn=Ce.kind;return Xn===287||Xn===288}e.isCaseOrDefaultClause=Gi;function hs(Ce){return Ce.kind>=304&&Ce.kind<=342}e.isJSDocNode=hs;function as(Ce){return Ce.kind===315||Ce.kind===314||Ce.kind===316||mr(Ce)||cs(Ce)||e.isJSDocTypeLiteral(Ce)||e.isJSDocSignature(Ce)}e.isJSDocCommentContainingNode=as;function cs(Ce){return Ce.kind>=322&&Ce.kind<=342}e.isJSDocTag=cs;function ks(Ce){return Ce.kind===171}e.isSetAccessor=ks;function pl(Ce){return Ce.kind===170}e.isGetAccessor=pl;function ml(Ce){var Xn=Ce.jsDoc;return!!Xn&&Xn.length>0}e.hasJSDocNodes=ml;function yl(Ce){return!!Ce.type}e.hasType=yl;function Ss(Ce){return!!Ce.initializer}e.hasInitializer=Ss;function Es(Ce){switch(Ce.kind){case 252:case 162:case 201:case 164:case 165:case 291:case 294:return!0;default:return!1}}e.hasOnlyExpressionInitializer=Es;function sl(Ce){return Ce.kind===283||Ce.kind===285||tt(Ce)}e.isObjectLiteralElement=sl;function El(Ce){return Ce.kind===176||Ce.kind===226}e.isTypeReferenceType=El;var bs=1073741823;function pe(Ce){for(var Xn=bs,it=0,Wt=Ce;it=0),e.getLineStarts($)[l]}e.getStartPositionOfLine=x;function C(l){var $=b(l),rn=e.getLineAndCharacterOfPosition($,l.pos);return $.fileName+"("+(rn.line+1)+","+(rn.character+1)+")"}e.nodePosToString=C;function m(l,$){e.Debug.assert(l>=0);var rn=e.getLineStarts($),wn=l,Lr=$.text;if(wn+1===rn.length)return Lr.length-1;var At=rn[wn],qt=rn[wn+1]-1;for(e.Debug.assert(e.isLineBreak(Lr.charCodeAt(qt)));At<=qt&&e.isLineBreak(Lr.charCodeAt(qt));)qt--;return qt}e.getEndLinePosition=m;function c(l,$,rn){return!(rn&&rn($))&&!l.identifiers.has($)}e.isFileLevelUniqueName=c;function f(l){return l===void 0?!0:l.pos===l.end&&l.pos>=0&&l.kind!==1}e.nodeIsMissing=f;function N(l){return!f(l)}e.nodeIsPresent=N;function V(l,$,rn){if($===void 0||$.length===0)return l;for(var wn=0;wn0?ke(l._children[0],$,rn):e.skipTrivia(($||b(l)).text,l.pos,!1,!1,Fe(l))}e.getTokenPosOfNode=ke;function de(l,$){return f(l)||!l.decorators?ke(l,$):e.skipTrivia(($||b(l)).text,l.decorators.end)}e.getNonDecoratorTokenPosOfNode=de;function xe(l,$,rn){return rn===void 0&&(rn=!1),Ne(l.text,$,rn)}e.getSourceTextOfNodeFromSourceFile=xe;function Le(l){return!!e.findAncestor(l,e.isJSDocTypeExpression)}function He(l){return!!(e.isExportDeclaration(l)&&l.exportClause&&e.isNamespaceExport(l.exportClause)&&l.exportClause.name.escapedText==="default")}e.isExportNamespaceAsDefaultDeclaration=He;function Ne(l,$,rn){if(rn===void 0&&(rn=!1),f($))return"";var wn=l.substring(rn?$.pos:e.skipTrivia(l,$.pos),$.end);return Le($)&&(wn=wn.split(/\r\n|\n|\r/).map(function(Lr){return e.trimStringStart(Lr.replace(/^\s*\*/,""))}).join(` -`)),wn}e.getTextOfNodeFromSourceText=Ne;function De(l,$){return $===void 0&&($=!1),xe(b(l),l,$)}e.getTextOfNode=De;function Ee(l){return l.pos}function We(l,$){return e.binarySearch(l,$,Ee,e.compareValues)}e.indexOfNode=We;function ye(l){var $=l.emitNode;return $&&$.flags||0}e.getEmitFlags=ye;function Ie(){return{es2015:{Array:["find","findIndex","fill","copyWithin","entries","keys","values"],RegExp:["flags","sticky","unicode"],Reflect:["apply","construct","defineProperty","deleteProperty","get"," getOwnPropertyDescriptor","getPrototypeOf","has","isExtensible","ownKeys","preventExtensions","set","setPrototypeOf"],ArrayConstructor:["from","of"],ObjectConstructor:["assign","getOwnPropertySymbols","keys","is","setPrototypeOf"],NumberConstructor:["isFinite","isInteger","isNaN","isSafeInteger","parseFloat","parseInt"],Math:["clz32","imul","sign","log10","log2","log1p","expm1","cosh","sinh","tanh","acosh","asinh","atanh","hypot","trunc","fround","cbrt"],Map:["entries","keys","values"],Set:["entries","keys","values"],Promise:e.emptyArray,PromiseConstructor:["all","race","reject","resolve"],Symbol:["for","keyFor"],WeakMap:["entries","keys","values"],WeakSet:["entries","keys","values"],Iterator:e.emptyArray,AsyncIterator:e.emptyArray,String:["codePointAt","includes","endsWith","normalize","repeat","startsWith","anchor","big","blink","bold","fixed","fontcolor","fontsize","italics","link","small","strike","sub","sup"],StringConstructor:["fromCodePoint","raw"]},es2016:{Array:["includes"]},es2017:{Atomics:e.emptyArray,SharedArrayBuffer:e.emptyArray,String:["padStart","padEnd"],ObjectConstructor:["values","entries","getOwnPropertyDescriptors"],DateTimeFormat:["formatToParts"]},es2018:{Promise:["finally"],RegExpMatchArray:["groups"],RegExpExecArray:["groups"],RegExp:["dotAll"],Intl:["PluralRules"],AsyncIterable:e.emptyArray,AsyncIterableIterator:e.emptyArray,AsyncGenerator:e.emptyArray,AsyncGeneratorFunction:e.emptyArray},es2019:{Array:["flat","flatMap"],ObjectConstructor:["fromEntries"],String:["trimStart","trimEnd","trimLeft","trimRight"],Symbol:["description"]},es2020:{BigInt:e.emptyArray,BigInt64Array:e.emptyArray,BigUint64Array:e.emptyArray,PromiseConstructor:["allSettled"],SymbolConstructor:["matchAll"],String:["matchAll"],DataView:["setBigInt64","setBigUint64","getBigInt64","getBigUint64"],RelativeTimeFormat:["format","formatToParts","resolvedOptions"]},es2021:{PromiseConstructor:["any"],String:["replaceAll"]},esnext:{NumberFormat:["formatToParts"]}}}e.getScriptTargetFeatures=Ie,function(l){l[l.None=0]="None",l[l.NeverAsciiEscape=1]="NeverAsciiEscape",l[l.JsxAttributeEscape=2]="JsxAttributeEscape",l[l.TerminateUnterminatedLiterals=4]="TerminateUnterminatedLiterals",l[l.AllowNumericSeparator=8]="AllowNumericSeparator"}(e.GetLiteralTextFlags||(e.GetLiteralTextFlags={}));function je(l,$,rn){var wn;if(Sn(l,rn))return xe($,l);switch(l.kind){case 10:{var Lr=rn&2?Zd:rn&1||ye(l)&16777216?lu:cu;return l.singleQuote?"'"+Lr(l.text,39)+"'":'"'+Lr(l.text,34)+'"'}case 14:case 15:case 16:case 17:{var Lr=rn&1||ye(l)&16777216?lu:cu,At=(wn=l.rawText)!==null&&wn!==void 0?wn:Rp(Lr(l.text,96));switch(l.kind){case 14:return"`"+At+"`";case 15:return"`"+At+"${";case 16:return"}"+At+"${";case 17:return"}"+At+"`"}break}case 8:case 9:return l.text;case 13:return rn&4&&l.isUnterminated?l.text+(l.text.charCodeAt(l.text.length-1)===92?" /":"/"):l.text}return e.Debug.fail("Literal kind '"+l.kind+"' not accounted for.")}e.getLiteralText=je;function Sn(l,$){return Uf(l)||!l.parent||$&4&&l.isUnterminated?!1:e.isNumericLiteral(l)&&l.numericLiteralFlags&512?!!($&8):!e.isBigIntLiteral(l)}function Me(l){return e.isString(l)?'"'+cu(l)+'"':""+l}e.getTextOfConstantValue=Me;function we(l){return e.getBaseFileName(l).replace(/^(\d)/,"_$1").replace(/\W/g,"_")}e.makeIdentifierFromModuleName=we;function ze(l){return(e.getCombinedNodeFlags(l)&3)!=0||Cn(l)}e.isBlockOrCatchScoped=ze;function Cn(l){var $=Bf(l);return $.kind===252&&$.parent.kind===290}e.isCatchClauseVariableDeclarationOrBindingElement=Cn;function an(l){return e.isModuleDeclaration(l)&&(l.name.kind===10||Tn(l))}e.isAmbientModule=an;function vn(l){return e.isModuleDeclaration(l)&&l.name.kind===10}e.isModuleWithStringLiteralName=vn;function Nn(l){return e.isModuleDeclaration(l)&&e.isStringLiteral(l.name)}e.isNonGlobalAmbientModule=Nn;function Kn(l){return e.isModuleDeclaration(l)||e.isIdentifier(l)}e.isEffectiveModuleDeclaration=Kn;function $e(l){return ie(l.valueDeclaration)}e.isShorthandAmbientModuleSymbol=$e;function ie(l){return!!l&&l.kind===259&&!l.body}function dn(l){return l.kind===300||l.kind===259||e.isFunctionLikeOrClassStaticBlockDeclaration(l)}e.isBlockScopedContainerTopLevel=dn;function Tn(l){return!!(l.flags&1024)}e.isGlobalScopeAugmentation=Tn;function qn(l){return an(l)&&oe(l)}e.isExternalModuleAugmentation=qn;function oe(l){switch(l.parent.kind){case 300:return e.isExternalModule(l.parent);case 260:return an(l.parent.parent)&&e.isSourceFile(l.parent.parent.parent)&&!e.isExternalModule(l.parent.parent.parent)}return!1}e.isModuleAugmentationExternal=oe;function Be(l){var $;return($=l.declarations)===null||$===void 0?void 0:$.find(function(rn){return!qn(rn)&&!(e.isModuleDeclaration(rn)&&Tn(rn))})}e.getNonAugmentationDeclaration=Be;function Te(l,$){return e.isExternalModule(l)||$.isolatedModules||nd($)===e.ModuleKind.CommonJS&&!!l.commonJsModuleIndicator}e.isEffectiveExternalModule=Te;function qe(l,$){switch(l.scriptKind){case 1:case 3:case 2:case 4:break;default:return!1}return l.isDeclarationFile?!1:cp($,"alwaysStrict")||e.startsWithUseStrict(l.statements)?!0:e.isExternalModule(l)||$.isolatedModules?nd($)>=e.ModuleKind.ES2015?!0:!$.noImplicitUseStrict:!1}e.isEffectiveStrictModeSourceFile=qe;function cn(l,$){switch(l.kind){case 300:case 261:case 290:case 259:case 240:case 241:case 242:case 169:case 167:case 170:case 171:case 254:case 211:case 212:case 165:case 168:return!0;case 233:return!e.isFunctionLikeOrClassStaticBlockDeclaration($)}return!1}e.isBlockScope=cn;function be(l){switch(l.kind){case 333:case 340:case 318:return!0;default:return e.assertType(l),Xe(l)}}e.isDeclarationWithTypeParameters=be;function Xe(l){switch(l.kind){case 172:case 173:case 166:case 174:case 177:case 178:case 312:case 255:case 224:case 256:case 257:case 339:case 254:case 167:case 169:case 170:case 171:case 211:case 212:return!0;default:return e.assertType(l),!1}}e.isDeclarationWithTypeParameterChildren=Xe;function En(l){switch(l.kind){case 264:case 263:return!0;default:return!1}}e.isAnyImportSyntax=En;function Pe(l){switch(l.kind){case 264:case 263:case 235:case 255:case 254:case 259:case 257:case 256:case 258:return!0;default:return!1}}e.isLateVisibilityPaintedStatement=Pe;function he(l){return ln(l)||e.isModuleDeclaration(l)||e.isImportTypeNode(l)||hn(l)}e.hasPossibleExternalModuleReference=he;function ln(l){return En(l)||e.isExportDeclaration(l)}e.isAnyImportOrReExport=ln;function sn(l){return e.findAncestor(l.parent,function($){return cn($,$.parent)})}e.getEnclosingBlockScopeContainer=sn;function An(l,$){for(var rn=sn(l);rn;)$(rn),rn=sn(rn)}e.forEachEnclosingBlockScopeContainer=An;function Un(l){return!l||B(l)===0?"(Missing)":De(l)}e.declarationNameToString=Un;function pr(l){return l.declaration?Un(l.declaration.parameters[0].name):void 0}e.getNameFromIndexInfo=pr;function Cr(l){return l.kind===160&&!xc(l.expression)}e.isComputedNonLiteralName=Cr;function xr(l){switch(l.kind){case 79:case 80:return l.escapedText;case 10:case 8:case 14:return e.escapeLeadingUnderscores(l.text);case 160:return xc(l.expression)?e.escapeLeadingUnderscores(l.expression.text):e.Debug.fail("Text of property name cannot be read from non-literal-valued ComputedPropertyNames");default:return e.Debug.assertNever(l)}}e.getTextOfPropertyName=xr;function Gr(l){switch(l.kind){case 108:return"this";case 80:case 79:return B(l)===0?e.idText(l):De(l);case 159:return Gr(l.left)+"."+Gr(l.right);case 204:return e.isIdentifier(l.name)||e.isPrivateIdentifier(l.name)?Gr(l.expression)+"."+Gr(l.name):e.Debug.assertNever(l.name);case 306:return Gr(l.left)+Gr(l.right);default:return e.Debug.assertNever(l)}}e.entityNameToString=Gr;function Ve(l,$,rn,wn,Lr,At){var qt=b(l);return Wn(qt,l,$,rn,wn,Lr,At)}e.createDiagnosticForNode=Ve;function Ln(l,$,rn,wn,Lr,At,qt){var pa=e.skipTrivia(l.text,$.pos);return Id(l,pa,$.end-pa,rn,wn,Lr,At,qt)}e.createDiagnosticForNodeArray=Ln;function Wn(l,$,rn,wn,Lr,At,qt){var pa=tn(l,$);return Id(l,pa.start,pa.length,rn,wn,Lr,At,qt)}e.createDiagnosticForNodeInSourceFile=Wn;function Je(l,$,rn){var wn=b(l),Lr=tn(wn,l);return Qn(wn,Lr.start,Lr.length,$,rn)}e.createDiagnosticForNodeFromMessageChain=Je;function kn(l,$,rn){e.Debug.assertGreaterThanOrEqual($,0),e.Debug.assertGreaterThanOrEqual(rn,0),l&&(e.Debug.assertLessThanOrEqual($,l.text.length),e.Debug.assertLessThanOrEqual($+rn,l.text.length))}function Qn(l,$,rn,wn,Lr){return kn(l,$,rn),{file:l,start:$,length:rn,code:wn.code,category:wn.category,messageText:wn.next?wn:wn.messageText,relatedInformation:Lr}}e.createFileDiagnosticFromMessageChain=Qn;function jn(l,$,rn){return{file:l,start:0,length:0,code:$.code,category:$.category,messageText:$.next?$:$.messageText,relatedInformation:rn}}e.createDiagnosticForFileFromMessageChain=jn;function on(l,$,rn){return{file:l,start:$.pos,length:$.end-$.pos,code:rn.code,category:rn.category,messageText:rn.message}}e.createDiagnosticForRange=on;function fe(l,$){var rn=e.createScanner(l.languageVersion,!0,l.languageVariant,l.text,void 0,$);rn.scan();var wn=rn.getTokenPos();return e.createTextSpanFromBounds(wn,rn.getTextPos())}e.getSpanOfTokenAtPosition=fe;function Ge(l,$){var rn=e.skipTrivia(l.text,$.pos);if($.body&&$.body.kind===233){var wn=e.getLineAndCharacterOfPosition(l,$.body.pos).line,Lr=e.getLineAndCharacterOfPosition(l,$.body.end).line;if(wn0?$.statements[0].pos:$.end;return e.createTextSpanFromBounds(Lr,At)}if(rn===void 0)return fe(l,$.pos);e.Debug.assert(!e.isJSDoc(rn));var qt=f(rn),pa=qt||e.isJsxText($)?rn.pos:e.skipTrivia(l.text,rn.pos);return qt?(e.Debug.assert(pa===rn.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),e.Debug.assert(pa===rn.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")):(e.Debug.assert(pa>=rn.pos,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809"),e.Debug.assert(pa<=rn.end,"This failure could trigger https://github.com/Microsoft/TypeScript/issues/20809")),e.createTextSpanFromBounds(pa,rn.end)}e.getErrorSpanForNode=tn;function le(l){return(l.externalModuleIndicator||l.commonJsModuleIndicator)!==void 0}e.isExternalOrCommonJsModule=le;function Vn(l){return l.scriptKind===6}e.isJsonSourceFile=Vn;function or(l){return!!(e.getCombinedModifierFlags(l)&2048)}e.isEnumConst=or;function bn(l){return!!(e.getCombinedModifierFlags(l)&64&&!e.isParameterPropertyDeclaration(l,l.parent))}e.isDeclarationReadonly=bn;function In(l){return!!(e.getCombinedNodeFlags(l)&2)}e.isVarConst=In;function pn(l){return!!(e.getCombinedNodeFlags(l)&1)}e.isLet=pn;function Rn(l){return l.kind===206&&l.expression.kind===106}e.isSuperCall=Rn;function hn(l){return l.kind===206&&l.expression.kind===100}e.isImportCall=hn;function rr(l){return e.isMetaProperty(l)&&l.keywordToken===100&&l.name.escapedText==="meta"}e.isImportMeta=rr;function lr(l){return e.isImportTypeNode(l)&&e.isLiteralTypeNode(l.argument)&&e.isStringLiteral(l.argument.literal)}e.isLiteralImportTypeNode=lr;function dr(l){return l.kind===236&&l.expression.kind===10}e.isPrologueDirective=dr;function gr(l){return!!(ye(l)&1048576)}e.isCustomPrologue=gr;function zr(l){return gr(l)&&e.isFunctionDeclaration(l)}e.isHoistedFunction=zr;function Tt(l){return e.isIdentifier(l.name)&&!l.initializer}function ht(l){return gr(l)&&e.isVariableStatement(l)&&e.every(l.declarationList.declarations,Tt)}e.isHoistedVariableStatement=ht;function Or(l,$){return l.kind!==11?e.getLeadingCommentRanges($.text,l.pos):void 0}e.getLeadingCommentRangesOfNode=Or;function dt(l,$){var rn=l.kind===162||l.kind===161||l.kind===211||l.kind===212||l.kind===210||l.kind===252?e.concatenate(e.getTrailingCommentRanges($,l.pos),e.getLeadingCommentRanges($,l.pos)):e.getLeadingCommentRanges($,l.pos);return e.filter(rn,function(wn){return $.charCodeAt(wn.pos+1)===42&&$.charCodeAt(wn.pos+2)===42&&$.charCodeAt(wn.pos+3)!==47})}e.getJSDocCommentRanges=dt,e.fullTripleSlashReferencePathRegEx=/^(\/\/\/\s*/;var qr=/^(\/\/\/\s*/;e.fullTripleSlashAMDReferencePathRegEx=/^(\/\/\/\s*/;var Xt=/^(\/\/\/\s*/;function fr(l){if(175<=l.kind&&l.kind<=198)return!0;switch(l.kind){case 129:case 153:case 145:case 156:case 148:case 132:case 149:case 146:case 151:case 142:return!0;case 114:return l.parent.kind!==215;case 226:return!pu(l);case 161:return l.parent.kind===193||l.parent.kind===188;case 79:(l.parent.kind===159&&l.parent.right===l||l.parent.kind===204&&l.parent.name===l)&&(l=l.parent),e.Debug.assert(l.kind===79||l.kind===159||l.kind===204,"'node' was expected to be a qualified name, identifier or property access in 'isPartOfTypeNode'.");case 159:case 204:case 108:{var $=l.parent;if($.kind===179)return!1;if($.kind===198)return!$.isTypeOf;if(175<=$.kind&&$.kind<=198)return!0;switch($.kind){case 226:return!pu($);case 161:return l===$.constraint;case 339:return l===$.constraint;case 165:case 164:case 162:case 252:return l===$.type;case 254:case 211:case 212:case 169:case 167:case 166:case 170:case 171:return l===$.type;case 172:case 173:case 174:return l===$.type;case 209:return l===$.type;case 206:case 207:return e.contains($.typeArguments,l);case 208:return!1}}}return!1}e.isPartOfTypeNode=fr;function Pt(l,$){for(;l;){if(l.kind===$)return!0;l=l.parent}return!1}e.isChildOfNodeWithKind=Pt;function fa(l,$){return rn(l);function rn(wn){switch(wn.kind){case 245:return $(wn);case 261:case 233:case 237:case 238:case 239:case 240:case 241:case 242:case 246:case 247:case 287:case 288:case 248:case 250:case 290:return e.forEachChild(wn,rn)}}}e.forEachReturnStatement=fa;function Xa(l,$){return rn(l);function rn(wn){switch(wn.kind){case 222:$(wn);var Lr=wn.expression;Lr&&rn(Lr);return;case 258:case 256:case 259:case 257:return;default:if(e.isFunctionLike(wn)){if(wn.name&&wn.name.kind===160){rn(wn.name.expression);return}}else fr(wn)||e.forEachChild(wn,rn)}}}e.forEachYieldExpression=Xa;function Ka(l){return l&&l.kind===181?l.elementType:l&&l.kind===176?e.singleOrUndefined(l.typeArguments):void 0}e.getRestParameterElementType=Ka;function Ei(l){switch(l.kind){case 256:case 255:case 224:case 180:return l.members;case 203:return l.properties}}e.getMembersOfDeclaration=Ei;function ti(l){if(l)switch(l.kind){case 201:case 294:case 162:case 291:case 165:case 164:case 292:case 252:return!0}return!1}e.isVariableLike=ti;function ta(l){return ti(l)||e.isAccessor(l)}e.isVariableLikeOrAccessor=ta;function yr(l){return l.parent.kind===253&&l.parent.parent.kind===235}e.isVariableDeclarationInVariableStatement=yr;function Kr(l){return e.isVariableDeclaration(l)?In(l)&&e.isIdentifier(l.name)&&yr(l):e.isPropertyDeclaration(l)?Eo(l)&&As(l):e.isPropertySignature(l)&&Eo(l)}e.isValidESSymbolDeclaration=Kr;function Vr(l){switch(l.kind){case 167:case 166:case 169:case 170:case 171:case 254:case 211:return!0}return!1}e.introducesArgumentsExoticObject=Vr;function wt(l,$){for(;;){if($&&$(l),l.statement.kind!==248)return l.statement;l=l.statement}}e.unwrapInnermostStatementOfLabel=wt;function Bt(l){return l&&l.kind===233&&e.isFunctionLike(l.parent)}e.isFunctionBlock=Bt;function Tr(l){return l&&l.kind===167&&l.parent.kind===203}e.isObjectLiteralMethod=Tr;function vr(l){return l.kind===167&&(l.parent.kind===203||l.parent.kind===224)}e.isObjectLiteralOrClassExpressionMethod=vr;function Br(l){return l&&l.kind===1}e.isIdentifierTypePredicate=Br;function Wr(l){return l&&l.kind===0}e.isThisTypePredicate=Wr;function tt(l,$,rn){return l.properties.filter(function(wn){if(wn.kind===291){var Lr=xr(wn.name);return $===Lr||!!rn&&rn===Lr}return!1})}e.getPropertyAssignment=tt;function er(l,$,rn){return e.firstDefined(tt(l,$),function(wn){return e.isArrayLiteralExpression(wn.initializer)?e.find(wn.initializer.elements,function(Lr){return e.isStringLiteral(Lr)&&Lr.text===rn}):void 0})}e.getPropertyArrayElementValue=er;function Zt(l){if(l&&l.statements.length){var $=l.statements[0].expression;return e.tryCast($,e.isObjectLiteralExpression)}}e.getTsConfigObjectLiteralExpression=Zt;function Ra(l,$,rn){return e.firstDefined(Va(l,$),function(wn){return e.isArrayLiteralExpression(wn.initializer)?e.find(wn.initializer.elements,function(Lr){return e.isStringLiteral(Lr)&&Lr.text===rn}):void 0})}e.getTsConfigPropArrayElementValue=Ra;function Va(l,$){var rn=Zt(l);return rn?tt(rn,$):e.emptyArray}e.getTsConfigPropArray=Va;function bi(l){return e.findAncestor(l.parent,e.isFunctionLike)}e.getContainingFunction=bi;function Fa(l){return e.findAncestor(l.parent,e.isFunctionLikeDeclaration)}e.getContainingFunctionDeclaration=Fa;function ei(l){return e.findAncestor(l.parent,e.isClassLike)}e.getContainingClass=ei;function Di(l){return e.findAncestor(l.parent,function($){return e.isClassLike($)||e.isFunctionLike($)?"quit":e.isClassStaticBlockDeclaration($)})}e.getContainingClassStaticBlock=Di;function Vi(l){return e.findAncestor(l.parent,e.isFunctionLikeOrClassStaticBlockDeclaration)}e.getContainingFunctionOrClassStaticBlock=Vi;function ni(l,$){for(e.Debug.assert(l.kind!==300);;){if(l=l.parent,!l)return e.Debug.fail();switch(l.kind){case 160:if(e.isClassLike(l.parent.parent))return l;l=l.parent;break;case 163:l.parent.kind===162&&e.isClassElement(l.parent.parent)?l=l.parent.parent:e.isClassElement(l.parent)&&(l=l.parent);break;case 212:if(!$)continue;case 254:case 211:case 259:case 168:case 165:case 164:case 167:case 166:case 169:case 170:case 171:case 172:case 173:case 174:case 258:case 300:return l}}}e.getThisContainer=ni;function Ti(l){e.isIdentifier(l)&&(e.isClassDeclaration(l.parent)||e.isFunctionDeclaration(l.parent))&&l.parent.name===l&&(l=l.parent);var $=ni(l,!0);return e.isSourceFile($)}e.isInTopLevelContext=Ti;function Ci(l){var $=ni(l,!1);if($)switch($.kind){case 169:case 254:case 211:return $}}e.getNewTargetContainer=Ci;function Zi(l,$){for(;;){if(l=l.parent,!l)return l;switch(l.kind){case 160:l=l.parent;break;case 254:case 211:case 212:if(!$)continue;case 165:case 164:case 167:case 166:case 169:case 170:case 171:case 168:return l;case 163:l.parent.kind===162&&e.isClassElement(l.parent.parent)?l=l.parent.parent:e.isClassElement(l.parent)&&(l=l.parent);break}}}e.getSuperContainer=Zi;function Ki(l){if(l.kind===211||l.kind===212){for(var $=l,rn=l.parent;rn.kind===210;)$=rn,rn=rn.parent;if(rn.kind===206&&rn.expression===$)return rn}}e.getImmediatelyInvokedFunctionExpression=Ki;function ho(l){return l.kind===106||Ri(l)}e.isSuperOrSuperProperty=ho;function Ri(l){var $=l.kind;return($===204||$===205)&&l.expression.kind===106}e.isSuperProperty=Ri;function zi(l){var $=l.kind;return($===204||$===205)&&l.expression.kind===108}e.isThisProperty=zi;function Qo(l){var $;return!!l&&e.isVariableDeclaration(l)&&(($=l.initializer)===null||$===void 0?void 0:$.kind)===108}e.isThisInitializedDeclaration=Qo;function Pa(l){return!!l&&(e.isShorthandPropertyAssignment(l)||e.isPropertyAssignment(l))&&e.isBinaryExpression(l.parent.parent)&&l.parent.parent.operatorToken.kind===63&&l.parent.parent.right.kind===108}e.isThisInitializedObjectBindingExpression=Pa;function co(l){switch(l.kind){case 176:return l.typeName;case 226:return Oc(l.expression)?l.expression:void 0;case 79:case 159:return l}}e.getEntityNameFromTypeNode=co;function za(l){switch(l.kind){case 208:return l.tag;case 278:case 277:return l.tagName;default:return l.expression}}e.getInvokedExpression=za;function fi(l,$,rn){if(e.isNamedDeclaration(l)&&e.isPrivateIdentifier(l.name))return!1;switch(l.kind){case 255:return!0;case 165:return $.kind===255;case 170:case 171:case 167:return l.body!==void 0&&$.kind===255;case 162:return $.body!==void 0&&($.kind===169||$.kind===167||$.kind===171)&&rn.kind===255}return!1}e.nodeCanBeDecorated=fi;function Wi(l,$,rn){return l.decorators!==void 0&&fi(l,$,rn)}e.nodeIsDecorated=Wi;function _o(l,$,rn){return Wi(l,$,rn)||No(l,$)}e.nodeOrChildIsDecorated=_o;function No(l,$){switch(l.kind){case 255:return e.some(l.members,function(rn){return _o(rn,l,$)});case 167:case 171:case 169:return e.some(l.parameters,function(rn){return Wi(rn,l,$)});default:return!1}}e.childIsDecorated=No;function Mo(l){if(Wi(l))return!0;var $=ul(l);return!!$&&No($,l)}e.classOrConstructorParameterIsDecorated=Mo;function yo(l){var $=l.parent;return $.kind===278||$.kind===277||$.kind===279?$.tagName===l:!1}e.isJSXTagName=yo;function qo(l){switch(l.kind){case 106:case 104:case 110:case 95:case 13:case 202:case 203:case 204:case 205:case 206:case 207:case 208:case 227:case 209:case 228:case 210:case 211:case 224:case 212:case 215:case 213:case 214:case 217:case 218:case 219:case 220:case 223:case 221:case 225:case 276:case 277:case 280:case 222:case 216:case 229:return!0;case 159:for(;l.parent.kind===159;)l=l.parent;return l.parent.kind===179||e.isJSDocLinkLike(l.parent)||e.isJSDocNameReference(l.parent)||e.isJSDocMemberName(l.parent)||yo(l);case 306:for(;e.isJSDocMemberName(l.parent);)l=l.parent;return l.parent.kind===179||e.isJSDocLinkLike(l.parent)||e.isJSDocNameReference(l.parent)||e.isJSDocMemberName(l.parent)||yo(l);case 79:if(l.parent.kind===179||e.isJSDocLinkLike(l.parent)||e.isJSDocNameReference(l.parent)||e.isJSDocMemberName(l.parent)||yo(l))return!0;case 8:case 9:case 10:case 14:case 108:return So(l);default:return!1}}e.isExpressionNode=qo;function So(l){var $=l.parent;switch($.kind){case 252:case 162:case 165:case 164:case 294:case 291:case 201:return $.initializer===l;case 236:case 237:case 238:case 239:case 245:case 246:case 247:case 287:case 249:return $.expression===l;case 240:var rn=$;return rn.initializer===l&&rn.initializer.kind!==253||rn.condition===l||rn.incrementor===l;case 241:case 242:var wn=$;return wn.initializer===l&&wn.initializer.kind!==253||wn.expression===l;case 209:case 227:return l===$.expression;case 231:return l===$.expression;case 160:return l===$.expression;case 163:case 286:case 285:case 293:return!0;case 226:return $.expression===l&&pu($);case 292:return $.objectAssignmentInitializer===l;default:return qo($)}}e.isInExpressionContext=So;function Zo(l){for(;l.kind===159||l.kind===79;)l=l.parent;return l.kind===179}e.isPartOfTypeQuery=Zo;function fn(l){return e.isNamespaceExport(l)&&!!l.parent.moduleSpecifier}e.isNamespaceReexportDeclaration=fn;function cr(l){return l.kind===263&&l.moduleReference.kind===275}e.isExternalModuleImportEqualsDeclaration=cr;function Hr(l){return e.Debug.assert(cr(l)),l.moduleReference.expression}e.getExternalModuleImportEqualsDeclarationExpression=Hr;function zt(l){return Yn(l)&&Bs(l.initializer).arguments[0]}e.getExternalModuleRequireArgument=zt;function Oe(l){return l.kind===263&&l.moduleReference.kind!==275}e.isInternalModuleImportEqualsDeclaration=Oe;function Zn(l){return te(l)}e.isSourceFileJS=Zn;function Pr(l){return!te(l)}e.isSourceFileNotJS=Pr;function te(l){return!!l&&!!(l.flags&131072)}e.isInJSFile=te;function Q(l){return!!l&&!!(l.flags&33554432)}e.isInJsonFile=Q;function Ae(l){return!Vn(l)}e.isSourceFileNotJson=Ae;function Fe(l){return!!l&&!!(l.flags&4194304)}e.isInJSDoc=Fe;function Ze(l){return e.isTypeReferenceNode(l)&&e.isIdentifier(l.typeName)&&l.typeName.escapedText==="Object"&&l.typeArguments&&l.typeArguments.length===2&&(l.typeArguments[0].kind===148||l.typeArguments[0].kind===145)}e.isJSDocIndexSignature=Ze;function Gn(l,$){if(l.kind!==206)return!1;var rn=l,wn=rn.expression,Lr=rn.arguments;if(wn.kind!==79||wn.escapedText!=="require"||Lr.length!==1)return!1;var At=Lr[0];return!$||e.isStringLiteralLike(At)}e.isRequireCall=Gn;function Yn(l){return l.kind===201&&(l=l.parent.parent),e.isVariableDeclaration(l)&&!!l.initializer&&Gn(Bs(l.initializer),!0)}e.isRequireVariableDeclaration=Yn;function _r(l){return e.isVariableStatement(l)&&l.declarationList.declarations.length>0&&e.every(l.declarationList.declarations,function($){return Yn($)})}e.isRequireVariableStatement=_r;function kr(l){return l===39||l===34}e.isSingleOrDoubleQuote=kr;function Et(l,$){return xe($,l).charCodeAt(0)===34}e.isStringDoubleQuoted=Et;function Vt(l){return e.isBinaryExpression(l)||ns(l)||e.isIdentifier(l)||e.isCallExpression(l)}e.isAssignmentDeclaration=Vt;function Ea(l){return te(l)&&l.initializer&&e.isBinaryExpression(l.initializer)&&(l.initializer.operatorToken.kind===56||l.initializer.operatorToken.kind===60)&&l.name&&Oc(l.name)&&cs(l.name,l.initializer.left)?l.initializer.right:l.initializer}e.getEffectiveInitializer=Ea;function da(l){var $=Ea(l);return $&&wi($,gc(l.name))}e.getDeclaredExpandoInitializer=da;function ai(l,$){return e.forEach(l.properties,function(rn){return e.isPropertyAssignment(rn)&&e.isIdentifier(rn.name)&&rn.name.escapedText==="value"&&rn.initializer&&wi(rn.initializer,$)})}function ji(l){if(l&&l.parent&&e.isBinaryExpression(l.parent)&&l.parent.operatorToken.kind===63){var $=gc(l.parent.left);return wi(l.parent.right,$)||Gi(l.parent.left,l.parent.right,$)}if(l&&e.isCallExpression(l)&&Es(l)){var rn=ai(l.arguments[2],l.arguments[1].text==="prototype");if(rn)return rn}}e.getAssignedExpandoInitializer=ji;function wi(l,$){if(e.isCallExpression(l)){var rn=di(l.expression);return rn.kind===211||rn.kind===212?l:void 0}if(l.kind===211||l.kind===224||l.kind===212||e.isObjectLiteralExpression(l)&&(l.properties.length===0||$))return l}e.getExpandoInitializer=wi;function Gi(l,$,rn){var wn=e.isBinaryExpression($)&&($.operatorToken.kind===56||$.operatorToken.kind===60)&&wi($.right,rn);if(wn&&cs(l,$.left))return wn}function hs(l){var $=e.isVariableDeclaration(l.parent)?l.parent.name:e.isBinaryExpression(l.parent)&&l.parent.operatorToken.kind===63?l.parent.left:void 0;return $&&wi(l.right,gc($))&&Oc($)&&cs($,l.left)}e.isDefaultedExpandoInitializer=hs;function as(l){if(e.isBinaryExpression(l.parent)){var $=(l.parent.operatorToken.kind===56||l.parent.operatorToken.kind===60)&&e.isBinaryExpression(l.parent.parent)?l.parent.parent:l.parent;if($.operatorToken.kind===63&&e.isIdentifier($.left))return $.left}else if(e.isVariableDeclaration(l.parent))return l.parent.name}e.getNameOfExpando=as;function cs(l,$){if(Gf(l)&&Gf($))return md(l)===md($);if(e.isIdentifier(l)&&sl($)&&($.expression.kind===108||e.isIdentifier($.expression)&&($.expression.escapedText==="window"||$.expression.escapedText==="self"||$.expression.escapedText==="global"))){var rn=mr($);return e.isPrivateIdentifier(rn)&&e.Debug.fail("Unexpected PrivateIdentifier in name expression with literal-like access."),cs(l,rn)}return sl(l)&&sl($)?Wt(l)===Wt($)&&cs(l.expression,$.expression):!1}e.isSameEntityName=cs;function ks(l){for(;wl(l,!0);)l=l.right;return l}e.getRightMostAssignedExpression=ks;function pl(l){return e.isIdentifier(l)&&l.escapedText==="exports"}e.isExportsIdentifier=pl;function ml(l){return e.isIdentifier(l)&&l.escapedText==="module"}e.isModuleIdentifier=ml;function yl(l){return(e.isPropertyAccessExpression(l)||El(l))&&ml(l.expression)&&Wt(l)==="exports"}e.isModuleExportsAccessExpression=yl;function Ss(l){var $=Ce(l);return $===5||te(l)?$:0}e.getAssignmentDeclarationKind=Ss;function Es(l){return e.length(l.arguments)===3&&e.isPropertyAccessExpression(l.expression)&&e.isIdentifier(l.expression.expression)&&e.idText(l.expression.expression)==="Object"&&e.idText(l.expression.name)==="defineProperty"&&xc(l.arguments[1])&&Pn(l.arguments[0],!0)}e.isBindableObjectDefinePropertyCall=Es;function sl(l){return e.isPropertyAccessExpression(l)||El(l)}e.isLiteralLikeAccess=sl;function El(l){return e.isElementAccessExpression(l)&&xc(l.argumentExpression)}e.isLiteralLikeElementAccess=El;function bs(l,$){return e.isPropertyAccessExpression(l)&&(!$&&l.expression.kind===108||e.isIdentifier(l.name)&&Pn(l.expression,!0))||pe(l,$)}e.isBindableStaticAccessExpression=bs;function pe(l,$){return El(l)&&(!$&&l.expression.kind===108||Oc(l.expression)||bs(l.expression,!0))}e.isBindableStaticElementAccessExpression=pe;function Pn(l,$){return Oc(l)||bs(l,$)}e.isBindableStaticNameExpression=Pn;function mr(l){return e.isPropertyAccessExpression(l)?l.name:l.argumentExpression}e.getNameOrArgument=mr;function Ce(l){if(e.isCallExpression(l)){if(!Es(l))return 0;var $=l.arguments[0];return pl($)||yl($)?8:bs($)&&Wt($)==="prototype"?9:7}return l.operatorToken.kind!==63||!ns(l.left)||Xn(ks(l))?0:Pn(l.left.expression,!0)&&Wt(l.left)==="prototype"&&e.isObjectLiteralExpression(ci(l))?6:oa(l.left)}function Xn(l){return e.isVoidExpression(l)&&e.isNumericLiteral(l.expression)&&l.expression.text==="0"}function it(l){if(e.isPropertyAccessExpression(l))return l.name;var $=di(l.argumentExpression);return e.isNumericLiteral($)||e.isStringLiteralLike($)?$:l}e.getElementOrPropertyAccessArgumentExpressionOrName=it;function Wt(l){var $=it(l);if($){if(e.isIdentifier($))return $.escapedText;if(e.isStringLiteralLike($)||e.isNumericLiteral($))return e.escapeLeadingUnderscores($.text)}}e.getElementOrPropertyAccessName=Wt;function oa(l){if(l.expression.kind===108)return 4;if(yl(l))return 2;if(Pn(l.expression,!0)){if(gc(l.expression))return 3;for(var $=l;!e.isIdentifier($.expression);)$=$.expression;var rn=$.expression;if((rn.escapedText==="exports"||rn.escapedText==="module"&&Wt($)==="exports")&&bs(l))return 1;if(Pn(l,!0)||e.isElementAccessExpression(l)&&vl(l))return 5}return 0}e.getAssignmentDeclarationPropertyAccessKind=oa;function ci(l){for(;e.isBinaryExpression(l.right);)l=l.right;return l.right}e.getInitializerOfBinaryExpression=ci;function ui(l){return e.isBinaryExpression(l)&&Ss(l)===3}e.isPrototypePropertyAssignment=ui;function xn(l){return te(l)&&l.parent&&l.parent.kind===236&&(!e.isElementAccessExpression(l)||El(l))&&!!e.getJSDocTypeTag(l.parent)}e.isSpecialPropertyDeclaration=xn;function $o(l,$){var rn=l.valueDeclaration;(!rn||!($.flags&8388608&&!(rn.flags&8388608))&&Vt(rn)&&!Vt($)||rn.kind!==$.kind&&Kn(rn))&&(l.valueDeclaration=$)}e.setValueDeclaration=$o;function Jo(l){if(!l||!l.valueDeclaration)return!1;var $=l.valueDeclaration;return $.kind===254||e.isVariableDeclaration($)&&$.initializer&&e.isFunctionLike($.initializer)}e.isFunctionSymbol=Jo;function Ms(l){var $,rn,wn;switch(l.kind){case 252:return l.initializer.arguments[0].text;case 264:return($=e.tryCast(l.moduleSpecifier,e.isStringLiteralLike))===null||$===void 0?void 0:$.text;case 263:return(wn=e.tryCast((rn=e.tryCast(l.moduleReference,e.isExternalModuleReference))===null||rn===void 0?void 0:rn.expression,e.isStringLiteralLike))===null||wn===void 0?void 0:wn.text;default:e.Debug.assertNever(l)}}e.tryGetModuleSpecifierFromDeclaration=Ms;function Hs(l){return Li(l)||e.Debug.failBadSyntaxKind(l.parent)}e.importFromModuleSpecifier=Hs;function Li(l){switch(l.parent.kind){case 264:case 270:return l.parent;case 275:return l.parent.parent;case 206:return hn(l.parent)||Gn(l.parent,!1)?l.parent:void 0;case 194:return e.Debug.assert(e.isStringLiteral(l)),e.tryCast(l.parent.parent,e.isImportTypeNode);default:return}}e.tryGetImportFromModuleSpecifier=Li;function _s(l){switch(l.kind){case 264:case 270:return l.moduleSpecifier;case 263:return l.moduleReference.kind===275?l.moduleReference.expression:void 0;case 198:return lr(l)?l.argument.literal:void 0;case 206:return l.arguments[0];case 259:return l.name.kind===10?l.name:void 0;default:return e.Debug.assertNever(l)}}e.getExternalModuleName=_s;function ll(l){switch(l.kind){case 264:return l.importClause&&e.tryCast(l.importClause.namedBindings,e.isNamespaceImport);case 263:return l;case 270:return l.exportClause&&e.tryCast(l.exportClause,e.isNamespaceExport);default:return e.Debug.assertNever(l)}}e.getNamespaceDeclarationNode=ll;function ec(l){return l.kind===264&&!!l.importClause&&!!l.importClause.name}e.isDefaultImport=ec;function ql(l,$){if(l.name){var rn=$(l);if(rn)return rn}if(l.namedBindings){var rn=e.isNamespaceImport(l.namedBindings)?$(l.namedBindings):e.forEach(l.namedBindings.elements,$);if(rn)return rn}}e.forEachImportClauseDeclaration=ql;function Du(l){if(l)switch(l.kind){case 162:case 167:case 166:case 292:case 291:case 165:case 164:return l.questionToken!==void 0}return!1}e.hasQuestionToken=Du;function bl(l){var $=e.isJSDocFunctionType(l)?e.firstOrUndefined(l.parameters):void 0,rn=e.tryCast($&&$.name,e.isIdentifier);return!!rn&&rn.escapedText==="new"}e.isJSDocConstructSignature=bl;function Lc(l){return l.kind===340||l.kind===333||l.kind===334}e.isJSDocTypeAlias=Lc;function Ac(l){return Lc(l)||e.isTypeAliasDeclaration(l)}e.isTypeAlias=Ac;function Tl(l){return e.isExpressionStatement(l)&&e.isBinaryExpression(l.expression)&&l.expression.operatorToken.kind===63?ks(l.expression):void 0}function Dn(l){return e.isExpressionStatement(l)&&e.isBinaryExpression(l.expression)&&Ss(l.expression)!==0&&e.isBinaryExpression(l.expression.right)&&(l.expression.right.operatorToken.kind===56||l.expression.right.operatorToken.kind===60)?l.expression.right.right:void 0}function nr(l){switch(l.kind){case 235:var $=Sr(l);return $&&$.initializer;case 165:return l.initializer;case 291:return l.initializer}}e.getSingleInitializerOfVariableStatementOrPropertyDeclaration=nr;function Sr(l){return e.isVariableStatement(l)?e.firstOrUndefined(l.declarationList.declarations):void 0}e.getSingleVariableOfVariableStatement=Sr;function Qr(l){return e.isModuleDeclaration(l)&&l.body&&l.body.kind===259?l.body:void 0}function lt(l,$){var rn;ti(l)&&e.hasInitializer(l)&&e.hasJSDocNodes(l.initializer)&&(rn=e.append(rn,e.last(l.initializer.jsDoc)));for(var wn=l;wn&&wn.parent;){if(e.hasJSDocNodes(wn)&&(rn=e.append(rn,e.last(wn.jsDoc))),wn.kind===162){rn=e.addRange(rn,($?e.getJSDocParameterTagsNoCache:e.getJSDocParameterTags)(wn));break}if(wn.kind===161){rn=e.addRange(rn,($?e.getJSDocTypeParameterTagsNoCache:e.getJSDocTypeParameterTags)(wn));break}wn=ct(wn)}return rn||e.emptyArray}e.getJSDocCommentsAndTags=lt;function ct(l){var $=l.parent;if($.kind===291||$.kind===269||$.kind===165||$.kind===236&&l.kind===204||$.kind===245||Qr($)||e.isBinaryExpression(l)&&l.operatorToken.kind===63)return $;if($.parent&&(Sr($.parent)===l||e.isBinaryExpression($)&&$.operatorToken.kind===63))return $.parent;if($.parent&&$.parent.parent&&(Sr($.parent.parent)||nr($.parent.parent)===l||Dn($.parent.parent)))return $.parent.parent}e.getNextJSDocCommentLocation=ct;function Nt(l){if(l.symbol)return l.symbol;if(!!e.isIdentifier(l.name)){var $=l.name.escapedText,rn=Jt(l);if(!!rn){var wn=e.find(rn.parameters,function(Lr){return Lr.name.kind===79&&Lr.name.escapedText===$});return wn&&wn.symbol}}}e.getParameterSymbolFromJSDoc=Nt;function Jt(l){var $=Ut(l);return $&&e.isFunctionLike($)?$:void 0}e.getHostSignatureFromJSDoc=Jt;function Ut(l){var $=ii(l);if($)return Dn($)||Tl($)||nr($)||Sr($)||Qr($)||$}e.getEffectiveJSDocHost=Ut;function ii(l){var $=ga(l);if(!!$){var rn=$.parent;if(rn&&rn.jsDoc&&$===e.lastOrUndefined(rn.jsDoc))return rn}}e.getJSDocHost=ii;function ga(l){return e.findAncestor(l.parent,e.isJSDoc)}e.getJSDocRoot=ga;function Ia(l){var $=l.name.escapedText,rn=l.parent.parent.parent.typeParameters;return rn&&e.find(rn,function(wn){return wn.name.escapedText===$})}e.getTypeParameterFromJsDoc=Ia;function _e(l){var $=e.lastOrUndefined(l.parameters);return!!$&&nn($)}e.hasRestParameter=_e;function nn(l){var $=e.isJSDocParameterTag(l)?l.typeExpression&&l.typeExpression.type:l.type;return l.dotDotDotToken!==void 0||!!$&&$.kind===313}e.isRestParameter=nn;function _n(l){return!!l.typeArguments}e.hasTypeArguments=_n,function(l){l[l.None=0]="None",l[l.Definite=1]="Definite",l[l.Compound=2]="Compound"}(e.AssignmentKind||(e.AssignmentKind={}));function sr(l){for(var $=l.parent;;){switch($.kind){case 219:var rn=$.operatorToken.kind;return Yf(rn)&&$.left===l?rn===63||Dd(rn)?1:2:0;case 217:case 218:var wn=$.operator;return wn===45||wn===46?2:0;case 241:case 242:return $.initializer===l?1:0;case 210:case 202:case 223:case 228:l=$;break;case 293:l=$.parent;break;case 292:if($.name!==l)return 0;l=$.parent;break;case 291:if($.name===l)return 0;l=$.parent;break;default:return 0}$=l.parent}}e.getAssignmentTargetKind=sr;function $r(l){return sr(l)!==0}e.isAssignmentTarget=$r;function Ft(l){switch(l.kind){case 233:case 235:case 246:case 237:case 247:case 261:case 287:case 288:case 248:case 240:case 241:case 242:case 238:case 239:case 250:case 290:return!0}return!1}e.isNodeWithPossibleHoistedDeclaration=Ft;function Lt(l){return e.isFunctionExpression(l)||e.isArrowFunction(l)||e.isMethodOrAccessor(l)||e.isFunctionDeclaration(l)||e.isConstructorDeclaration(l)}e.isValueSignatureDeclaration=Lt;function Na(l,$){for(;l&&l.kind===$;)l=l.parent;return l}function Ni(l){return Na(l,189)}e.walkUpParenthesizedTypes=Ni;function qi(l){return Na(l,210)}e.walkUpParenthesizedExpressions=qi;function go(l){for(var $;l&&l.kind===189;)$=l,l=l.parent;return[$,l]}e.walkUpParenthesizedTypesAndGetParentAndChild=go;function di(l){return e.skipOuterExpressions(l,1)}e.skipParentheses=di;function io(l){return l.kind!==204&&l.kind!==205?!1:(l=qi(l.parent),l&&l.kind===213)}e.isDeleteTarget=io;function wo(l,$){for(;l;){if(l===$)return!0;l=l.parent}return!1}e.isNodeDescendantOf=wo;function ko(l){return!e.isSourceFile(l)&&!e.isBindingPattern(l)&&e.isDeclaration(l.parent)&&l.parent.name===l}e.isDeclarationName=ko;function On(l){var $=l.parent;switch(l.kind){case 10:case 14:case 8:if(e.isComputedPropertyName($))return $.parent;case 79:if(e.isDeclaration($))return $.name===l?$:void 0;if(e.isQualifiedName($)){var rn=$.parent;return e.isJSDocParameterTag(rn)&&rn.name===$?rn:void 0}else{var wn=$.parent;return e.isBinaryExpression(wn)&&Ss(wn)!==0&&(wn.left.symbol||wn.symbol)&&e.getNameOfDeclaration(wn)===l?wn:void 0}case 80:return e.isDeclaration($)&&$.name===l?$:void 0;default:return}}e.getDeclarationFromName=On;function Rs(l){return xc(l)&&l.parent.kind===160&&e.isDeclaration(l.parent.parent)}e.isLiteralComputedPropertyDeclarationName=Rs;function Pl(l){var $=l.parent;switch($.kind){case 165:case 164:case 167:case 166:case 170:case 171:case 294:case 291:case 204:return $.name===l;case 159:return $.right===l;case 201:case 268:return $.propertyName===l;case 273:case 283:return!0}return!1}e.isIdentifierName=Pl;function _l(l){return l.kind===263||l.kind===262||l.kind===265&&!!l.name||l.kind===266||l.kind===272||l.kind===268||l.kind===273||l.kind===269&&au(l)||e.isBinaryExpression(l)&&Ss(l)===2&&au(l)||e.isPropertyAccessExpression(l)&&e.isBinaryExpression(l.parent)&&l.parent.left===l&&l.parent.operatorToken.kind===63&&Cl(l.parent.right)||l.kind===292||l.kind===291&&Cl(l.initializer)}e.isAliasSymbolDeclaration=_l;function wu(l){switch(l.parent.kind){case 265:case 268:case 266:case 273:case 269:case 263:return l.parent;case 159:do l=l.parent;while(l.parent.kind===159);return wu(l)}}e.getAliasDeclarationFromName=wu;function Cl(l){return Oc(l)||e.isClassExpression(l)}e.isAliasableExpression=Cl;function au(l){var $=Xi(l);return Cl($)}e.exportAssignmentIsAlias=au;function Xi(l){return e.isExportAssignment(l)?l.expression:l.right}e.getExportAssignmentExpression=Xi;function gl(l){return l.kind===292?l.name:l.kind===291?l.initializer:l.parent.right}e.getPropertyAssignmentAliasLikeExpression=gl;function iu(l){var $=Fu(l);if($&&te(l)){var rn=e.getJSDocAugmentsTag(l);if(rn)return rn.class}return $}e.getEffectiveBaseTypeNode=iu;function Fu(l){var $=ud(l.heritageClauses,94);return $&&$.types.length>0?$.types[0]:void 0}e.getClassExtendsHeritageElement=Fu;function ou(l){if(te(l))return e.getJSDocImplementsTags(l).map(function(rn){return rn.class});var $=ud(l.heritageClauses,117);return $==null?void 0:$.types}e.getEffectiveImplementsTypeNodes=ou;function Ff(l){return e.isInterfaceDeclaration(l)?Qu(l)||e.emptyArray:e.isClassLike(l)&&e.concatenate(e.singleElementArray(iu(l)),ou(l))||e.emptyArray}e.getAllSuperTypeNodes=Ff;function Qu(l){var $=ud(l.heritageClauses,94);return $?$.types:void 0}e.getInterfaceBaseTypeNodes=Qu;function ud(l,$){if(l)for(var rn=0,wn=l;rn=0)return Gt[Bi]}}function At(li){var Gt;li.file?(Gt=rn.get(li.file.fileName),Gt||(Gt=[],rn.set(li.file.fileName,Gt),e.insertSorted($,li.file.fileName,e.compareStringsCaseSensitive))):(wn&&(wn=!1,l=l.slice()),Gt=l),e.insertSorted(Gt,li,p_)}function qt(){return wn=!0,l}function pa(li){if(li)return rn.get(li)||[];var Gt=e.flatMapToMutable($,function(Bi){return rn.get(Bi)});return l.length&&Gt.unshift.apply(Gt,l),Gt}}e.createDiagnosticCollection=$u;var hd=/\$\{/g;function Rp(l){return l.replace(hd,"\\${")}function Op(l){return l&&!!(e.isNoSubstitutionTemplateLiteral(l)?l.templateFlags:l.head.templateFlags||e.some(l.templateSpans,function($){return!!$.literal.templateFlags}))}e.hasInvalidEscape=Op;var su=/[\\\"\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g,Pp=/[\\\'\u0000-\u001f\t\v\f\b\r\n\u2028\u2029\u0085]/g,Xd=/\r\n|[\\\`\u0000-\u001f\t\v\f\b\r\u2028\u2029\u0085]/g,yd=new e.Map(e.getEntries({" ":"\\t","\v":"\\v","\f":"\\f","\b":"\\b","\r":"\\r","\n":"\\n","\\":"\\\\",'"':'\\"',"'":"\\'","`":"\\`","\u2028":"\\u2028","\u2029":"\\u2029","\x85":"\\u0085","\r\n":"\\r\\n"}));function ef(l){var $=l.toString(16).toUpperCase(),rn=("0000"+$).slice(-4);return"\\u"+rn}function Yd(l,$,rn){if(l.charCodeAt(0)===0){var wn=rn.charCodeAt($+l.length);return wn>=48&&wn<=57?"\\x00":"\\0"}return yd.get(l)||ef(l.charCodeAt(0))}function lu(l,$){var rn=$===96?Xd:$===39?Pp:su;return l.replace(rn,Yd)}e.escapeString=lu;var Qd=/[^\u0000-\u007F]/g;function cu(l,$){return l=lu(l,$),Qd.test(l)?l.replace(Qd,function(rn){return ef(rn.charCodeAt(0))}):l}e.escapeNonAsciiString=cu;var Wf=/[\"\u0000-\u001f\u2028\u2029\u0085]/g,Ds=/[\'\u0000-\u001f\u2028\u2029\u0085]/g,Ic=new e.Map(e.getEntries({'"':""","'":"'"}));function uu(l){var $=l.toString(16).toUpperCase();return"&#x"+$+";"}function Ed(l){return l.charCodeAt(0)===0?"�":Ic.get(l)||uu(l.charCodeAt(0))}function Zd(l,$){var rn=$===39?Ds:Wf;return l.replace(rn,Ed)}e.escapeJsxAttributeString=Zd;function nf(l){var $=l.length;return $>=2&&l.charCodeAt(0)===l.charCodeAt($-1)&&rf(l.charCodeAt(0))?l.substring(1,$-1):l}e.stripQuotes=nf;function rf(l){return l===39||l===34||l===96}function jc(l){var $=l.charCodeAt(0);return $>=97&&$<=122||e.stringContains(l,"-")||e.stringContains(l,":")}e.isIntrinsicJsxName=jc;var Yi=[""," "];function Wo(l){for(var $=Yi[1],rn=Yi.length;rn<=l;rn++)Yi.push(Yi[rn-1]+$);return Yi[l]}e.getIndentString=Wo;function Sl(){return Yi[1].length}e.getIndentSize=Sl;function ws(l){var $,rn,wn,Lr,At,qt=!1;function pa(Oi){var Is=e.computeLineStarts(Oi);Is.length>1?(Lr=Lr+Is.length-1,At=$.length-Oi.length+e.last(Is),wn=At-$.length==0):wn=!1}function li(Oi){Oi&&Oi.length&&(wn&&(Oi=Wo(rn)+Oi,wn=!1),$+=Oi,pa(Oi))}function Gt(Oi){Oi&&(qt=!1),li(Oi)}function Bi(Oi){Oi&&(qt=!0),li(Oi)}function sa(){$="",rn=0,wn=!0,Lr=0,At=0,qt=!1}function el(Oi){Oi!==void 0&&($+=Oi,pa(Oi),qt=!1)}function xs(Oi){Oi&&Oi.length&&Gt(Oi)}function jo(Oi){(!wn||Oi)&&($+=l,Lr++,At=$.length,wn=!0,qt=!1)}function Ql(){return wn?$.length:$.length+l.length}return sa(),{write:Gt,rawWrite:el,writeLiteral:xs,writeLine:jo,increaseIndent:function(){rn++},decreaseIndent:function(){rn--},getIndent:function(){return rn},getTextPos:function(){return $.length},getLine:function(){return Lr},getColumn:function(){return wn?rn*Sl():$.length-At},getText:function(){return $},isAtStartOfLine:function(){return wn},hasTrailingComment:function(){return qt},hasTrailingWhitespace:function(){return!!$.length&&e.isWhiteSpaceLike($.charCodeAt($.length-1))},clear:sa,reportInaccessibleThisError:e.noop,reportPrivateInBaseOfClassExpression:e.noop,reportInaccessibleUniqueSymbolError:e.noop,trackSymbol:function(){return!1},writeKeyword:Gt,writeOperator:Gt,writeParameter:Gt,writeProperty:Gt,writePunctuation:Gt,writeSpace:Gt,writeStringLiteral:Gt,writeSymbol:function(Oi,Is){return Gt(Oi)},writeTrailingSemicolon:Gt,writeComment:Bi,getTextPosWithWriteLine:Ql}}e.createTextWriter=ws;function $d(l){var $=!1;function rn(){$&&(l.writeTrailingSemicolon(";"),$=!1)}return Dt(Dt({},l),{writeTrailingSemicolon:function(){$=!0},writeLiteral:function(wn){rn(),l.writeLiteral(wn)},writeStringLiteral:function(wn){rn(),l.writeStringLiteral(wn)},writeSymbol:function(wn,Lr){rn(),l.writeSymbol(wn,Lr)},writePunctuation:function(wn){rn(),l.writePunctuation(wn)},writeKeyword:function(wn){rn(),l.writeKeyword(wn)},writeOperator:function(wn){rn(),l.writeOperator(wn)},writeParameter:function(wn){rn(),l.writeParameter(wn)},writeSpace:function(wn){rn(),l.writeSpace(wn)},writeProperty:function(wn){rn(),l.writeProperty(wn)},writeComment:function(wn){rn(),l.writeComment(wn)},writeLine:function(){rn(),l.writeLine()},increaseIndent:function(){rn(),l.increaseIndent()},decreaseIndent:function(){rn(),l.decreaseIndent()}})}e.getTrailingSemicolonDeferringWriter=$d;function Nc(l){return l.useCaseSensitiveFileNames?l.useCaseSensitiveFileNames():!1}e.hostUsesCaseSensitiveFileNames=Nc;function tf(l){return e.createGetCanonicalFileName(Nc(l))}e.hostGetCanonicalFileName=tf;function fu(l,$,rn){return $.moduleName||cl(l,$.fileName,rn&&rn.fileName)}e.getResolvedExternalModuleName=fu;function oo(l,$){return l.getCanonicalFileName(e.getNormalizedAbsolutePath($,l.getCurrentDirectory()))}function af(l,$,rn){var wn=$.getExternalModuleFileFromDeclaration(rn);if(!(!wn||wn.isDeclarationFile)){var Lr=_s(rn);if(!(Lr&&e.isStringLiteralLike(Lr)&&!e.pathIsRelative(Lr.text)&&oo(l,wn.path).indexOf(oo(l,e.ensureTrailingDirectorySeparator(l.getCommonSourceDirectory())))===-1))return fu(l,wn)}}e.getExternalModuleNameFromDeclaration=af;function cl(l,$,rn){var wn=function(li){return l.getCanonicalFileName(li)},Lr=e.toPath(rn?e.getDirectoryPath(rn):l.getCommonSourceDirectory(),l.getCurrentDirectory(),wn),At=e.getNormalizedAbsolutePath($,l.getCurrentDirectory()),qt=e.getRelativePathToDirectoryOrUrl(Lr,At,Lr,wn,!1),pa=pm(qt);return rn?e.ensurePathIsNonModuleName(pa):pa}e.getExternalModuleNameFromPath=cl;function fo(l,$,rn){var wn=$.getCompilerOptions(),Lr;return wn.outDir?Lr=pm(mc(l,$,wn.outDir)):Lr=pm(l),Lr+rn}e.getOwnEmitOutputFilePath=fo;function Mp(l,$){return ep(l,$.getCompilerOptions(),$.getCurrentDirectory(),$.getCommonSourceDirectory(),function(rn){return $.getCanonicalFileName(rn)})}e.getDeclarationEmitOutputFilePath=Mp;function ep(l,$,rn,wn,Lr){var At=$.declarationDir||$.outDir,qt=At?bd(l,At,rn,wn,Lr):l;return pm(qt)+".d.ts"}e.getDeclarationEmitOutputFilePathWorker=ep;function jf(l){return l.outFile||l.out}e.outFile=jf;function kt(l,$){var rn,wn;if(!!l.paths)return(rn=l.baseUrl)!==null&&rn!==void 0?rn:e.Debug.checkDefined(l.pathsBasePath||((wn=$.getCurrentDirectory)===null||wn===void 0?void 0:wn.call($)),"Encountered 'paths' without a 'baseUrl', config file, or host 'getCurrentDirectory'.")}e.getPathsBasePath=kt;function so(l,$,rn){var wn=l.getCompilerOptions();if(jf(wn)){var Lr=nd(wn),At=wn.emitDeclarationOnly||Lr===e.ModuleKind.AMD||Lr===e.ModuleKind.System;return e.filter(l.getSourceFiles(),function(pa){return(At||!e.isExternalModule(pa))&&Ya(pa,l,rn)})}else{var qt=$===void 0?l.getSourceFiles():[$];return e.filter(qt,function(pa){return Ya(pa,l,rn)})}}e.getSourceFilesToEmit=so;function Ya(l,$,rn){var wn=$.getCompilerOptions();return!(wn.noEmitForJsFiles&&Zn(l))&&!l.isDeclarationFile&&!$.isSourceFileFromExternalLibrary(l)&&(rn||!(Vn(l)&&$.getResolvedProjectReferenceToRedirect(l.fileName))&&!$.isSourceOfProjectReferenceRedirect(l.fileName))}e.sourceFileMayBeEmitted=Ya;function mc(l,$,rn){return bd(l,rn,$.getCurrentDirectory(),$.getCommonSourceDirectory(),function(wn){return $.getCanonicalFileName(wn)})}e.getSourceFilePathInNewDir=mc;function bd(l,$,rn,wn,Lr){var At=e.getNormalizedAbsolutePath(l,rn),qt=Lr(At).indexOf(Lr(wn))===0;return At=qt?At.substring(wn.length):At,e.combinePaths($,At)}e.getSourceFilePathInNewDirWorker=bd;function kc(l,$,rn,wn,Lr,At){l.writeFile(rn,wn,Lr,function(qt){$.add(d_(e.Diagnostics.Could_not_write_file_0_Colon_1,rn,qt))},At)}e.writeFile=kc;function ut(l,$,rn){if(l.length>e.getRootLength(l)&&!rn(l)){var wn=e.getDirectoryPath(l);ut(wn,$,rn),$(l)}}function of(l,$,rn,wn,Lr,At){try{wn(l,$,rn)}catch{ut(e.getDirectoryPath(e.normalizePath(l)),Lr,At),wn(l,$,rn)}}e.writeFileEnsuringDirectories=of;function es(l,$){var rn=e.getLineStarts(l);return e.computeLineOfPosition(rn,$)}e.getLineOfLocalPosition=es;function us(l,$){return e.computeLineOfPosition(l,$)}e.getLineOfLocalPositionFromLineMap=us;function ul(l){return e.find(l.members,function($){return e.isConstructorDeclaration($)&&N($.body)})}e.getFirstConstructorWithBody=ul;function sf(l){if(l&&l.parameters.length>0){var $=l.parameters.length===2&&Au(l.parameters[0]);return l.parameters[$?1:0]}}e.getSetAccessorValueParameter=sf;function Td(l){var $=sf(l);return $&&$.type}e.getSetAccessorTypeAnnotationNode=Td;function Lu(l){if(l.parameters.length&&!e.isJSDocSignature(l)){var $=l.parameters[0];if(Au($))return $}}e.getThisParameter=Lu;function Au(l){return lf(l.name)}e.parameterIsThisKeyword=Au;function lf(l){return!!l&&l.kind===79&&tc(l)}e.isThisIdentifier=lf;function Ls(l){if(!lf(l))return!1;for(;e.isQualifiedName(l.parent)&&l.parent.left===l;)l=l.parent;return l.parent.kind===179}e.isThisInTypeQuery=Ls;function tc(l){return l.originalKeywordKind===108}e.identifierIsThisKeyword=tc;function Hf(l,$){var rn,wn,Lr,At;return dc($)?(rn=$,$.kind===170?Lr=$:$.kind===171?At=$:e.Debug.fail("Accessor has wrong kind")):e.forEach(l,function(qt){if(e.isAccessor(qt)&&Xl(qt)===Xl($)){var pa=xl(qt.name),li=xl($.name);pa===li&&(rn?wn||(wn=qt):rn=qt,qt.kind===170&&!Lr&&(Lr=qt),qt.kind===171&&!At&&(At=qt))}}),{firstAccessor:rn,secondAccessor:wn,getAccessor:Lr,setAccessor:At}}e.getAllAccessorDeclarations=Hf;function Jf(l){if(!(!te(l)&&e.isFunctionDeclaration(l))){var $=l.type;return $||!te(l)?$:e.isJSDocPropertyLikeTag(l)?l.typeExpression&&l.typeExpression.type:e.getJSDocType(l)}}e.getEffectiveTypeAnnotationNode=Jf;function Ji(l){return l.type}e.getTypeAnnotationNode=Ji;function bt(l){return e.isJSDocSignature(l)?l.type&&l.type.typeExpression&&l.type.typeExpression.type:l.type||(te(l)?e.getJSDocReturnType(l):void 0)}e.getEffectiveReturnTypeNode=bt;function hl(l){return e.flatMap(e.getJSDocTags(l),function($){return np($)?$.typeParameters:void 0})}e.getJSDocTypeParameterDeclarations=hl;function np(l){return e.isJSDocTemplateTag(l)&&!(l.parent.kind===315&&l.parent.tags.some(Lc))}function Kf(l){var $=sf(l);return $&&Jf($)}e.getEffectiveSetAccessorTypeAnnotationNode=Kf;function ac(l,$,rn,wn){Sd(l,$,rn.pos,wn)}e.emitNewLineBeforeLeadingComments=ac;function Sd(l,$,rn,wn){wn&&wn.length&&rn!==wn[0].pos&&us(l,rn)!==us(l,wn[0].pos)&&$.writeLine()}e.emitNewLineBeforeLeadingCommentsOfPosition=Sd;function Gu(l,$,rn,wn){rn!==wn&&us(l,rn)!==us(l,wn)&&$.writeLine()}e.emitNewLineBeforeLeadingCommentOfPosition=Gu;function Ml(l,$,rn,wn,Lr,At,qt,pa){if(wn&&wn.length>0){Lr&&rn.writeSpace(" ");for(var li=!1,Gt=0,Bi=wn;Gt=jo+2)break}Gt.push(xs),Bi=xs}if(Gt.length){var jo=us($,e.last(Gt).end),Oi=us($,e.skipTrivia(l,Lr.pos));Oi>=jo+2&&(ac($,rn,Lr,pa),Ml(l,$,rn,Gt,!1,!0,At,wn),li={nodePos:Lr.pos,detachedCommentEndPos:e.last(Gt).end})}}return li;function Is(jl){return q(l,jl.pos)}}e.emitDetachedComments=_c;function Rc(l,$,rn,wn,Lr,At){if(l.charCodeAt(wn+1)===42)for(var qt=e.computeLineAndCharacterOfPosition($,wn),pa=$.length,li=void 0,Gt=wn,Bi=qt.line;Gt0){var jo=xs%Sl(),Ql=Wo((xs-jo)/Sl());for(rn.rawWrite(Ql);jo;)rn.rawWrite(" "),jo--}else rn.rawWrite("")}ic(l,Lr,rn,At,Gt,sa),Gt=sa}else rn.writeComment(l.substring(wn,Lr))}e.writeCommentRange=Rc;function ic(l,$,rn,wn,Lr,At){var qt=Math.min($,At-1),pa=e.trimString(l.substring(Lr,qt));pa?(rn.writeComment(pa),qt!==$&&rn.writeLine()):rn.rawWrite(wn)}function Qs(l,$,rn){for(var wn=0;$=0&&l.kind<=158?0:(l.modifierFlagsCache&536870912||(l.modifierFlagsCache=qf(l)|536870912),$&&!(l.modifierFlagsCache&4096)&&(rn||te(l))&&l.parent&&(l.modifierFlagsCache|=cf(l)|4096),l.modifierFlagsCache&~(536870912|4096))}function Bu(l){return Jc(l,!0)}e.getEffectiveModifierFlags=Bu;function rp(l){return Jc(l,!0,!0)}e.getEffectiveModifierFlagsAlwaysIncludeJSDoc=rp;function tp(l){return Jc(l,!1)}e.getSyntacticModifierFlags=tp;function cf(l){var $=0;return!!l.parent&&!e.isParameter(l)&&(te(l)&&(e.getJSDocPublicTagNoCache(l)&&($|=4),e.getJSDocPrivateTagNoCache(l)&&($|=8),e.getJSDocProtectedTagNoCache(l)&&($|=16),e.getJSDocReadonlyTagNoCache(l)&&($|=64),e.getJSDocOverrideTagNoCache(l)&&($|=16384)),e.getJSDocDeprecatedTagNoCache(l)&&($|=8192)),$}function Uu(l){return qf(l)|cf(l)}e.getEffectiveModifierFlagsNoCache=Uu;function qf(l){var $=uf(l.modifiers);return(l.flags&4||l.kind===79&&l.isInJSDocNamespace)&&($|=1),$}e.getSyntacticModifierFlagsNoCache=qf;function uf(l){var $=0;if(l)for(var rn=0,wn=l;rn=63&&l<=78}e.isAssignmentOperator=Yf;function Qf(l){var $=Oa(l);return $&&!$.isImplements?$.class:void 0}e.tryGetClassExtendingExpressionWithTypeArguments=Qf;function Oa(l){return e.isExpressionWithTypeArguments(l)&&e.isHeritageClause(l.parent)&&e.isClassLike(l.parent.parent)?{class:l.parent.parent,isImplements:l.parent.token===117}:void 0}e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments=Oa;function wl(l,$){return e.isBinaryExpression(l)&&($?l.operatorToken.kind===63:Yf(l.operatorToken.kind))&&e.isLeftHandSideExpression(l.left)}e.isAssignmentExpression=wl;function pt(l){return wl(l.parent)&&l.parent.left===l}e.isLeftHandSideOfAssignment=pt;function Zf(l){if(wl(l,!0)){var $=l.left.kind;return $===203||$===202}return!1}e.isDestructuringAssignment=Zf;function pu(l){return Qf(l)!==void 0}e.isExpressionWithTypeArgumentsInClassExtendsClause=pu;function Oc(l){return l.kind===79||mu(l)}e.isEntityNameExpression=Oc;function Ld(l){switch(l.kind){case 79:return l;case 159:do l=l.left;while(l.kind!==79);return l;case 204:do l=l.expression;while(l.kind!==79);return l}}e.getFirstIdentifier=Ld;function df(l){return l.kind===79||l.kind===108||l.kind===106||l.kind===229||l.kind===204&&df(l.expression)||l.kind===210&&df(l.expression)}e.isDottedName=df;function mu(l){return e.isPropertyAccessExpression(l)&&e.isIdentifier(l.name)&&Oc(l.expression)}e.isPropertyAccessEntityNameExpression=mu;function Fl(l){if(e.isPropertyAccessExpression(l)){var $=Fl(l.expression);if($!==void 0)return $+"."+Gr(l.name)}else if(e.isElementAccessExpression(l)){var $=Fl(l.expression);if($!==void 0&&e.isPropertyName(l.argumentExpression))return $+"."+xl(l.argumentExpression)}else if(e.isIdentifier(l))return e.unescapeLeadingUnderscores(l.escapedText)}e.tryGetPropertyAccessOrIdentifierToString=Fl;function gc(l){return bs(l)&&Wt(l)==="prototype"}e.isPrototypeAccess=gc;function pf(l){return l.parent.kind===159&&l.parent.right===l||l.parent.kind===204&&l.parent.name===l}e.isRightSideOfQualifiedNameOrPropertyAccess=pf;function mf(l){return e.isQualifiedName(l.parent)&&l.parent.right===l||e.isPropertyAccessExpression(l.parent)&&l.parent.name===l||e.isJSDocMemberName(l.parent)&&l.parent.right===l}e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName=mf;function Fp(l){return l.kind===203&&l.properties.length===0}e.isEmptyObjectLiteral=Fp;function ap(l){return l.kind===202&&l.elements.length===0}e.isEmptyArrayLiteral=ap;function $f(l){if(!(!_u(l)||!l.declarations))for(var $=0,rn=l.declarations;$0&&Hc(l.declarations[0],512)}function Kc(l){return e.find(e.supportedTSExtensionsForExtractExtension,function($){return e.fileExtensionIs(l,$)})}e.tryExtractTSExtension=Kc;function Ad(l){for(var $=[],rn=l.length,wn=0;wn>6|192),$.push(Lr&63|128)):Lr<65536?($.push(Lr>>12|224),$.push(Lr>>6&63|128),$.push(Lr&63|128)):Lr<131072?($.push(Lr>>18|240),$.push(Lr>>12&63|128),$.push(Lr>>6&63|128),$.push(Lr&63|128)):e.Debug.assert(!1,"Unexpected code point")}return $}var Fs="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function Cd(l){for(var $="",rn=Ad(l),wn=0,Lr=rn.length,At,qt,pa,li;wn>2,qt=(rn[wn]&3)<<4|rn[wn+1]>>4,pa=(rn[wn+1]&15)<<2|rn[wn+2]>>6,li=rn[wn+2]&63,wn+1>=Lr?pa=li=64:wn+2>=Lr&&(li=64),$+=Fs.charAt(At)+Fs.charAt(qt)+Fs.charAt(pa)+Fs.charAt(li),wn+=3;return $}e.convertToBase64=Cd;function xd(l){for(var $="",rn=0,wn=l.length;rn>4&3,Bi=(qt&15)<<4|pa>>2&15,sa=(pa&3)<<6|li&63;Bi===0&&pa!==0?wn.push(Gt):sa===0&&li!==0?wn.push(Gt,Bi):wn.push(Gt,Bi,sa),Lr+=4}return xd(wn)}e.base64decode=_f;function Gp(l,$){try{var rn=$.readFile(l);if(!rn)return{};var wn=e.parseConfigFileTextToJson(l,rn);return wn.error?{}:wn.config}catch{return{}}}e.readJson=Gp;function os(l,$){return!$.directoryExists||$.directoryExists(l)}e.directoryProbablyExists=os;var ip=`\r -`,Ai=` -`;function Vu(l,$){switch(l.newLine){case 0:return ip;case 1:return Ai}return $?$():e.sys?e.sys.newLine:ip}e.getNewLineCharacter=Vu;function Nu(l,$){return $===void 0&&($=l),e.Debug.assert($>=l||$===-1),{pos:l,end:$}}e.createRange=Nu;function op(l,$){return Nu(l.pos,$)}e.moveRangeEnd=op;function Wu(l,$){return Nu($,l.end)}e.moveRangePos=Wu;function gf(l){return l.decorators&&l.decorators.length>0?Wu(l,l.decorators.end):l}e.moveRangePastDecorators=gf;function T(l){return l.modifiers&&l.modifiers.length>0?Wu(l,l.modifiers.end):gf(l)}e.moveRangePastModifiers=T;function Ye(l){return l.pos===l.end}e.isCollapsedRange=Ye;function ar(l,$){return Nu(l,l+e.tokenToString($).length)}e.createTokenRange=ar;function Nr(l,$){return La(l,l,$)}e.rangeIsOnSingleLine=Nr;function ia(l,$,rn){return Ko(Yo(l,rn,!1),Yo($,rn,!1),rn)}e.rangeStartPositionsAreOnSameLine=ia;function ba(l,$,rn){return Ko(l.end,$.end,rn)}e.rangeEndPositionsAreOnSameLine=ba;function La(l,$,rn){return Ko(Yo(l,rn,!1),$.end,rn)}e.rangeStartIsOnSameLineAsRangeEnd=La;function wa(l,$,rn){return Ko(l.end,Yo($,rn,!1),rn)}e.rangeEndIsOnSameLineAsRangeStart=wa;function xi(l,$,rn,wn){var Lr=Yo($,rn,wn);return e.getLinesBetweenPositions(rn,l.end,Lr)}e.getLinesBetweenRangeEndAndRangeStart=xi;function Do(l,$,rn){return e.getLinesBetweenPositions(rn,l.end,$.end)}e.getLinesBetweenRangeEndPositions=Do;function Io(l,$){return!Ko(l.pos,l.end,$)}e.isNodeArrayMultiLine=Io;function Ko(l,$,rn){return e.getLinesBetweenPositions(rn,l,$)===0}e.positionsAreOnSameLine=Ko;function Yo(l,$,rn){return bc(l.pos)?-1:e.skipTrivia($.text,l.pos,!1,rn)}e.getStartPositionOfRange=Yo;function Js(l,$,rn,wn){var Lr=e.skipTrivia(rn.text,l,!1,wn),At=hc(Lr,$,rn);return e.getLinesBetweenPositions(rn,At!=null?At:$,Lr)}e.getLinesBetweenPositionAndPrecedingNonWhitespaceCharacter=Js;function vc(l,$,rn,wn){var Lr=e.skipTrivia(rn.text,l,!1,wn);return e.getLinesBetweenPositions(rn,l,Math.min($,Lr))}e.getLinesBetweenPositionAndNextNonWhitespaceCharacter=vc;function hc(l,$,rn){for($===void 0&&($=0);l-- >$;)if(!e.isWhiteSpaceLike(rn.text.charCodeAt(l)))return l}function sc(l){var $=e.getParseTreeNode(l);if($)switch($.parent.kind){case 258:case 259:return $===$.parent.name}return!1}e.isDeclarationNameOfEnumOrNamespace=sc;function ju(l){return e.filter(l.declarations,Bp)}e.getInitializedVariables=ju;function Bp(l){return l.initializer!==void 0}function Up(l){return l.watch&&l.hasOwnProperty("watch")}e.isWatchSet=Up;function Vp(l){l.close()}e.closeFileWatcher=Vp;function ku(l){return l.flags&33554432?l.checkFlags:0}e.getCheckFlags=ku;function sp(l,$){if($===void 0&&($=!1),l.valueDeclaration){var rn=$&&l.declarations&&e.find(l.declarations,function(pa){return pa.kind===171})||l.valueDeclaration,wn=e.getCombinedModifierFlags(rn);return l.parent&&l.parent.flags&32?wn:wn&~28}if(ku(l)&6){var Lr=l.checkFlags,At=Lr&1024?8:Lr&256?4:16,qt=Lr&2048?32:0;return At|qt}return l.flags&4194304?4|32:0}e.getDeclarationModifierFlagsFromSymbol=sp;function Om(l,$){return l.flags&2097152?$.getAliasedSymbol(l):l}e.skipAlias=Om;function sm(l){return l.exportSymbol?l.exportSymbol.flags|l.flags:l.flags}e.getCombinedLocalAndExportSymbolFlags=sm;function Pm(l){return zc(l)===1}e.isWriteOnlyAccess=Pm;function lm(l){return zc(l)!==0}e.isWriteAccess=lm;var vf;(function(l){l[l.Read=0]="Read",l[l.Write=1]="Write",l[l.ReadWrite=2]="ReadWrite"})(vf||(vf={}));function zc(l){var $=l.parent;if(!$)return 0;switch($.kind){case 210:return zc($);case 218:case 217:var rn=$.operator;return rn===45||rn===46?pa():0;case 219:var wn=$,Lr=wn.left,At=wn.operatorToken;return Lr===l&&Yf(At.kind)?At.kind===63?1:pa():0;case 204:return $.name!==l?0:zc($);case 291:{var qt=zc($.parent);return l===$.name?Se(qt):qt}case 292:return l===$.objectAssignmentInitializer?0:zc($.parent);case 202:return zc($);default:return 0}function pa(){return $.parent&&qi($.parent).kind===236?1:2}}function Se(l){switch(l){case 0:return 1;case 1:return 0;case 2:return 2;default:return e.Debug.assertNever(l)}}function gn(l,$){if(!l||!$||Object.keys(l).length!==Object.keys($).length)return!1;for(var rn in l)if(typeof l[rn]=="object"){if(!gn(l[rn],$[rn]))return!1}else if(typeof l[rn]!="function"&&l[rn]!==$[rn])return!1;return!0}e.compareDataObjects=gn;function Mn(l,$){l.forEach($),l.clear()}e.clearMap=Mn;function ir(l,$,rn){var wn=rn.onDeleteValue,Lr=rn.onExistingValue;l.forEach(function(At,qt){var pa=$.get(qt);pa===void 0?(l.delete(qt),wn(At,qt)):Lr&&Lr(At,pa,qt)})}e.mutateMapSkippingNewValues=ir;function Ar(l,$,rn){ir(l,$,rn);var wn=rn.createNewValue;$.forEach(function(Lr,At){l.has(At)||l.set(At,wn(At,Lr))})}e.mutateMap=Ar;function Xr(l){if(l.flags&32){var $=Ct(l);return!!$&&Hc($,128)}return!1}e.isAbstractConstructorSymbol=Xr;function Ct(l){var $;return($=l.declarations)===null||$===void 0?void 0:$.find(e.isClassLike)}e.getClassLikeDeclarationOfSymbol=Ct;function jt(l){return l.flags&3899393?l.objectFlags:0}e.getObjectFlags=jt;function Qa(l,$){return $.getSignaturesOfType(l,0).length!==0||$.getSignaturesOfType(l,1).length!==0}e.typeHasCallOrConstructSignatures=Qa;function va(l,$){return!!e.forEachAncestorDirectory(l,function(rn){return $(rn)?!0:void 0})}e.forSomeAncestorDirectory=va;function $i(l){return!!l&&!!l.declarations&&!!l.declarations[0]&&e.isNamespaceExportDeclaration(l.declarations[0])}e.isUMDExportSymbol=$i;function zo(l){var $=l.moduleSpecifier;return e.isStringLiteral($)?$.text:De($)}e.showModuleSpecifier=zo;function no(l){var $;return e.forEachChild(l,function(rn){N(rn)&&($=rn)},function(rn){for(var wn=rn.length-1;wn>=0;wn--)if(N(rn[wn])){$=rn[wn];break}}),$}e.getLastChild=no;function Oo(l,$,rn){return rn===void 0&&(rn=!0),l.has($)?!1:(l.set($,rn),!0)}e.addToSeen=Oo;function fs(l){return e.isClassLike(l)||e.isInterfaceDeclaration(l)||e.isTypeLiteralNode(l)}e.isObjectTypeDeclaration=fs;function Gs(l){return l>=175&&l<=198||l===129||l===153||l===145||l===156||l===146||l===132||l===148||l===149||l===114||l===151||l===142||l===226||l===307||l===308||l===309||l===310||l===311||l===312||l===313}e.isTypeNodeKind=Gs;function ns(l){return l.kind===204||l.kind===205}e.isAccessExpression=ns;function Hu(l){return l.kind===204?l.name:(e.Debug.assert(l.kind===205),l.argumentExpression)}e.getNameOfAccessExpression=Hu;function Dl(l){switch(l.kind){case"text":case"internal":return!0;default:return!1}}e.isBundleFileTextLike=Dl;function dl(l){return l.kind===267||l.kind===271}e.isNamedImportsOrExports=dl;function Bs(l){for(;ns(l);)l=l.expression;return l}e.getLeftmostAccessExpression=Bs;function qc(l,$){for(;;){switch(l.kind){case 218:l=l.operand;continue;case 219:l=l.left;continue;case 220:l=l.condition;continue;case 208:l=l.tag;continue;case 206:if($)return l;case 227:case 205:case 204:case 228:case 345:l=l.expression;continue}return l}}e.getLeftmostExpression=qc;function Mm(l,$){this.flags=l,this.escapedName=$,this.declarations=void 0,this.valueDeclaration=void 0,this.id=void 0,this.mergeId=void 0,this.parent=void 0}function ft(l,$){this.flags=$,(e.Debug.isDebugging||e.tracing)&&(this.checker=l)}function _(l,$){this.flags=$,e.Debug.isDebugging&&(this.checker=l)}function W(l,$,rn){this.pos=$,this.end=rn,this.kind=l,this.id=0,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.original=void 0}function ve(l,$,rn){this.pos=$,this.end=rn,this.kind=l,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0}function en(l,$,rn){this.pos=$,this.end=rn,this.kind=l,this.id=0,this.flags=0,this.transformFlags=0,this.parent=void 0,this.original=void 0,this.flowNode=void 0}function Fn(l,$,rn){this.fileName=l,this.text=$,this.skipTrivia=rn||function(wn){return wn}}e.objectAllocator={getNodeConstructor:function(){return W},getTokenConstructor:function(){return ve},getIdentifierConstructor:function(){return en},getPrivateIdentifierConstructor:function(){return W},getSourceFileConstructor:function(){return W},getSymbolConstructor:function(){return Mm},getTypeConstructor:function(){return ft},getSignatureConstructor:function(){return _},getSourceMapSourceConstructor:function(){return Fn}};function Ur(l){e.objectAllocator=l}e.setObjectAllocator=Ur;function yt(l,$,rn){return rn===void 0&&(rn=0),l.replace(/{(\d+)}/g,function(wn,Lr){return""+e.Debug.checkDefined($[+Lr+rn])})}e.formatStringFromArgs=yt;function Ma(l){e.localizedDiagnosticMessages=l}e.setLocalizedDiagnosticMessages=Ma;function bo(l){return e.localizedDiagnosticMessages&&e.localizedDiagnosticMessages[l.key]||l.message}e.getLocaleSpecificMessage=bo;function ds(l,$,rn,wn){kn(void 0,$,rn);var Lr=bo(wn);return arguments.length>4&&(Lr=yt(Lr,arguments,4)),{file:void 0,start:$,length:rn,messageText:Lr,category:wn.category,code:wn.code,reportsUnnecessary:wn.reportsUnnecessary,fileName:l}}e.createDetachedDiagnostic=ds;function lp(l){return l.file===void 0&&l.start!==void 0&&l.length!==void 0&&typeof l.fileName=="string"}function yc(l,$){var rn=$.fileName||"",wn=$.text.length;e.Debug.assertEqual(l.fileName,rn),e.Debug.assertLessThanOrEqual(l.start,wn),e.Debug.assertLessThanOrEqual(l.start+l.length,wn);var Lr={file:$,start:l.start,length:l.length,messageText:l.messageText,category:l.category,code:l.code,reportsUnnecessary:l.reportsUnnecessary};if(l.relatedInformation){Lr.relatedInformation=[];for(var At=0,qt=l.relatedInformation;At4&&(Lr=yt(Lr,arguments,4)),{file:l,start:$,length:rn,messageText:Lr,category:wn.category,code:wn.code,reportsUnnecessary:wn.reportsUnnecessary,reportsDeprecated:wn.reportsDeprecated}}e.createFileDiagnostic=Id;function ed(l,$){var rn=bo($);return arguments.length>2&&(rn=yt(rn,arguments,2)),rn}e.formatMessage=ed;function d_(l){var $=bo(l);return arguments.length>1&&($=yt($,arguments,1)),{file:void 0,start:void 0,length:void 0,messageText:$,category:l.category,code:l.code,reportsUnnecessary:l.reportsUnnecessary,reportsDeprecated:l.reportsDeprecated}}e.createCompilerDiagnostic=d_;function lg(l,$){return{file:void 0,start:void 0,length:void 0,code:l.code,category:l.category,messageText:l.next?l:l.messageText,relatedInformation:$}}e.createCompilerDiagnosticFromMessageChain=lg;function Gl(l,$){var rn=bo($);return arguments.length>2&&(rn=yt(rn,arguments,2)),{messageText:rn,category:$.category,code:$.code,next:l===void 0||Array.isArray(l)?l:[l]}}e.chainDiagnosticMessages=Gl;function lv(l,$){for(var rn=l;rn.next;)rn=rn.next[0];rn.next=[$]}e.concatenateDiagnosticMessageChains=lv;function cg(l){return l.file?l.file.path:void 0}function p_(l,$){return Nd(l,$)||cv(l,$)||0}e.compareDiagnostics=p_;function Nd(l,$){return e.compareStringsCaseSensitive(cg(l),cg($))||e.compareValues(l.start,$.start)||e.compareValues(l.length,$.length)||e.compareValues(l.code,$.code)||kd(l.messageText,$.messageText)||0}e.compareDiagnosticsSkipRelatedInformation=Nd;function cv(l,$){return!l.relatedInformation&&!$.relatedInformation?0:l.relatedInformation&&$.relatedInformation?e.compareValues(l.relatedInformation.length,$.relatedInformation.length)||e.forEach(l.relatedInformation,function(rn,wn){var Lr=$.relatedInformation[wn];return p_(rn,Lr)})||0:l.relatedInformation?-1:1}function kd(l,$){if(typeof l=="string"&&typeof $=="string")return e.compareStringsCaseSensitive(l,$);if(typeof l=="string")return-1;if(typeof $=="string")return 1;var rn=e.compareStringsCaseSensitive(l.messageText,$.messageText);if(rn)return rn;if(!l.next&&!$.next)return 0;if(!l.next)return-1;if(!$.next)return 1;for(var wn=Math.min(l.next.length,$.next.length),Lr=0;Lr$.next.length?1:0}function Bl(l){return l===4||l===2||l===1||l===6?1:0}e.getLanguageVariant=Bl;function m_(l){return l.target||0}e.getEmitScriptTarget=m_;function nd(l){return typeof l.module=="number"?l.module:m_(l)>=2?e.ModuleKind.ES2015:e.ModuleKind.CommonJS}e.getEmitModuleKind=nd;function wm(l){var $=l.moduleResolution;return $===void 0&&($=nd(l)===e.ModuleKind.CommonJS?e.ModuleResolutionKind.NodeJs:e.ModuleResolutionKind.Classic),$}e.getEmitModuleResolutionKind=wm;function Fm(l){switch(nd(l)){case e.ModuleKind.CommonJS:case e.ModuleKind.AMD:case e.ModuleKind.ES2015:case e.ModuleKind.ES2020:case e.ModuleKind.ESNext:return!0;default:return!1}}e.hasJsonModuleEmitEnabled=Fm;function Gm(l){return l.allowUnreachableCode===!1}e.unreachableCodeIsError=Gm;function ug(l){return l.allowUnusedLabels===!1}e.unusedLabelIsError=ug;function fg(l){return!!(dg(l)&&l.declarationMap)}e.getAreDeclarationMapsEnabled=fg;function hf(l){var $=nd(l);return l.allowSyntheticDefaultImports!==void 0?l.allowSyntheticDefaultImports:l.esModuleInterop||$===e.ModuleKind.System}e.getAllowSyntheticDefaultImports=hf;function dg(l){return!!(l.declaration||l.composite)}e.getEmitDeclarations=dg;function Lo(l){return!!(l.preserveConstEnums||l.isolatedModules)}e.shouldPreserveConstEnums=Lo;function pg(l){return!!(l.incremental||l.composite)}e.isIncrementalCompilation=pg;function cp(l,$){return l[$]===void 0?!!l.strict:!!l[$]}e.getStrictOptionValue=cp;function up(l){return l.allowJs===void 0?!!l.checkJs:l.allowJs}e.getAllowJSCompilerOption=up;function mg(l){return l.useDefineForClassFields===void 0?l.target===99:l.useDefineForClassFields}e.getUseDefineForClassFields=mg;function Rd(l,$){return X($,l,e.semanticDiagnosticsOptionDeclarations)}e.compilerOptionsAffectSemanticDiagnostics=Rd;function at(l,$){return X($,l,e.affectsEmitOptionDeclarations)}e.compilerOptionsAffectEmit=at;function na(l,$){return $.strictFlag?cp(l,$.name):l[$.name]}e.getCompilerOptionValue=na;function ra(l){var $=l.jsx;return $===2||$===4||$===5}e.getJSXTransformEnabled=ra;function Ta(l,$){var rn=$==null?void 0:$.pragmas.get("jsximportsource"),wn=e.isArray(rn)?rn[rn.length-1]:rn;return l.jsx===4||l.jsx===5||l.jsxImportSource||wn?(wn==null?void 0:wn.arguments.factory)||l.jsxImportSource||"react":void 0}e.getJSXImplicitImportBase=Ta;function Ha(l,$){return l?l+"/"+($.jsx===5?"jsx-dev-runtime":"jsx-runtime"):void 0}e.getJSXRuntimeImport=Ha;function pi(l){for(var $=!1,rn=0;rn0;)pa+=")?",sa--;return pa}}function fv(l,$){return l==="*"?$:l==="?"?"[^/]":"\\"+l}function dv(l,$,rn,wn,Lr){l=e.normalizePath(l),Lr=e.normalizePath(Lr);var At=e.combinePaths(Lr,l);return{includeFilePatterns:e.map(Mc(rn,At,"files"),function(qt){return"^"+qt+"$"}),includeFilePattern:_g(rn,At,"files"),includeDirectoryPattern:_g(rn,At,"directories"),excludePattern:_g($,At,"exclude"),basePaths:qE(l,rn,wn)}}e.getFileMatcherPatterns=dv;function gg(l,$){return new RegExp(l,$?"":"i")}e.getRegexFromPattern=gg;function pv(l,$,rn,wn,Lr,At,qt,pa,li,Gt){l=e.normalizePath(l),At=e.normalizePath(At);for(var Bi=dv(l,rn,wn,Lr,At),sa=Bi.includeFilePatterns&&Bi.includeFilePatterns.map(function(Ef){return gg(Ef,Lr)}),el=Bi.includeDirectoryPattern&&gg(Bi.includeDirectoryPattern,Lr),xs=Bi.excludePattern&&gg(Bi.excludePattern,Lr),jo=sa?sa.map(function(){return[]}):[[]],Ql=new e.Map,Oi=e.createGetCanonicalFileName(Lr),Is=0,jl=Bi.basePaths;Is=0;rn--)if(e.fileExtensionIs(l,$[rn]))return Fh(rn,$);return 0}e.getExtensionPriority=ZE;function Fh(l,$){return l<2?0:l<$.length?2:$.length}e.adjustExtensionPriority=Fh;function $E(l,$){return l<2?2:$.length}e.getNextLowestExtensionPriority=$E;var Bm=[".d.ts",".ts",".js",".tsx",".jsx",".json"];function pm(l){for(var $=0,rn=Bm;$=0)}e.positionIsSynthesized=bc;function hv(l){return l===".ts"||l===".tsx"||l===".d.ts"}e.extensionIsTS=hv;function yv(l){return hv(l)||l===".json"}e.resolutionExtensionIsTSOrJson=yv;function vg(l){var $=hg(l);return $!==void 0?$:e.Debug.fail("File "+l+" has unknown extension.")}e.extensionFromPath=vg;function Xc(l){return hg(l)!==void 0}e.isAnySupportedFileExtension=Xc;function hg(l){return e.find(Bm,function($){return e.fileExtensionIs(l,$)})}e.tryGetExtensionFromPath=hg;function Ev(l,$){return l.checkJsDirective?l.checkJsDirective.enabled:$.checkJs}e.isCheckJsEnabledForFile=Ev,e.emptyFileSystemEntries={files:e.emptyArray,directories:e.emptyArray};function eb(l,$){for(var rn=[],wn=0,Lr=l;wnwn&&(wn=At)}return{min:rn,max:wn}}e.minAndMax=yf;function rd(l){return{pos:ke(l),end:l.end}}e.rangeOfNode=rd;function g_(l,$){var rn=$.pos-1,wn=e.skipTrivia(l.text,$.end)+1;return{pos:rn,end:wn}}e.rangeOfTypeParameters=g_;function Hi(l,$,rn){return $.skipLibCheck&&l.isDeclarationFile||$.skipDefaultLibCheck&&l.hasNoDefaultLib||rn.isSourceOfProjectReferenceRedirect(l.fileName)}e.skipTypeChecking=Hi;function bv(l,$){return l===$||typeof l=="object"&&l!==null&&typeof $=="object"&&$!==null&&e.equalOwnProperties(l,$,bv)}e.isJsonEqual=bv;function nb(l){var $;switch(l.charCodeAt(1)){case 98:case 66:$=1;break;case 111:case 79:$=3;break;case 120:case 88:$=4;break;default:for(var rn=l.length-1,wn=0;l.charCodeAt(wn)===48;)wn++;return l.slice(wn,rn)||"0"}for(var Lr=2,At=l.length-1,qt=(At-Lr)*$,pa=new Uint16Array((qt>>>4)+(qt&15?1:0)),li=At-1,Gt=0;li>=Lr;li--,Gt+=$){var Bi=Gt>>>4,sa=l.charCodeAt(li),el=sa<=57?sa-48:10+sa-(sa<=70?65:97),xs=el<<(Gt&15);pa[Bi]|=xs;var jo=xs>>>16;jo&&(pa[Bi+1]|=jo)}for(var Ql="",Oi=pa.length-1,Is=!0;Is;){var jl=0;Is=!1;for(var Bi=Oi;Bi>=0;Bi--){var mm=jl<<16|pa[Bi],Od=mm/10|0;pa[Bi]=Od,jl=mm-Od*10,Od&&!Is&&(Oi=Bi,Is=!0)}Ql=jl+Ql}return Ql}e.parsePseudoBigInt=nb;function fp(l){var $=l.negative,rn=l.base10Value;return($&&rn!=="0"?"-":"")+rn}e.pseudoBigIntToString=fp;function Wl(l){return!!(l.flags&8388608)||Zo(l)||Sv(l)||tb(l)||!(qo(l)||Tv(l))}e.isValidTypeOnlyAliasUseSite=Wl;function rb(l){return l.kind===273}e.typeOnlyDeclarationIsExport=rb;function Tv(l){return e.isIdentifier(l)&&e.isShorthandPropertyAssignment(l.parent)&&l.parent.name===l}function tb(l){for(;l.kind===79||l.kind===204;)l=l.parent;if(l.kind!==160)return!1;if(Hc(l.parent,128))return!0;var $=l.parent.parent.kind;return $===256||$===180}function Sv(l){if(l.kind!==79)return!1;var $=e.findAncestor(l.parent,function(rn){switch(rn.kind){case 289:return!0;case 204:case 226:return!1;default:return"quit"}});return($==null?void 0:$.token)===117||($==null?void 0:$.parent.kind)===256}function Uh(l){return e.isTypeReferenceNode(l)&&e.isIdentifier(l.typeName)}e.isIdentifierTypeReference=Uh;function Vh(l,$){if($===void 0&&($=e.equateValues),l.length<2)return!0;for(var rn=l[0],wn=1,Lr=l.length;wn3)return!0;var V=e.getExpressionPrecedence(N);switch(e.compareValues(V,c)){case-1:return!(!C&&f===1&&x.kind===222);case 1:return!1;case 0:if(C)return f===1;if(e.isBinaryExpression(N)&&N.operatorToken.kind===E){if(h(E))return!1;if(E===39){var Z=m?v(m):0;if(e.isLiteralKind(Z)&&Z===v(N))return!1}}var S=e.getExpressionAssociativity(N);return S===0}}function h(E){return E===41||E===51||E===50||E===52}function v(E){if(E=e.skipPartiallyEmittedExpressions(E),e.isLiteralKind(E.kind))return E.kind;if(E.kind===219&&E.operatorToken.kind===39){if(E.cachedLiteralKind!==void 0)return E.cachedLiteralKind;var x=v(E.left),C=e.isLiteralKind(x)&&x===v(E.right)?x:0;return E.cachedLiteralKind=C,C}return 0}function I(E,x,C,m){var c=e.skipPartiallyEmittedExpressions(x);return c.kind===210?x:J(E,x,C,m)?d.createParenthesizedExpression(x):x}function X(E,x){return I(E,x,!0)}function se(E,x,C){return I(E,C,!1,x)}function y(E){return e.isCommaSequence(E)?d.createParenthesizedExpression(E):E}function w(E){var x=e.getOperatorPrecedence(220,57),C=e.skipPartiallyEmittedExpressions(E),m=e.getExpressionPrecedence(C);return e.compareValues(m,x)!==1?d.createParenthesizedExpression(E):E}function D(E){var x=e.skipPartiallyEmittedExpressions(E);return e.isCommaSequence(x)?d.createParenthesizedExpression(E):E}function U(E){var x=e.skipPartiallyEmittedExpressions(E),C=e.isCommaSequence(x);if(!C)switch(e.getLeftmostExpression(x,!1).kind){case 224:case 211:C=!0}return C?d.createParenthesizedExpression(E):E}function B(E){var x=e.getLeftmostExpression(E,!0);switch(x.kind){case 206:return d.createParenthesizedExpression(E);case 207:return x.arguments?E:d.createParenthesizedExpression(E)}return R(E)}function R(E){var x=e.skipPartiallyEmittedExpressions(E);return e.isLeftHandSideExpression(x)&&(x.kind!==207||x.arguments)?E:e.setTextRange(d.createParenthesizedExpression(E),E)}function O(E){return e.isLeftHandSideExpression(E)?E:e.setTextRange(d.createParenthesizedExpression(E),E)}function k(E){return e.isUnaryExpression(E)?E:e.setTextRange(d.createParenthesizedExpression(E),E)}function M(E){var x=e.sameMap(E,z);return e.setTextRange(d.createNodeArray(x,E.hasTrailingComma),E)}function z(E){var x=e.skipPartiallyEmittedExpressions(E),C=e.getExpressionPrecedence(x),m=e.getOperatorPrecedence(219,27);return C>m?E:e.setTextRange(d.createParenthesizedExpression(E),E)}function Y(E){var x=e.skipPartiallyEmittedExpressions(E);if(e.isCallExpression(x)){var C=x.expression,m=e.skipPartiallyEmittedExpressions(C).kind;if(m===211||m===212){var c=d.updateCallExpression(x,e.setTextRange(d.createParenthesizedExpression(C),C),x.typeArguments,x.arguments);return d.restoreOuterExpressions(E,c,8)}}var f=e.getLeftmostExpression(x,!1).kind;return f===203||f===211?e.setTextRange(d.createParenthesizedExpression(E),E):E}function ne(E){return!e.isBlock(E)&&(e.isCommaSequence(E)||e.getLeftmostExpression(E,!1).kind===203)?e.setTextRange(d.createParenthesizedExpression(E),E):E}function j(E){return E.kind===187?d.createParenthesizedType(E):E}function H(E){switch(E.kind){case 185:case 186:case 177:case 178:return d.createParenthesizedType(E)}return j(E)}function K(E){switch(E.kind){case 179:case 191:case 188:return d.createParenthesizedType(E)}return H(E)}function ee(E){return d.createNodeArray(e.sameMap(E,H))}function b(E,x){return x===0&&e.isFunctionOrConstructorTypeNode(E)&&E.typeParameters?d.createParenthesizedType(E):E}function A(E){if(e.some(E))return d.createNodeArray(e.sameMap(E,b))}}e.createParenthesizerRules=a,e.nullParenthesizerRules={getParenthesizeLeftSideOfBinaryForOperator:function(d){return e.identity},getParenthesizeRightSideOfBinaryForOperator:function(d){return e.identity},parenthesizeLeftSideOfBinary:function(d,g){return g},parenthesizeRightSideOfBinary:function(d,g,t){return t},parenthesizeExpressionOfComputedPropertyName:e.identity,parenthesizeConditionOfConditionalExpression:e.identity,parenthesizeBranchOfConditionalExpression:e.identity,parenthesizeExpressionOfExportDefault:e.identity,parenthesizeExpressionOfNew:function(d){return e.cast(d,e.isLeftHandSideExpression)},parenthesizeLeftSideOfAccess:function(d){return e.cast(d,e.isLeftHandSideExpression)},parenthesizeOperandOfPostfixUnary:function(d){return e.cast(d,e.isLeftHandSideExpression)},parenthesizeOperandOfPrefixUnary:function(d){return e.cast(d,e.isUnaryExpression)},parenthesizeExpressionsOfCommaDelimitedList:function(d){return e.cast(d,e.isNodeArray)},parenthesizeExpressionForDisallowedComma:e.identity,parenthesizeExpressionOfExpressionStatement:e.identity,parenthesizeConciseBodyOfArrowFunction:e.identity,parenthesizeMemberOfConditionalType:e.identity,parenthesizeMemberOfElementType:e.identity,parenthesizeElementTypeOfArrayType:e.identity,parenthesizeConstituentTypesOfUnionOrIntersectionType:function(d){return e.cast(d,e.isNodeArray)},parenthesizeTypeArguments:function(d){return d&&e.cast(d,e.isNodeArray)}}})(un||(un={}));var un;(function(e){function a(d){return{convertToFunctionBlock:g,convertToFunctionExpression:t,convertToArrayAssignmentElement:p,convertToObjectAssignmentElement:P,convertToAssignmentPattern:J,convertToObjectAssignmentPattern:h,convertToArrayAssignmentPattern:v,convertToAssignmentElementTarget:I};function g(X,se){if(e.isBlock(X))return X;var y=d.createReturnStatement(X);e.setTextRange(y,X);var w=d.createBlock([y],se);return e.setTextRange(w,X),w}function t(X){if(!X.body)return e.Debug.fail("Cannot convert a FunctionDeclaration without a body");var se=d.createFunctionExpression(X.modifiers,X.asteriskToken,X.name,X.typeParameters,X.parameters,X.type,X.body);return e.setOriginalNode(se,X),e.setTextRange(se,X),e.getStartsOnNewLine(X)&&e.setStartsOnNewLine(se,!0),se}function p(X){if(e.isBindingElement(X)){if(X.dotDotDotToken)return e.Debug.assertNode(X.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(d.createSpreadElement(X.name),X),X);var se=I(X.name);return X.initializer?e.setOriginalNode(e.setTextRange(d.createAssignment(se,X.initializer),X),X):se}return e.cast(X,e.isExpression)}function P(X){if(e.isBindingElement(X)){if(X.dotDotDotToken)return e.Debug.assertNode(X.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(d.createSpreadAssignment(X.name),X),X);if(X.propertyName){var se=I(X.name);return e.setOriginalNode(e.setTextRange(d.createPropertyAssignment(X.propertyName,X.initializer?d.createAssignment(se,X.initializer):se),X),X)}return e.Debug.assertNode(X.name,e.isIdentifier),e.setOriginalNode(e.setTextRange(d.createShorthandPropertyAssignment(X.name,X.initializer),X),X)}return e.cast(X,e.isObjectLiteralElementLike)}function J(X){switch(X.kind){case 200:case 202:return v(X);case 199:case 203:return h(X)}}function h(X){return e.isObjectBindingPattern(X)?e.setOriginalNode(e.setTextRange(d.createObjectLiteralExpression(e.map(X.elements,P)),X),X):e.cast(X,e.isObjectLiteralExpression)}function v(X){return e.isArrayBindingPattern(X)?e.setOriginalNode(e.setTextRange(d.createArrayLiteralExpression(e.map(X.elements,p)),X),X):e.cast(X,e.isArrayLiteralExpression)}function I(X){return e.isBindingPattern(X)?J(X):e.cast(X,e.isExpression)}}e.createNodeConverters=a,e.nullNodeConverters={convertToFunctionBlock:e.notImplemented,convertToFunctionExpression:e.notImplemented,convertToArrayAssignmentElement:e.notImplemented,convertToObjectAssignmentElement:e.notImplemented,convertToAssignmentPattern:e.notImplemented,convertToObjectAssignmentPattern:e.notImplemented,convertToArrayAssignmentPattern:e.notImplemented,convertToAssignmentElementTarget:e.notImplemented}})(un||(un={}));var un;(function(e){var a=0;(function(K){K[K.None=0]="None",K[K.NoParenthesizerRules=1]="NoParenthesizerRules",K[K.NoNodeConverters=2]="NoNodeConverters",K[K.NoIndentationOnFreshPropertyAccess=4]="NoIndentationOnFreshPropertyAccess",K[K.NoOriginalNode=8]="NoOriginalNode"})(e.NodeFactoryFlags||(e.NodeFactoryFlags={}));function d(K,ee){var b=K&8?g:t,A=e.memoize(function(){return K&1?e.nullParenthesizerRules:e.createParenthesizerRules(ge)}),E=e.memoize(function(){return K&2?e.nullNodeConverters:e.createNodeConverters(ge)}),x=e.memoizeOne(function(_){return function(W,ve){return ui(W,_,ve)}}),C=e.memoizeOne(function(_){return function(W){return it(_,W)}}),m=e.memoizeOne(function(_){return function(W){return oa(W,_)}}),c=e.memoizeOne(function(_){return function(){return jc(_)}}),f=e.memoizeOne(function(_){return function(W){return Yi(_,W)}}),N=e.memoizeOne(function(_){return function(W,ve){return Wo(_,W,ve)}}),V=e.memoizeOne(function(_){return function(W,ve){return np(_,W,ve)}}),Z=e.memoizeOne(function(_){return function(W,ve,en){return Kf(_,W,ve,en)}}),S=e.memoizeOne(function(_){return function(W,ve,en){return ac(_,W,ve,en)}}),ce=e.memoizeOne(function(_){return function(W,ve,en,Fn){return Sd(_,W,ve,en,Fn)}}),ge={get parenthesizer(){return A()},get converters(){return E()},createNodeArray:ae,createNumericLiteral:ye,createBigIntLiteral:Ie,createStringLiteral:Sn,createStringLiteralFromNode:Me,createRegularExpressionLiteral:we,createLiteralLikeNode:ze,createIdentifier:vn,updateIdentifier:Nn,createTempVariable:Kn,createLoopVariable:$e,createUniqueName:ie,getGeneratedNameForNode:dn,createPrivateIdentifier:Tn,createToken:oe,createSuper:Be,createThis:Te,createNull:qe,createTrue:cn,createFalse:be,createModifier:Xe,createModifiersFromModifierFlags:En,createQualifiedName:Pe,updateQualifiedName:he,createComputedPropertyName:ln,updateComputedPropertyName:sn,createTypeParameterDeclaration:An,updateTypeParameterDeclaration:Un,createParameterDeclaration:pr,updateParameterDeclaration:Cr,createDecorator:xr,updateDecorator:Gr,createPropertySignature:Ve,updatePropertySignature:Ln,createPropertyDeclaration:Wn,updatePropertyDeclaration:Je,createMethodSignature:kn,updateMethodSignature:Qn,createMethodDeclaration:jn,updateMethodDeclaration:on,createConstructorDeclaration:tn,updateConstructorDeclaration:le,createGetAccessorDeclaration:Vn,updateGetAccessorDeclaration:or,createSetAccessorDeclaration:bn,updateSetAccessorDeclaration:In,createCallSignature:pn,updateCallSignature:Rn,createConstructSignature:hn,updateConstructSignature:rr,createIndexSignature:lr,updateIndexSignature:dr,createClassStaticBlockDeclaration:fe,updateClassStaticBlockDeclaration:Ge,createTemplateLiteralTypeSpan:gr,updateTemplateLiteralTypeSpan:zr,createKeywordTypeNode:Tt,createTypePredicateNode:ht,updateTypePredicateNode:Or,createTypeReferenceNode:dt,updateTypeReferenceNode:qr,createFunctionTypeNode:Xt,updateFunctionTypeNode:fr,createConstructorTypeNode:Pt,updateConstructorTypeNode:Ka,createTypeQueryNode:ta,updateTypeQueryNode:yr,createTypeLiteralNode:Kr,updateTypeLiteralNode:Vr,createArrayTypeNode:wt,updateArrayTypeNode:Bt,createTupleTypeNode:Tr,updateTupleTypeNode:vr,createNamedTupleMember:Br,updateNamedTupleMember:Wr,createOptionalTypeNode:tt,updateOptionalTypeNode:er,createRestTypeNode:Zt,updateRestTypeNode:Ra,createUnionTypeNode:Fa,updateUnionTypeNode:ei,createIntersectionTypeNode:Di,updateIntersectionTypeNode:Vi,createConditionalTypeNode:ni,updateConditionalTypeNode:Ti,createInferTypeNode:Ci,updateInferTypeNode:Zi,createImportTypeNode:Ri,updateImportTypeNode:zi,createParenthesizedType:Qo,updateParenthesizedType:Pa,createThisTypeNode:co,createTypeOperatorNode:za,updateTypeOperatorNode:fi,createIndexedAccessTypeNode:Wi,updateIndexedAccessTypeNode:_o,createMappedTypeNode:No,updateMappedTypeNode:Mo,createLiteralTypeNode:yo,updateLiteralTypeNode:qo,createTemplateLiteralType:Ki,updateTemplateLiteralType:ho,createObjectBindingPattern:So,updateObjectBindingPattern:Zo,createArrayBindingPattern:fn,updateArrayBindingPattern:cr,createBindingElement:Hr,updateBindingElement:zt,createArrayLiteralExpression:Zn,updateArrayLiteralExpression:Pr,createObjectLiteralExpression:te,updateObjectLiteralExpression:Q,createPropertyAccessExpression:K&4?function(_,W){return e.setEmitFlags(Ae(_,W),131072)}:Ae,updatePropertyAccessExpression:Fe,createPropertyAccessChain:K&4?function(_,W,ve){return e.setEmitFlags(Ze(_,W,ve),131072)}:Ze,updatePropertyAccessChain:Gn,createElementAccessExpression:Yn,updateElementAccessExpression:_r,createElementAccessChain:kr,updateElementAccessChain:Et,createCallExpression:Vt,updateCallExpression:Ea,createCallChain:da,updateCallChain:ai,createNewExpression:ji,updateNewExpression:wi,createTaggedTemplateExpression:Gi,updateTaggedTemplateExpression:hs,createTypeAssertion:as,updateTypeAssertion:cs,createParenthesizedExpression:ks,updateParenthesizedExpression:pl,createFunctionExpression:ml,updateFunctionExpression:yl,createArrowFunction:Ss,updateArrowFunction:Es,createDeleteExpression:sl,updateDeleteExpression:El,createTypeOfExpression:bs,updateTypeOfExpression:pe,createVoidExpression:Pn,updateVoidExpression:mr,createAwaitExpression:Ce,updateAwaitExpression:Xn,createPrefixUnaryExpression:it,updatePrefixUnaryExpression:Wt,createPostfixUnaryExpression:oa,updatePostfixUnaryExpression:ci,createBinaryExpression:ui,updateBinaryExpression:$o,createConditionalExpression:Jo,updateConditionalExpression:Ms,createTemplateExpression:Hs,updateTemplateExpression:Li,createTemplateHead:ec,createTemplateMiddle:ql,createTemplateTail:Du,createNoSubstitutionTemplateLiteral:bl,createTemplateLiteralLikeNode:ll,createYieldExpression:Lc,updateYieldExpression:Ac,createSpreadElement:Tl,updateSpreadElement:Dn,createClassExpression:nr,updateClassExpression:Sr,createOmittedExpression:Qr,createExpressionWithTypeArguments:lt,updateExpressionWithTypeArguments:ct,createAsExpression:Nt,updateAsExpression:Jt,createNonNullExpression:Ut,updateNonNullExpression:ii,createNonNullChain:ga,updateNonNullChain:Ia,createMetaProperty:_e,updateMetaProperty:nn,createTemplateSpan:_n,updateTemplateSpan:sr,createSemicolonClassElement:$r,createBlock:Ft,updateBlock:Lt,createVariableStatement:Na,updateVariableStatement:Ni,createEmptyStatement:qi,createExpressionStatement:go,updateExpressionStatement:di,createIfStatement:io,updateIfStatement:wo,createDoStatement:ko,updateDoStatement:On,createWhileStatement:Rs,updateWhileStatement:Pl,createForStatement:_l,updateForStatement:wu,createForInStatement:Cl,updateForInStatement:au,createForOfStatement:Xi,updateForOfStatement:gl,createContinueStatement:iu,updateContinueStatement:Fu,createBreakStatement:ou,updateBreakStatement:Ff,createReturnStatement:Qu,updateReturnStatement:ud,createWithStatement:nc,updateWithStatement:fd,createSwitchStatement:dd,updateSwitchStatement:ja,createLabeledStatement:aa,updateLabeledStatement:Cc,createThrowStatement:Ro,updateThrowStatement:pd,createTryStatement:fc,updateTryStatement:Ap,createDebuggerStatement:Fo,createVariableDeclaration:xc,updateVariableDeclaration:Os,createVariableDeclarationList:dc,updateVariableDeclarationList:vl,createFunctionDeclaration:xl,updateFunctionDeclaration:Gf,createClassDeclaration:md,updateClassDeclaration:_d,createInterfaceDeclaration:Jd,updateInterfaceDeclaration:Cp,createTypeAliasDeclaration:xp,updateTypeAliasDeclaration:Kd,createEnumDeclaration:Ip,updateEnumDeclaration:Np,createModuleDeclaration:zd,updateModuleDeclaration:Bf,createModuleBlock:kp,updateModuleBlock:Uf,createCaseBlock:gd,updateCaseBlock:qd,createNamespaceExportDeclaration:rc,updateNamespaceExportDeclaration:Vf,createImportEqualsDeclaration:Zu,updateImportEqualsDeclaration:vd,createImportDeclaration:Wc,updateImportDeclaration:pc,createImportClause:$u,updateImportClause:hd,createNamespaceImport:Rp,updateNamespaceImport:Op,createNamespaceExport:su,updateNamespaceExport:Pp,createNamedImports:Xd,updateNamedImports:yd,createImportSpecifier:ef,updateImportSpecifier:Yd,createExportAssignment:lu,updateExportAssignment:Qd,createExportDeclaration:cu,updateExportDeclaration:Wf,createNamedExports:Ds,updateNamedExports:Ic,createExportSpecifier:uu,updateExportSpecifier:Ed,createMissingDeclaration:Zd,createExternalModuleReference:nf,updateExternalModuleReference:rf,get createJSDocAllType(){return c(307)},get createJSDocUnknownType(){return c(308)},get createJSDocNonNullableType(){return f(310)},get updateJSDocNonNullableType(){return N(310)},get createJSDocNullableType(){return f(309)},get updateJSDocNullableType(){return N(309)},get createJSDocOptionalType(){return f(311)},get updateJSDocOptionalType(){return N(311)},get createJSDocVariadicType(){return f(313)},get updateJSDocVariadicType(){return N(313)},get createJSDocNamepathType(){return f(314)},get updateJSDocNamepathType(){return N(314)},createJSDocFunctionType:Sl,updateJSDocFunctionType:ws,createJSDocTypeLiteral:$d,updateJSDocTypeLiteral:Nc,createJSDocTypeExpression:tf,updateJSDocTypeExpression:fu,createJSDocSignature:oo,updateJSDocSignature:af,createJSDocTemplateTag:Mp,updateJSDocTemplateTag:ep,createJSDocTypedefTag:jf,updateJSDocTypedefTag:kt,createJSDocParameterTag:so,updateJSDocParameterTag:Ya,createJSDocPropertyTag:mc,updateJSDocPropertyTag:bd,createJSDocCallbackTag:kc,updateJSDocCallbackTag:ut,createJSDocAugmentsTag:of,updateJSDocAugmentsTag:es,createJSDocImplementsTag:us,updateJSDocImplementsTag:hl,createJSDocSeeTag:ul,updateJSDocSeeTag:sf,createJSDocNameReference:Td,updateJSDocNameReference:Lu,createJSDocMemberName:Au,updateJSDocMemberName:lf,createJSDocLink:Ls,updateJSDocLink:tc,createJSDocLinkCode:Hf,updateJSDocLinkCode:Jf,createJSDocLinkPlain:Ji,updateJSDocLinkPlain:bt,get createJSDocTypeTag(){return S(338)},get updateJSDocTypeTag(){return ce(338)},get createJSDocReturnTag(){return S(336)},get updateJSDocReturnTag(){return ce(336)},get createJSDocThisTag(){return S(337)},get updateJSDocThisTag(){return ce(337)},get createJSDocEnumTag(){return S(334)},get updateJSDocEnumTag(){return ce(334)},get createJSDocAuthorTag(){return V(325)},get updateJSDocAuthorTag(){return Z(325)},get createJSDocClassTag(){return V(327)},get updateJSDocClassTag(){return Z(327)},get createJSDocPublicTag(){return V(328)},get updateJSDocPublicTag(){return Z(328)},get createJSDocPrivateTag(){return V(329)},get updateJSDocPrivateTag(){return Z(329)},get createJSDocProtectedTag(){return V(330)},get updateJSDocProtectedTag(){return Z(330)},get createJSDocReadonlyTag(){return V(331)},get updateJSDocReadonlyTag(){return Z(331)},get createJSDocOverrideTag(){return V(332)},get updateJSDocOverrideTag(){return Z(332)},get createJSDocDeprecatedTag(){return V(326)},get updateJSDocDeprecatedTag(){return Z(326)},createJSDocUnknownTag:Gu,updateJSDocUnknownTag:Ml,createJSDocText:_c,updateJSDocText:Rc,createJSDocComment:ic,updateJSDocComment:Qs,createJsxElement:is,updateJsxElement:Xo,createJsxSelfClosingElement:ys,updateJsxSelfClosingElement:Hc,createJsxOpeningElement:Xl,updateJsxOpeningElement:As,createJsxClosingElement:du,updateJsxClosingElement:wp,createJsxFragment:fl,createJsxText:zf,updateJsxText:Cu,createJsxOpeningFragment:Jc,createJsxJsxClosingFragment:Bu,updateJsxFragment:Eo,createJsxAttribute:rp,updateJsxAttribute:tp,createJsxAttributes:cf,updateJsxAttributes:Uu,createJsxSpreadAttribute:qf,updateJsxSpreadAttribute:uf,createJsxExpression:xu,updateJsxExpression:Xf,createCaseClause:ff,updateCaseClause:Dd,createDefaultClause:Iu,updateDefaultClause:Yf,createHeritageClause:Qf,updateHeritageClause:Oa,createCatchClause:wl,updateCatchClause:pt,createPropertyAssignment:Zf,updatePropertyAssignment:Oc,createShorthandPropertyAssignment:Ld,updateShorthandPropertyAssignment:mu,createSpreadAssignment:Fl,updateSpreadAssignment:gc,createEnumMember:pf,updateEnumMember:mf,createSourceFile:Fp,updateSourceFile:$f,createBundle:_u,updateBundle:Kc,createUnparsedSource:Ad,createUnparsedPrologue:Cd,createUnparsedPrepend:xd,createUnparsedTextLike:oc,createUnparsedSyntheticReference:_f,createInputFiles:Gp,createSyntheticExpression:os,createSyntaxList:ip,createNotEmittedStatement:Ai,createPartiallyEmittedExpression:Vu,updatePartiallyEmittedExpression:Nu,createCommaListExpression:Wu,updateCommaListExpression:gf,createEndOfDeclarationMarker:T,createMergeDeclarationMarker:Ye,createSyntheticReferenceExpression:ar,updateSyntheticReferenceExpression:Nr,cloneNode:ia,get createComma(){return x(27)},get createAssignment(){return x(63)},get createLogicalOr(){return x(56)},get createLogicalAnd(){return x(55)},get createBitwiseOr(){return x(51)},get createBitwiseXor(){return x(52)},get createBitwiseAnd(){return x(50)},get createStrictEquality(){return x(36)},get createStrictInequality(){return x(37)},get createEquality(){return x(34)},get createInequality(){return x(35)},get createLessThan(){return x(29)},get createLessThanEquals(){return x(32)},get createGreaterThan(){return x(31)},get createGreaterThanEquals(){return x(33)},get createLeftShift(){return x(47)},get createRightShift(){return x(48)},get createUnsignedRightShift(){return x(49)},get createAdd(){return x(39)},get createSubtract(){return x(40)},get createMultiply(){return x(41)},get createDivide(){return x(43)},get createModulo(){return x(44)},get createExponent(){return x(42)},get createPrefixPlus(){return C(39)},get createPrefixMinus(){return C(40)},get createPrefixIncrement(){return C(45)},get createPrefixDecrement(){return C(46)},get createBitwiseNot(){return C(54)},get createLogicalNot(){return C(53)},get createPostfixIncrement(){return m(45)},get createPostfixDecrement(){return m(46)},createImmediatelyInvokedFunctionExpression:ba,createImmediatelyInvokedArrowFunction:La,createVoidZero:wa,createExportDefault:xi,createExternalModuleExport:Do,createTypeCheck:Io,createMethodCall:Ko,createGlobalMethodCall:hc,createFunctionBindCall:Yo,createFunctionCallCall:Js,createFunctionApplyCall:vc,createArraySliceCall:sc,createArrayConcatCall:ju,createObjectDefinePropertyCall:Bp,createReflectGetCall:Up,createReflectSetCall:Vp,createPropertyDescriptor:sp,createCallBinding:zc,createAssignmentTargetWrapper:Se,inlineExpressions:gn,getInternalName:ir,getLocalName:Ar,getExportName:Xr,getDeclarationName:Ct,getNamespaceMemberName:jt,getExternalModuleOrNamespaceExportName:Qa,restoreOuterExpressions:Pm,restoreEnclosingLabel:lm,createUseStrictPrologue:zo,copyPrologue:va,copyStandardPrologue:no,copyCustomPrologue:Oo,ensureUseStrict:fs,liftToBlock:Gs,mergeLexicalEnvironment:Hu,updateModifiers:Dl};return ge;function ae(_,W){if(_===void 0||_===e.emptyArray)_=[];else if(e.isNodeArray(_)){if(W===void 0||_.hasTrailingComma===W)return _.transformFlags===void 0&&y(_),e.Debug.attachNodeArrayDebugInfo(_),_;var ve=_.slice();return ve.pos=_.pos,ve.end=_.end,ve.hasTrailingComma=W,ve.transformFlags=_.transformFlags,e.Debug.attachNodeArrayDebugInfo(ve),ve}var en=_.length,Fn=en>=1&&en<=4?_.slice():_;return e.setTextRangePosEnd(Fn,-1,-1),Fn.hasTrailingComma=!!W,y(Fn),e.Debug.attachNodeArrayDebugInfo(Fn),Fn}function F(_){return ee.createBaseNode(_)}function re(_,W,ve){var en=F(_);return en.decorators=dl(W),en.modifiers=dl(ve),en.transformFlags|=se(en.decorators)|se(en.modifiers),en.symbol=void 0,en.localSymbol=void 0,en.locals=void 0,en.nextContainer=void 0,en}function q(_,W,ve,en){var Fn=re(_,W,ve);if(en=Bs(en),Fn.name=en,en)switch(Fn.kind){case 167:case 170:case 171:case 165:case 291:if(e.isIdentifier(en)){Fn.transformFlags|=v(en);break}default:Fn.transformFlags|=X(en);break}return Fn}function ue(_,W,ve,en,Fn){var Ur=q(_,W,ve,en);return Ur.typeParameters=dl(Fn),Ur.transformFlags|=se(Ur.typeParameters),Fn&&(Ur.transformFlags|=1),Ur}function ke(_,W,ve,en,Fn,Ur,yt){var Ma=ue(_,W,ve,en,Fn);return Ma.parameters=ae(Ur),Ma.type=yt,Ma.transformFlags|=se(Ma.parameters)|X(Ma.type),yt&&(Ma.transformFlags|=1),Ma}function de(_,W){return W.typeArguments&&(_.typeArguments=W.typeArguments),b(_,W)}function xe(_,W,ve,en,Fn,Ur,yt,Ma){var bo=ke(_,W,ve,en,Fn,Ur,yt);return bo.body=Ma,bo.transformFlags|=X(bo.body)&~16777216,Ma||(bo.transformFlags|=1),bo}function Le(_,W){return W.exclamationToken&&(_.exclamationToken=W.exclamationToken),W.typeArguments&&(_.typeArguments=W.typeArguments),de(_,W)}function He(_,W,ve,en,Fn,Ur){var yt=ue(_,W,ve,en,Fn);return yt.heritageClauses=dl(Ur),yt.transformFlags|=se(yt.heritageClauses),yt}function Ne(_,W,ve,en,Fn,Ur,yt){var Ma=He(_,W,ve,en,Fn,Ur);return Ma.members=ae(yt),Ma.transformFlags|=se(Ma.members),Ma}function De(_,W,ve,en,Fn){var Ur=q(_,W,ve,en);return Ur.initializer=Fn,Ur.transformFlags|=X(Ur.initializer),Ur}function Ee(_,W,ve,en,Fn,Ur){var yt=De(_,W,ve,en,Ur);return yt.type=Fn,yt.transformFlags|=X(Fn),Fn&&(yt.transformFlags|=1),yt}function We(_,W){var ve=qn(_);return ve.text=W,ve}function ye(_,W){W===void 0&&(W=0);var ve=We(8,typeof _=="number"?_+"":_);return ve.numericLiteralFlags=W,W&384&&(ve.transformFlags|=512),ve}function Ie(_){var W=We(9,typeof _=="string"?_:e.pseudoBigIntToString(_)+"n");return W.transformFlags|=4,W}function je(_,W){var ve=We(10,_);return ve.singleQuote=W,ve}function Sn(_,W,ve){var en=je(_,W);return en.hasExtendedUnicodeEscape=ve,ve&&(en.transformFlags|=512),en}function Me(_){var W=je(e.getTextOfIdentifierOrLiteral(_),void 0);return W.textSourceNode=_,W}function we(_){var W=We(13,_);return W}function ze(_,W){switch(_){case 8:return ye(W,0);case 9:return Ie(W);case 10:return Sn(W,void 0);case 11:return zf(W,!1);case 12:return zf(W,!0);case 13:return we(W);case 14:return ll(_,W,void 0,0)}}function Cn(_,W){W===void 0&&_&&(W=e.stringToToken(_)),W===79&&(W=void 0);var ve=ee.createBaseIdentifierNode(79);return ve.originalKeywordKind=W,ve.escapedText=e.escapeLeadingUnderscores(_),ve}function an(_,W){var ve=Cn(_,void 0);return ve.autoGenerateFlags=W,ve.autoGenerateId=a,a++,ve}function vn(_,W,ve){var en=Cn(_,ve);return W&&(en.typeArguments=ae(W)),en.originalKeywordKind===131&&(en.transformFlags|=16777216),en}function Nn(_,W){return _.typeArguments!==W?b(vn(e.idText(_),W),_):_}function Kn(_,W){var ve=1;W&&(ve|=8);var en=an("",ve);return _&&_(en),en}function $e(_){var W=2;return _&&(W|=8),an("",W)}function ie(_,W){return W===void 0&&(W=0),e.Debug.assert(!(W&7),"Argument out of range: flags"),e.Debug.assert((W&(16|32))!=32,"GeneratedIdentifierFlags.FileLevel cannot be set without also setting GeneratedIdentifierFlags.Optimistic"),an(_,3|W)}function dn(_,W){W===void 0&&(W=0),e.Debug.assert(!(W&7),"Argument out of range: flags");var ve=an(_&&e.isIdentifier(_)?e.idText(_):"",4|W);return ve.original=_,ve}function Tn(_){e.startsWith(_,"#")||e.Debug.fail("First character of private identifier must be #: "+_);var W=ee.createBasePrivateIdentifierNode(80);return W.escapedText=e.escapeLeadingUnderscores(_),W.transformFlags|=8388608,W}function qn(_){return ee.createBaseTokenNode(_)}function oe(_){e.Debug.assert(_>=0&&_<=158,"Invalid token"),e.Debug.assert(_<=14||_>=17,"Invalid token. Use 'createTemplateLiteralLikeNode' to create template literals."),e.Debug.assert(_<=8||_>=14,"Invalid token. Use 'createLiteralLikeNode' to create literals."),e.Debug.assert(_!==79,"Invalid token. Use 'createIdentifier' to create identifiers");var W=qn(_),ve=0;switch(_){case 130:ve=128|64;break;case 123:case 121:case 122:case 143:case 126:case 134:case 85:case 129:case 145:case 156:case 142:case 146:case 157:case 148:case 132:case 149:case 114:case 153:case 151:ve=1;break;case 106:ve=512|33554432;break;case 124:ve=512;break;case 108:ve=8192;break}return ve&&(W.transformFlags|=ve),W}function Be(){return oe(106)}function Te(){return oe(108)}function qe(){return oe(104)}function cn(){return oe(110)}function be(){return oe(95)}function Xe(_){return oe(_)}function En(_){var W=[];return _&1&&W.push(Xe(93)),_&2&&W.push(Xe(134)),_&512&&W.push(Xe(88)),_&2048&&W.push(Xe(85)),_&4&&W.push(Xe(123)),_&8&&W.push(Xe(121)),_&16&&W.push(Xe(122)),_&128&&W.push(Xe(126)),_&32&&W.push(Xe(124)),_&16384&&W.push(Xe(157)),_&64&&W.push(Xe(143)),_&256&&W.push(Xe(130)),W}function Pe(_,W){var ve=F(159);return ve.left=_,ve.right=Bs(W),ve.transformFlags|=X(ve.left)|v(ve.right),ve}function he(_,W,ve){return _.left!==W||_.right!==ve?b(Pe(W,ve),_):_}function ln(_){var W=F(160);return W.expression=A().parenthesizeExpressionOfComputedPropertyName(_),W.transformFlags|=X(W.expression)|512|65536,W}function sn(_,W){return _.expression!==W?b(ln(W),_):_}function An(_,W,ve){var en=q(161,void 0,void 0,_);return en.constraint=W,en.default=ve,en.transformFlags=1,en}function Un(_,W,ve,en){return _.name!==W||_.constraint!==ve||_.default!==en?b(An(W,ve,en),_):_}function pr(_,W,ve,en,Fn,Ur,yt){var Ma=Ee(162,_,W,en,Ur,yt&&A().parenthesizeExpressionForDisallowedComma(yt));return Ma.dotDotDotToken=ve,Ma.questionToken=Fn,e.isThisIdentifier(Ma.name)?Ma.transformFlags=1:(Ma.transformFlags|=X(Ma.dotDotDotToken)|X(Ma.questionToken),Fn&&(Ma.transformFlags|=1),e.modifiersToFlags(Ma.modifiers)&16476&&(Ma.transformFlags|=4096),(yt||ve)&&(Ma.transformFlags|=512)),Ma}function Cr(_,W,ve,en,Fn,Ur,yt,Ma){return _.decorators!==W||_.modifiers!==ve||_.dotDotDotToken!==en||_.name!==Fn||_.questionToken!==Ur||_.type!==yt||_.initializer!==Ma?b(pr(W,ve,en,Fn,Ur,yt,Ma),_):_}function xr(_){var W=F(163);return W.expression=A().parenthesizeLeftSideOfAccess(_),W.transformFlags|=X(W.expression)|1|4096,W}function Gr(_,W){return _.expression!==W?b(xr(W),_):_}function Ve(_,W,ve,en){var Fn=q(164,void 0,_,W);return Fn.type=en,Fn.questionToken=ve,Fn.transformFlags=1,Fn}function Ln(_,W,ve,en,Fn){return _.modifiers!==W||_.name!==ve||_.questionToken!==en||_.type!==Fn?b(Ve(W,ve,en,Fn),_):_}function Wn(_,W,ve,en,Fn,Ur){var yt=Ee(165,_,W,ve,Fn,Ur);return yt.questionToken=en&&e.isQuestionToken(en)?en:void 0,yt.exclamationToken=en&&e.isExclamationToken(en)?en:void 0,yt.transformFlags|=X(yt.questionToken)|X(yt.exclamationToken)|8388608,(e.isComputedPropertyName(yt.name)||e.hasStaticModifier(yt)&&yt.initializer)&&(yt.transformFlags|=4096),(en||e.modifiersToFlags(yt.modifiers)&2)&&(yt.transformFlags|=1),yt}function Je(_,W,ve,en,Fn,Ur,yt){return _.decorators!==W||_.modifiers!==ve||_.name!==en||_.questionToken!==(Fn!==void 0&&e.isQuestionToken(Fn)?Fn:void 0)||_.exclamationToken!==(Fn!==void 0&&e.isExclamationToken(Fn)?Fn:void 0)||_.type!==Ur||_.initializer!==yt?b(Wn(W,ve,en,Fn,Ur,yt),_):_}function kn(_,W,ve,en,Fn,Ur){var yt=ke(166,void 0,_,W,en,Fn,Ur);return yt.questionToken=ve,yt.transformFlags=1,yt}function Qn(_,W,ve,en,Fn,Ur,yt){return _.modifiers!==W||_.name!==ve||_.questionToken!==en||_.typeParameters!==Fn||_.parameters!==Ur||_.type!==yt?de(kn(W,ve,en,Fn,Ur,yt),_):_}function jn(_,W,ve,en,Fn,Ur,yt,Ma,bo){var ds=xe(167,_,W,en,Ur,yt,Ma,bo);return ds.asteriskToken=ve,ds.questionToken=Fn,ds.transformFlags|=X(ds.asteriskToken)|X(ds.questionToken)|512,Fn&&(ds.transformFlags|=1),e.modifiersToFlags(ds.modifiers)&256?ve?ds.transformFlags|=64:ds.transformFlags|=128:ve&&(ds.transformFlags|=1024),ds}function on(_,W,ve,en,Fn,Ur,yt,Ma,bo,ds){return _.decorators!==W||_.modifiers!==ve||_.asteriskToken!==en||_.name!==Fn||_.questionToken!==Ur||_.typeParameters!==yt||_.parameters!==Ma||_.type!==bo||_.body!==ds?Le(jn(W,ve,en,Fn,Ur,yt,Ma,bo,ds),_):_}function fe(_,W,ve){var en=ue(168,_,W,void 0,void 0);return en.body=ve,en.transformFlags=X(ve)|8388608,en}function Ge(_,W,ve,en){return _.decorators!==W||_.modifier!==ve||_.body!==en?b(fe(W,ve,en),_):_}function tn(_,W,ve,en){var Fn=xe(169,_,W,void 0,void 0,ve,void 0,en);return Fn.transformFlags|=512,Fn}function le(_,W,ve,en,Fn){return _.decorators!==W||_.modifiers!==ve||_.parameters!==en||_.body!==Fn?Le(tn(W,ve,en,Fn),_):_}function Vn(_,W,ve,en,Fn,Ur){return xe(170,_,W,ve,void 0,en,Fn,Ur)}function or(_,W,ve,en,Fn,Ur,yt){return _.decorators!==W||_.modifiers!==ve||_.name!==en||_.parameters!==Fn||_.type!==Ur||_.body!==yt?Le(Vn(W,ve,en,Fn,Ur,yt),_):_}function bn(_,W,ve,en,Fn){return xe(171,_,W,ve,void 0,en,void 0,Fn)}function In(_,W,ve,en,Fn,Ur){return _.decorators!==W||_.modifiers!==ve||_.name!==en||_.parameters!==Fn||_.body!==Ur?Le(bn(W,ve,en,Fn,Ur),_):_}function pn(_,W,ve){var en=ke(172,void 0,void 0,void 0,_,W,ve);return en.transformFlags=1,en}function Rn(_,W,ve,en){return _.typeParameters!==W||_.parameters!==ve||_.type!==en?de(pn(W,ve,en),_):_}function hn(_,W,ve){var en=ke(173,void 0,void 0,void 0,_,W,ve);return en.transformFlags=1,en}function rr(_,W,ve,en){return _.typeParameters!==W||_.parameters!==ve||_.type!==en?de(hn(W,ve,en),_):_}function lr(_,W,ve,en){var Fn=ke(174,_,W,void 0,void 0,ve,en);return Fn.transformFlags=1,Fn}function dr(_,W,ve,en,Fn){return _.parameters!==en||_.type!==Fn||_.decorators!==W||_.modifiers!==ve?de(lr(W,ve,en,Fn),_):_}function gr(_,W){var ve=F(197);return ve.type=_,ve.literal=W,ve.transformFlags=1,ve}function zr(_,W,ve){return _.type!==W||_.literal!==ve?b(gr(W,ve),_):_}function Tt(_){return oe(_)}function ht(_,W,ve){var en=F(175);return en.assertsModifier=_,en.parameterName=Bs(W),en.type=ve,en.transformFlags=1,en}function Or(_,W,ve,en){return _.assertsModifier!==W||_.parameterName!==ve||_.type!==en?b(ht(W,ve,en),_):_}function dt(_,W){var ve=F(176);return ve.typeName=Bs(_),ve.typeArguments=W&&A().parenthesizeTypeArguments(ae(W)),ve.transformFlags=1,ve}function qr(_,W,ve){return _.typeName!==W||_.typeArguments!==ve?b(dt(W,ve),_):_}function Xt(_,W,ve){var en=ke(177,void 0,void 0,void 0,_,W,ve);return en.transformFlags=1,en}function fr(_,W,ve,en){return _.typeParameters!==W||_.parameters!==ve||_.type!==en?de(Xt(W,ve,en),_):_}function Pt(){for(var _=[],W=0;W0;default:return!0}}function zc(_,W,ve,en){en===void 0&&(en=!1);var Fn=e.skipOuterExpressions(_,15),Ur,yt;return e.isSuperProperty(Fn)?(Ur=Te(),yt=Fn):e.isSuperKeyword(Fn)?(Ur=Te(),yt=ve!==void 0&&ve<2?e.setTextRange(vn("_super"),Fn):Fn):e.getEmitFlags(Fn)&4096?(Ur=wa(),yt=A().parenthesizeLeftSideOfAccess(Fn)):e.isPropertyAccessExpression(Fn)?vf(Fn.expression,en)?(Ur=Kn(W),yt=Ae(e.setTextRange(ge.createAssignment(Ur,Fn.expression),Fn.expression),Fn.name),e.setTextRange(yt,Fn)):(Ur=Fn.expression,yt=Fn):e.isElementAccessExpression(Fn)?vf(Fn.expression,en)?(Ur=Kn(W),yt=Yn(e.setTextRange(ge.createAssignment(Ur,Fn.expression),Fn.expression),Fn.argumentExpression),e.setTextRange(yt,Fn)):(Ur=Fn.expression,yt=Fn):(Ur=wa(),yt=A().parenthesizeLeftSideOfAccess(_)),{target:yt,thisArg:Ur}}function Se(_,W){return Ae(ks(te([bn(void 0,void 0,"value",[pr(void 0,void 0,void 0,_,void 0,void 0,void 0)],Ft([go(W)]))])),"value")}function gn(_){return _.length>10?Wu(_):e.reduceLeft(_,ge.createComma)}function Mn(_,W,ve,en){en===void 0&&(en=0);var Fn=e.getNameOfDeclaration(_);if(Fn&&e.isIdentifier(Fn)&&!e.isGeneratedIdentifier(Fn)){var Ur=e.setParent(e.setTextRange(ia(Fn),Fn),Fn.parent);return en|=e.getEmitFlags(Fn),ve||(en|=48),W||(en|=1536),en&&e.setEmitFlags(Ur,en),Ur}return dn(_)}function ir(_,W,ve){return Mn(_,W,ve,16384|32768)}function Ar(_,W,ve){return Mn(_,W,ve,16384)}function Xr(_,W,ve){return Mn(_,W,ve,8192)}function Ct(_,W,ve){return Mn(_,W,ve)}function jt(_,W,ve,en){var Fn=Ae(_,e.nodeIsSynthesized(W)?W:ia(W));e.setTextRange(Fn,W);var Ur=0;return en||(Ur|=48),ve||(Ur|=1536),Ur&&e.setEmitFlags(Fn,Ur),Fn}function Qa(_,W,ve,en){return _&&e.hasSyntacticModifier(W,1)?jt(_,Mn(W),ve,en):Xr(W,ve,en)}function va(_,W,ve,en){var Fn=no(_,W,ve);return Oo(_,W,Fn,en)}function $i(_){return e.isStringLiteral(_.expression)&&_.expression.text==="use strict"}function zo(){return e.startOnNewLine(go(Sn("use strict")))}function no(_,W,ve){e.Debug.assert(W.length===0,"Prologue directives should be at the first statement in the target statements array");for(var en=!1,Fn=0,Ur=_.length;FnMa&&ds.splice.apply(ds,Mr([Fn,0],W.slice(Ma,bo),!1)),Ma>yt&&ds.splice.apply(ds,Mr([en,0],W.slice(yt,Ma),!1)),yt>Ur&&ds.splice.apply(ds,Mr([ve,0],W.slice(Ur,yt),!1)),Ur>0)if(ve===0)ds.splice.apply(ds,Mr([0,0],W.slice(0,Ur),!1));else{for(var lp=new e.Map,yc=0;yc=0;yc--){var Id=W[yc];lp.has(Id.expression.text)||ds.unshift(Id)}}return e.isNodeArray(_)?e.setTextRange(ae(ds,_.hasTrailingComma),_):_}function Dl(_,W){var ve;return typeof W=="number"&&(W=En(W)),e.isParameter(_)?Cr(_,_.decorators,W,_.dotDotDotToken,_.name,_.questionToken,_.type,_.initializer):e.isPropertySignature(_)?Ln(_,W,_.name,_.questionToken,_.type):e.isPropertyDeclaration(_)?Je(_,_.decorators,W,_.name,(ve=_.questionToken)!==null&&ve!==void 0?ve:_.exclamationToken,_.type,_.initializer):e.isMethodSignature(_)?Qn(_,W,_.name,_.questionToken,_.typeParameters,_.parameters,_.type):e.isMethodDeclaration(_)?on(_,_.decorators,W,_.asteriskToken,_.name,_.questionToken,_.typeParameters,_.parameters,_.type,_.body):e.isConstructorDeclaration(_)?le(_,_.decorators,W,_.parameters,_.body):e.isGetAccessorDeclaration(_)?or(_,_.decorators,W,_.name,_.parameters,_.type,_.body):e.isSetAccessorDeclaration(_)?In(_,_.decorators,W,_.name,_.parameters,_.body):e.isIndexSignatureDeclaration(_)?dr(_,_.decorators,W,_.parameters,_.type):e.isFunctionExpression(_)?yl(_,W,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isArrowFunction(_)?Es(_,W,_.typeParameters,_.parameters,_.type,_.equalsGreaterThanToken,_.body):e.isClassExpression(_)?Sr(_,_.decorators,W,_.name,_.typeParameters,_.heritageClauses,_.members):e.isVariableStatement(_)?Ni(_,W,_.declarationList):e.isFunctionDeclaration(_)?Gf(_,_.decorators,W,_.asteriskToken,_.name,_.typeParameters,_.parameters,_.type,_.body):e.isClassDeclaration(_)?_d(_,_.decorators,W,_.name,_.typeParameters,_.heritageClauses,_.members):e.isInterfaceDeclaration(_)?Cp(_,_.decorators,W,_.name,_.typeParameters,_.heritageClauses,_.members):e.isTypeAliasDeclaration(_)?Kd(_,_.decorators,W,_.name,_.typeParameters,_.type):e.isEnumDeclaration(_)?Np(_,_.decorators,W,_.name,_.members):e.isModuleDeclaration(_)?Bf(_,_.decorators,W,_.name,_.body):e.isImportEqualsDeclaration(_)?vd(_,_.decorators,W,_.isTypeOnly,_.name,_.moduleReference):e.isImportDeclaration(_)?pc(_,_.decorators,W,_.importClause,_.moduleSpecifier):e.isExportAssignment(_)?Qd(_,_.decorators,W,_.expression):e.isExportDeclaration(_)?Wf(_,_.decorators,W,_.isTypeOnly,_.exportClause,_.moduleSpecifier):e.Debug.assertNever(_)}function dl(_){return _?ae(_):void 0}function Bs(_){return typeof _=="string"?vn(_):_}function qc(_){return typeof _=="string"?Sn(_):typeof _=="number"?ye(_):typeof _=="boolean"?_?cn():be():_}function Mm(_){return typeof _=="number"?oe(_):_}function ft(_){return _&&e.isNotEmittedStatement(_)?e.setTextRange(ne(qi(),_),_):_}}e.createNodeFactory=d;function g(K,ee){return K!==ee&&e.setTextRange(K,ee),K}function t(K,ee){return K!==ee&&(ne(K,ee),e.setTextRange(K,ee)),K}function p(K){switch(K){case 338:return"type";case 336:return"returns";case 337:return"this";case 334:return"enum";case 325:return"author";case 327:return"class";case 328:return"public";case 329:return"private";case 330:return"protected";case 331:return"readonly";case 332:return"override";case 339:return"template";case 340:return"typedef";case 335:return"param";case 342:return"prop";case 333:return"callback";case 323:return"augments";case 324:return"implements";default:return e.Debug.fail("Unsupported kind: "+e.Debug.formatSyntaxKind(K))}}var P,J={};function h(K,ee){switch(P||(P=e.createScanner(99,!1,0)),K){case 14:P.setText("`"+ee+"`");break;case 15:P.setText("`"+ee+"${");break;case 16:P.setText("}"+ee+"${");break;case 17:P.setText("}"+ee+"`");break}var b=P.scan();if(b===19&&(b=P.reScanTemplateToken(!1)),P.isUnterminated())return P.setText(void 0),J;var A;switch(b){case 14:case 15:case 16:case 17:A=P.getTokenValue();break}return A===void 0||P.scan()!==1?(P.setText(void 0),J):(P.setText(void 0),A)}function v(K){return X(K)&~16777216}function I(K,ee){return ee|K.transformFlags&33562624}function X(K){if(!K)return 0;var ee=K.transformFlags&~w(K.kind);return e.isNamedDeclaration(K)&&e.isPropertyName(K.name)?I(K.name,ee):ee}function se(K){return K?K.transformFlags:0}function y(K){for(var ee=0,b=0,A=K;b=175&&K<=198)return-2;switch(K){case 206:case 207:case 202:return 536887296;case 259:return 589443072;case 162:return 536870912;case 212:return 557748224;case 211:case 254:return 591310848;case 253:return 537165824;case 255:case 224:return 536940544;case 169:return 591306752;case 165:return 570433536;case 167:case 170:case 171:return 574529536;case 129:case 145:case 156:case 142:case 148:case 146:case 132:case 149:case 114:case 161:case 164:case 166:case 172:case 173:case 174:case 256:case 257:return-2;case 203:return 536973312;case 290:return 536903680;case 199:case 200:return 536887296;case 209:case 227:case 345:case 210:case 106:return 536870912;case 204:case 205:return 536870912;default:return 536870912}}e.getTransformFlagsSubtreeExclusions=w;var D=e.createBaseNodeFactory();function U(K){return K.flags|=8,K}var B={createBaseSourceFileNode:function(K){return U(D.createBaseSourceFileNode(K))},createBaseIdentifierNode:function(K){return U(D.createBaseIdentifierNode(K))},createBasePrivateIdentifierNode:function(K){return U(D.createBasePrivateIdentifierNode(K))},createBaseTokenNode:function(K){return U(D.createBaseTokenNode(K))},createBaseNode:function(K){return U(D.createBaseNode(K))}};e.factory=d(4,B);function R(K,ee,b){var A,E,x,C,m,c,f,N,V,Z;e.isString(K)?(x="",C=K,m=K.length,c=ee,f=b):(e.Debug.assert(ee==="js"||ee==="dts"),x=(ee==="js"?K.javascriptPath:K.declarationPath)||"",c=ee==="js"?K.javascriptMapPath:K.declarationMapPath,N=function(){return ee==="js"?K.javascriptText:K.declarationText},V=function(){return ee==="js"?K.javascriptMapText:K.declarationMapText},m=function(){return N().length},K.buildInfo&&K.buildInfo.bundle&&(e.Debug.assert(b===void 0||typeof b=="boolean"),A=b,E=ee==="js"?K.buildInfo.bundle.js:K.buildInfo.bundle.dts,Z=K.oldFileOfCurrentEmit));var S=Z?k(e.Debug.assertDefined(E)):O(E,A,m);return S.fileName=x,S.sourceMapPath=c,S.oldFileOfCurrentEmit=Z,N&&V?(Object.defineProperty(S,"text",{get:N}),Object.defineProperty(S,"sourceMapText",{get:V})):(e.Debug.assert(!Z),S.text=C!=null?C:"",S.sourceMapText=f),S}e.createUnparsedSourceFile=R;function O(K,ee,b){for(var A,E,x,C,m,c,f,N,V=0,Z=K?K.sections:e.emptyArray;V0&&(C[f-c]=N)}c>0&&(C.length-=c)}}e.moveEmitHelpers=K;function ee(b){return a(b).flags|=134217728,b}e.ignoreSourceNewlines=ee})(un||(un={}));var un;(function(e){function a(J){var h=J.factory,v=e.memoize(function(){return e.setEmitFlags(h.createTrue(),268435456)}),I=e.memoize(function(){return e.setEmitFlags(h.createFalse(),268435456)});return{getUnscopedHelperName:X,createDecorateHelper:se,createMetadataHelper:y,createParamHelper:w,createAssignHelper:D,createAwaitHelper:U,createAsyncGeneratorHelper:B,createAsyncDelegatorHelper:R,createAsyncValuesHelper:O,createRestHelper:k,createAwaiterHelper:M,createExtendsHelper:z,createTemplateObjectHelper:Y,createSpreadArrayHelper:ne,createValuesHelper:j,createReadHelper:H,createGeneratorHelper:K,createCreateBindingHelper:ee,createImportStarHelper:b,createImportStarCallbackHelper:A,createImportDefaultHelper:E,createExportStarHelper:x,createClassPrivateFieldGetHelper:C,createClassPrivateFieldSetHelper:m};function X(c){return e.setEmitFlags(h.createIdentifier(c),4096|2)}function se(c,f,N,V){J.requestEmitHelper(e.decorateHelper);var Z=[];return Z.push(h.createArrayLiteralExpression(c,!0)),Z.push(f),N&&(Z.push(N),V&&Z.push(V)),h.createCallExpression(X("__decorate"),void 0,Z)}function y(c,f){return J.requestEmitHelper(e.metadataHelper),h.createCallExpression(X("__metadata"),void 0,[h.createStringLiteral(c),f])}function w(c,f,N){return J.requestEmitHelper(e.paramHelper),e.setTextRange(h.createCallExpression(X("__param"),void 0,[h.createNumericLiteral(f+""),c]),N)}function D(c){return J.getCompilerOptions().target>=2?h.createCallExpression(h.createPropertyAccessExpression(h.createIdentifier("Object"),"assign"),void 0,c):(J.requestEmitHelper(e.assignHelper),h.createCallExpression(X("__assign"),void 0,c))}function U(c){return J.requestEmitHelper(e.awaitHelper),h.createCallExpression(X("__await"),void 0,[c])}function B(c,f){return J.requestEmitHelper(e.awaitHelper),J.requestEmitHelper(e.asyncGeneratorHelper),(c.emitNode||(c.emitNode={})).flags|=262144|524288,h.createCallExpression(X("__asyncGenerator"),void 0,[f?h.createThis():h.createVoidZero(),h.createIdentifier("arguments"),c])}function R(c){return J.requestEmitHelper(e.awaitHelper),J.requestEmitHelper(e.asyncDelegator),h.createCallExpression(X("__asyncDelegator"),void 0,[c])}function O(c){return J.requestEmitHelper(e.asyncValues),h.createCallExpression(X("__asyncValues"),void 0,[c])}function k(c,f,N,V){J.requestEmitHelper(e.restHelper);for(var Z=[],S=0,ce=0;ce= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - };`},e.metadataHelper={name:"typescript:metadata",importName:"__metadata",scoped:!1,priority:3,text:` - var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); - };`},e.paramHelper={name:"typescript:param",importName:"__param",scoped:!1,priority:4,text:` - var __param = (this && this.__param) || function (paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } - };`},e.assignHelper={name:"typescript:assign",importName:"__assign",scoped:!1,priority:1,text:` - var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { - for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; - } - return t; - }; - return __assign.apply(this, arguments); - };`},e.awaitHelper={name:"typescript:await",importName:"__await",scoped:!1,text:` - var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }`},e.asyncGeneratorHelper={name:"typescript:asyncGenerator",importName:"__asyncGenerator",scoped:!1,dependencies:[e.awaitHelper],text:` - var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var g = generator.apply(thisArg, _arguments || []), i, q = []; - return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } - function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } - function fulfill(value) { resume("next", value); } - function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } - };`},e.asyncDelegator={name:"typescript:asyncDelegator",importName:"__asyncDelegator",scoped:!1,dependencies:[e.awaitHelper],text:` - var __asyncDelegator = (this && this.__asyncDelegator) || function (o) { - var i, p; - return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; - function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } - };`},e.asyncValues={name:"typescript:asyncValues",importName:"__asyncValues",scoped:!1,text:` - var __asyncValues = (this && this.__asyncValues) || function (o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var m = o[Symbol.asyncIterator], i; - return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); - function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } - };`},e.restHelper={name:"typescript:rest",importName:"__rest",scoped:!1,text:` - var __rest = (this && this.__rest) || function (s, e) { - var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; - if (s != null && typeof Object.getOwnPropertySymbols === "function") - for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { - if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) - t[p[i]] = s[p[i]]; - } - return t; - };`},e.awaiterHelper={name:"typescript:awaiter",importName:"__awaiter",scoped:!1,priority:5,text:` - var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - };`},e.extendsHelper={name:"typescript:extends",importName:"__extends",scoped:!1,priority:0,text:` - var __extends = (this && this.__extends) || (function () { - var extendStatics = function (d, b) { - extendStatics = Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; - return extendStatics(d, b); - }; - - return function (d, b) { - if (typeof b !== "function" && b !== null) - throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); - }; - })();`},e.templateObjectHelper={name:"typescript:makeTemplateObject",importName:"__makeTemplateObject",scoped:!1,priority:0,text:` - var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } - return cooked; - };`},e.readHelper={name:"typescript:read",importName:"__read",scoped:!1,text:` - var __read = (this && this.__read) || function (o, n) { - var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), r, ar = [], e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } - catch (error) { e = { error: error }; } - finally { - try { - if (r && !r.done && (m = i["return"])) m.call(i); - } - finally { if (e) throw e.error; } - } - return ar; - };`},e.spreadArrayHelper={name:"typescript:spreadArray",importName:"__spreadArray",scoped:!1,text:` - var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { - if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); - };`},e.valuesHelper={name:"typescript:values",importName:"__values",scoped:!1,text:` - var __values = (this && this.__values) || function(o) { - var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; - throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); - };`},e.generatorHelper={name:"typescript:generator",importName:"__generator",scoped:!1,priority:6,text:` - var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } - };`},e.createBindingHelper={name:"typescript:commonjscreatebinding",importName:"__createBinding",scoped:!1,priority:1,text:` - var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); - }) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; - }));`},e.setModuleDefaultHelper={name:"typescript:commonjscreatevalue",importName:"__setModuleDefault",scoped:!1,priority:1,text:` - var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); - }) : function(o, v) { - o["default"] = v; - });`},e.importStarHelper={name:"typescript:commonjsimportstar",importName:"__importStar",scoped:!1,dependencies:[e.createBindingHelper,e.setModuleDefaultHelper],priority:2,text:` - var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; - };`},e.importDefaultHelper={name:"typescript:commonjsimportdefault",importName:"__importDefault",scoped:!1,text:` - var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; - };`},e.exportStarHelper={name:"typescript:export-star",importName:"__exportStar",scoped:!1,dependencies:[e.createBindingHelper],priority:2,text:` - var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); - };`},e.classPrivateFieldGetHelper={name:"typescript:classPrivateFieldGet",importName:"__classPrivateFieldGet",scoped:!1,text:` - var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) { - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it"); - return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); - };`},e.classPrivateFieldSetHelper={name:"typescript:classPrivateFieldSet",importName:"__classPrivateFieldSet",scoped:!1,text:` - var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) { - if (kind === "m") throw new TypeError("Private method is not writable"); - if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter"); - if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it"); - return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value; - };`};var t;function p(){return t||(t=e.arrayToMap([e.decorateHelper,e.metadataHelper,e.paramHelper,e.assignHelper,e.awaitHelper,e.asyncGeneratorHelper,e.asyncDelegator,e.asyncValues,e.restHelper,e.awaiterHelper,e.extendsHelper,e.templateObjectHelper,e.spreadArrayHelper,e.valuesHelper,e.readHelper,e.generatorHelper,e.importStarHelper,e.importDefaultHelper,e.exportStarHelper,e.classPrivateFieldGetHelper,e.classPrivateFieldSetHelper,e.createBindingHelper,e.setModuleDefaultHelper],function(J){return J.name}))}e.getAllUnscopedEmitHelpers=p,e.asyncSuperHelper={name:"typescript:async-super",scoped:!0,text:g(i0([` - const `," = name => super[name];"],[` - const `," = name => super[name];"]),"_superIndex")},e.advancedAsyncSuperHelper={name:"typescript:advanced-async-super",scoped:!0,text:g(i0([` - const `,` = (function (geti, seti) { - const cache = Object.create(null); - return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } }); - })(name => super[name], (name, value) => super[name] = value);`],[` - const `,` = (function (geti, seti) { - const cache = Object.create(null); - return name => cache[name] || (cache[name] = { get value() { return geti(name); }, set value(v) { seti(name, v); } }); - })(name => super[name], (name, value) => super[name] = value);`]),"_superIndex")};function P(J,h){return e.isCallExpression(J)&&e.isIdentifier(J.expression)&&(e.getEmitFlags(J.expression)&4096)!=0&&J.expression.escapedText===h}e.isCallToHelper=P})(un||(un={}));var un;(function(e){function a(xn){return xn.kind===8}e.isNumericLiteral=a;function d(xn){return xn.kind===9}e.isBigIntLiteral=d;function g(xn){return xn.kind===10}e.isStringLiteral=g;function t(xn){return xn.kind===11}e.isJsxText=t;function p(xn){return xn.kind===13}e.isRegularExpressionLiteral=p;function P(xn){return xn.kind===14}e.isNoSubstitutionTemplateLiteral=P;function J(xn){return xn.kind===15}e.isTemplateHead=J;function h(xn){return xn.kind===16}e.isTemplateMiddle=h;function v(xn){return xn.kind===17}e.isTemplateTail=v;function I(xn){return xn.kind===25}e.isDotDotDotToken=I;function X(xn){return xn.kind===27}e.isCommaToken=X;function se(xn){return xn.kind===39}e.isPlusToken=se;function y(xn){return xn.kind===40}e.isMinusToken=y;function w(xn){return xn.kind===41}e.isAsteriskToken=w;function D(xn){return xn.kind===53}e.isExclamationToken=D;function U(xn){return xn.kind===57}e.isQuestionToken=U;function B(xn){return xn.kind===58}e.isColonToken=B;function R(xn){return xn.kind===28}e.isQuestionDotToken=R;function O(xn){return xn.kind===38}e.isEqualsGreaterThanToken=O;function k(xn){return xn.kind===79}e.isIdentifier=k;function M(xn){return xn.kind===80}e.isPrivateIdentifier=M;function z(xn){return xn.kind===93}e.isExportModifier=z;function Y(xn){return xn.kind===130}e.isAsyncModifier=Y;function ne(xn){return xn.kind===128}e.isAssertsKeyword=ne;function j(xn){return xn.kind===131}e.isAwaitKeyword=j;function H(xn){return xn.kind===143}e.isReadonlyKeyword=H;function K(xn){return xn.kind===124}e.isStaticModifier=K;function ee(xn){return xn.kind===126}e.isAbstractModifier=ee;function b(xn){return xn.kind===106}e.isSuperKeyword=b;function A(xn){return xn.kind===100}e.isImportKeyword=A;function E(xn){return xn.kind===159}e.isQualifiedName=E;function x(xn){return xn.kind===160}e.isComputedPropertyName=x;function C(xn){return xn.kind===161}e.isTypeParameterDeclaration=C;function m(xn){return xn.kind===162}e.isParameter=m;function c(xn){return xn.kind===163}e.isDecorator=c;function f(xn){return xn.kind===164}e.isPropertySignature=f;function N(xn){return xn.kind===165}e.isPropertyDeclaration=N;function V(xn){return xn.kind===166}e.isMethodSignature=V;function Z(xn){return xn.kind===167}e.isMethodDeclaration=Z;function S(xn){return xn.kind===168}e.isClassStaticBlockDeclaration=S;function ce(xn){return xn.kind===169}e.isConstructorDeclaration=ce;function ge(xn){return xn.kind===170}e.isGetAccessorDeclaration=ge;function ae(xn){return xn.kind===171}e.isSetAccessorDeclaration=ae;function F(xn){return xn.kind===172}e.isCallSignatureDeclaration=F;function re(xn){return xn.kind===173}e.isConstructSignatureDeclaration=re;function q(xn){return xn.kind===174}e.isIndexSignatureDeclaration=q;function ue(xn){return xn.kind===175}e.isTypePredicateNode=ue;function ke(xn){return xn.kind===176}e.isTypeReferenceNode=ke;function de(xn){return xn.kind===177}e.isFunctionTypeNode=de;function xe(xn){return xn.kind===178}e.isConstructorTypeNode=xe;function Le(xn){return xn.kind===179}e.isTypeQueryNode=Le;function He(xn){return xn.kind===180}e.isTypeLiteralNode=He;function Ne(xn){return xn.kind===181}e.isArrayTypeNode=Ne;function De(xn){return xn.kind===182}e.isTupleTypeNode=De;function Ee(xn){return xn.kind===195}e.isNamedTupleMember=Ee;function We(xn){return xn.kind===183}e.isOptionalTypeNode=We;function ye(xn){return xn.kind===184}e.isRestTypeNode=ye;function Ie(xn){return xn.kind===185}e.isUnionTypeNode=Ie;function je(xn){return xn.kind===186}e.isIntersectionTypeNode=je;function Sn(xn){return xn.kind===187}e.isConditionalTypeNode=Sn;function Me(xn){return xn.kind===188}e.isInferTypeNode=Me;function we(xn){return xn.kind===189}e.isParenthesizedTypeNode=we;function ze(xn){return xn.kind===190}e.isThisTypeNode=ze;function Cn(xn){return xn.kind===191}e.isTypeOperatorNode=Cn;function an(xn){return xn.kind===192}e.isIndexedAccessTypeNode=an;function vn(xn){return xn.kind===193}e.isMappedTypeNode=vn;function Nn(xn){return xn.kind===194}e.isLiteralTypeNode=Nn;function Kn(xn){return xn.kind===198}e.isImportTypeNode=Kn;function $e(xn){return xn.kind===197}e.isTemplateLiteralTypeSpan=$e;function ie(xn){return xn.kind===196}e.isTemplateLiteralTypeNode=ie;function dn(xn){return xn.kind===199}e.isObjectBindingPattern=dn;function Tn(xn){return xn.kind===200}e.isArrayBindingPattern=Tn;function qn(xn){return xn.kind===201}e.isBindingElement=qn;function oe(xn){return xn.kind===202}e.isArrayLiteralExpression=oe;function Be(xn){return xn.kind===203}e.isObjectLiteralExpression=Be;function Te(xn){return xn.kind===204}e.isPropertyAccessExpression=Te;function qe(xn){return xn.kind===205}e.isElementAccessExpression=qe;function cn(xn){return xn.kind===206}e.isCallExpression=cn;function be(xn){return xn.kind===207}e.isNewExpression=be;function Xe(xn){return xn.kind===208}e.isTaggedTemplateExpression=Xe;function En(xn){return xn.kind===209}e.isTypeAssertionExpression=En;function Pe(xn){return xn.kind===210}e.isParenthesizedExpression=Pe;function he(xn){return xn.kind===211}e.isFunctionExpression=he;function ln(xn){return xn.kind===212}e.isArrowFunction=ln;function sn(xn){return xn.kind===213}e.isDeleteExpression=sn;function An(xn){return xn.kind===214}e.isTypeOfExpression=An;function Un(xn){return xn.kind===215}e.isVoidExpression=Un;function pr(xn){return xn.kind===216}e.isAwaitExpression=pr;function Cr(xn){return xn.kind===217}e.isPrefixUnaryExpression=Cr;function xr(xn){return xn.kind===218}e.isPostfixUnaryExpression=xr;function Gr(xn){return xn.kind===219}e.isBinaryExpression=Gr;function Ve(xn){return xn.kind===220}e.isConditionalExpression=Ve;function Ln(xn){return xn.kind===221}e.isTemplateExpression=Ln;function Wn(xn){return xn.kind===222}e.isYieldExpression=Wn;function Je(xn){return xn.kind===223}e.isSpreadElement=Je;function kn(xn){return xn.kind===224}e.isClassExpression=kn;function Qn(xn){return xn.kind===225}e.isOmittedExpression=Qn;function jn(xn){return xn.kind===226}e.isExpressionWithTypeArguments=jn;function on(xn){return xn.kind===227}e.isAsExpression=on;function fe(xn){return xn.kind===228}e.isNonNullExpression=fe;function Ge(xn){return xn.kind===229}e.isMetaProperty=Ge;function tn(xn){return xn.kind===230}e.isSyntheticExpression=tn;function le(xn){return xn.kind===345}e.isPartiallyEmittedExpression=le;function Vn(xn){return xn.kind===346}e.isCommaListExpression=Vn;function or(xn){return xn.kind===231}e.isTemplateSpan=or;function bn(xn){return xn.kind===232}e.isSemicolonClassElement=bn;function In(xn){return xn.kind===233}e.isBlock=In;function pn(xn){return xn.kind===235}e.isVariableStatement=pn;function Rn(xn){return xn.kind===234}e.isEmptyStatement=Rn;function hn(xn){return xn.kind===236}e.isExpressionStatement=hn;function rr(xn){return xn.kind===237}e.isIfStatement=rr;function lr(xn){return xn.kind===238}e.isDoStatement=lr;function dr(xn){return xn.kind===239}e.isWhileStatement=dr;function gr(xn){return xn.kind===240}e.isForStatement=gr;function zr(xn){return xn.kind===241}e.isForInStatement=zr;function Tt(xn){return xn.kind===242}e.isForOfStatement=Tt;function ht(xn){return xn.kind===243}e.isContinueStatement=ht;function Or(xn){return xn.kind===244}e.isBreakStatement=Or;function dt(xn){return xn.kind===245}e.isReturnStatement=dt;function qr(xn){return xn.kind===246}e.isWithStatement=qr;function Xt(xn){return xn.kind===247}e.isSwitchStatement=Xt;function fr(xn){return xn.kind===248}e.isLabeledStatement=fr;function Pt(xn){return xn.kind===249}e.isThrowStatement=Pt;function fa(xn){return xn.kind===250}e.isTryStatement=fa;function Xa(xn){return xn.kind===251}e.isDebuggerStatement=Xa;function Ka(xn){return xn.kind===252}e.isVariableDeclaration=Ka;function Ei(xn){return xn.kind===253}e.isVariableDeclarationList=Ei;function ti(xn){return xn.kind===254}e.isFunctionDeclaration=ti;function ta(xn){return xn.kind===255}e.isClassDeclaration=ta;function yr(xn){return xn.kind===256}e.isInterfaceDeclaration=yr;function Kr(xn){return xn.kind===257}e.isTypeAliasDeclaration=Kr;function Vr(xn){return xn.kind===258}e.isEnumDeclaration=Vr;function wt(xn){return xn.kind===259}e.isModuleDeclaration=wt;function Bt(xn){return xn.kind===260}e.isModuleBlock=Bt;function Tr(xn){return xn.kind===261}e.isCaseBlock=Tr;function vr(xn){return xn.kind===262}e.isNamespaceExportDeclaration=vr;function Br(xn){return xn.kind===263}e.isImportEqualsDeclaration=Br;function Wr(xn){return xn.kind===264}e.isImportDeclaration=Wr;function tt(xn){return xn.kind===265}e.isImportClause=tt;function er(xn){return xn.kind===266}e.isNamespaceImport=er;function Zt(xn){return xn.kind===272}e.isNamespaceExport=Zt;function Ra(xn){return xn.kind===267}e.isNamedImports=Ra;function Va(xn){return xn.kind===268}e.isImportSpecifier=Va;function bi(xn){return xn.kind===269}e.isExportAssignment=bi;function Fa(xn){return xn.kind===270}e.isExportDeclaration=Fa;function ei(xn){return xn.kind===271}e.isNamedExports=ei;function Di(xn){return xn.kind===273}e.isExportSpecifier=Di;function Vi(xn){return xn.kind===274}e.isMissingDeclaration=Vi;function ni(xn){return xn.kind===344}e.isNotEmittedStatement=ni;function Ti(xn){return xn.kind===349}e.isSyntheticReference=Ti;function Ci(xn){return xn.kind===347}e.isMergeDeclarationMarker=Ci;function Zi(xn){return xn.kind===348}e.isEndOfDeclarationMarker=Zi;function Ki(xn){return xn.kind===275}e.isExternalModuleReference=Ki;function ho(xn){return xn.kind===276}e.isJsxElement=ho;function Ri(xn){return xn.kind===277}e.isJsxSelfClosingElement=Ri;function zi(xn){return xn.kind===278}e.isJsxOpeningElement=zi;function Qo(xn){return xn.kind===279}e.isJsxClosingElement=Qo;function Pa(xn){return xn.kind===280}e.isJsxFragment=Pa;function co(xn){return xn.kind===281}e.isJsxOpeningFragment=co;function za(xn){return xn.kind===282}e.isJsxClosingFragment=za;function fi(xn){return xn.kind===283}e.isJsxAttribute=fi;function Wi(xn){return xn.kind===284}e.isJsxAttributes=Wi;function _o(xn){return xn.kind===285}e.isJsxSpreadAttribute=_o;function No(xn){return xn.kind===286}e.isJsxExpression=No;function Mo(xn){return xn.kind===287}e.isCaseClause=Mo;function yo(xn){return xn.kind===288}e.isDefaultClause=yo;function qo(xn){return xn.kind===289}e.isHeritageClause=qo;function So(xn){return xn.kind===290}e.isCatchClause=So;function Zo(xn){return xn.kind===291}e.isPropertyAssignment=Zo;function fn(xn){return xn.kind===292}e.isShorthandPropertyAssignment=fn;function cr(xn){return xn.kind===293}e.isSpreadAssignment=cr;function Hr(xn){return xn.kind===294}e.isEnumMember=Hr;function zt(xn){return xn.kind===296}e.isUnparsedPrepend=zt;function Oe(xn){return xn.kind===300}e.isSourceFile=Oe;function Zn(xn){return xn.kind===301}e.isBundle=Zn;function Pr(xn){return xn.kind===302}e.isUnparsedSource=Pr;function te(xn){return xn.kind===304}e.isJSDocTypeExpression=te;function Q(xn){return xn.kind===305}e.isJSDocNameReference=Q;function Ae(xn){return xn.kind===306}e.isJSDocMemberName=Ae;function Fe(xn){return xn.kind===319}e.isJSDocLink=Fe;function Ze(xn){return xn.kind===320}e.isJSDocLinkCode=Ze;function Gn(xn){return xn.kind===321}e.isJSDocLinkPlain=Gn;function Yn(xn){return xn.kind===307}e.isJSDocAllType=Yn;function _r(xn){return xn.kind===308}e.isJSDocUnknownType=_r;function kr(xn){return xn.kind===309}e.isJSDocNullableType=kr;function Et(xn){return xn.kind===310}e.isJSDocNonNullableType=Et;function Vt(xn){return xn.kind===311}e.isJSDocOptionalType=Vt;function Ea(xn){return xn.kind===312}e.isJSDocFunctionType=Ea;function da(xn){return xn.kind===313}e.isJSDocVariadicType=da;function ai(xn){return xn.kind===314}e.isJSDocNamepathType=ai;function ji(xn){return xn.kind===315}e.isJSDoc=ji;function wi(xn){return xn.kind===317}e.isJSDocTypeLiteral=wi;function Gi(xn){return xn.kind===318}e.isJSDocSignature=Gi;function hs(xn){return xn.kind===323}e.isJSDocAugmentsTag=hs;function as(xn){return xn.kind===325}e.isJSDocAuthorTag=as;function cs(xn){return xn.kind===327}e.isJSDocClassTag=cs;function ks(xn){return xn.kind===333}e.isJSDocCallbackTag=ks;function pl(xn){return xn.kind===328}e.isJSDocPublicTag=pl;function ml(xn){return xn.kind===329}e.isJSDocPrivateTag=ml;function yl(xn){return xn.kind===330}e.isJSDocProtectedTag=yl;function Ss(xn){return xn.kind===331}e.isJSDocReadonlyTag=Ss;function Es(xn){return xn.kind===332}e.isJSDocOverrideTag=Es;function sl(xn){return xn.kind===326}e.isJSDocDeprecatedTag=sl;function El(xn){return xn.kind===341}e.isJSDocSeeTag=El;function bs(xn){return xn.kind===334}e.isJSDocEnumTag=bs;function pe(xn){return xn.kind===335}e.isJSDocParameterTag=pe;function Pn(xn){return xn.kind===336}e.isJSDocReturnTag=Pn;function mr(xn){return xn.kind===337}e.isJSDocThisTag=mr;function Ce(xn){return xn.kind===338}e.isJSDocTypeTag=Ce;function Xn(xn){return xn.kind===339}e.isJSDocTemplateTag=Xn;function it(xn){return xn.kind===340}e.isJSDocTypedefTag=it;function Wt(xn){return xn.kind===322}e.isJSDocUnknownTag=Wt;function oa(xn){return xn.kind===342}e.isJSDocPropertyTag=oa;function ci(xn){return xn.kind===324}e.isJSDocImplementsTag=ci;function ui(xn){return xn.kind===343}e.isSyntaxList=ui})(un||(un={}));var un;(function(e){function a(ie){return ie.createExportDeclaration(void 0,void 0,!1,ie.createNamedExports([]),void 0)}e.createEmptyExports=a;function d(ie,dn,Tn,qn){if(e.isComputedPropertyName(Tn))return e.setTextRange(ie.createElementAccessExpression(dn,Tn.expression),qn);var oe=e.setTextRange(e.isMemberName(Tn)?ie.createPropertyAccessExpression(dn,Tn):ie.createElementAccessExpression(dn,Tn),Tn);return e.getOrCreateEmitNode(oe).flags|=64,oe}e.createMemberAccessForPropertyName=d;function g(ie,dn){var Tn=e.parseNodeFactory.createIdentifier(ie||"React");return e.setParent(Tn,e.getParseTreeNode(dn)),Tn}function t(ie,dn,Tn){if(e.isQualifiedName(dn)){var qn=t(ie,dn.left,Tn),oe=ie.createIdentifier(e.idText(dn.right));return oe.escapedText=dn.right.escapedText,ie.createPropertyAccessExpression(qn,oe)}else return g(e.idText(dn),Tn)}function p(ie,dn,Tn,qn){return dn?t(ie,dn,qn):ie.createPropertyAccessExpression(g(Tn,qn),"createElement")}e.createJsxFactoryExpression=p;function P(ie,dn,Tn,qn){return dn?t(ie,dn,qn):ie.createPropertyAccessExpression(g(Tn,qn),"Fragment")}function J(ie,dn,Tn,qn,oe,Be){var Te=[Tn];if(qn&&Te.push(qn),oe&&oe.length>0)if(qn||Te.push(ie.createNull()),oe.length>1)for(var qe=0,cn=oe;qe0)if(oe.length>1)for(var be=0,Xe=oe;be=e.ModuleKind.ES2015&&cn<=e.ModuleKind.ESNext){var be=e.getEmitHelpers(Tn);if(be){for(var Xe=[],En=0,Pe=be;En0?ln[En-1]:void 0;return e.Debug.assertEqual(Pe[En],dn),ln[En]=Xe.onEnter(he[En],Un,An),Pe[En]=qe(Xe,dn),En}ie.enter=dn;function Tn(Xe,En,Pe,he,ln,sn,An){e.Debug.assertEqual(Pe[En],Tn),e.Debug.assertIsDefined(Xe.onLeft),Pe[En]=qe(Xe,Tn);var Un=Xe.onLeft(he[En].left,ln[En],he[En]);return Un?(be(En,he,Un),cn(En,Pe,he,ln,Un)):En}ie.left=Tn;function qn(Xe,En,Pe,he,ln,sn,An){return e.Debug.assertEqual(Pe[En],qn),e.Debug.assertIsDefined(Xe.onOperator),Pe[En]=qe(Xe,qn),Xe.onOperator(he[En].operatorToken,ln[En],he[En]),En}ie.operator=qn;function oe(Xe,En,Pe,he,ln,sn,An){e.Debug.assertEqual(Pe[En],oe),e.Debug.assertIsDefined(Xe.onRight),Pe[En]=qe(Xe,oe);var Un=Xe.onRight(he[En].right,ln[En],he[En]);return Un?(be(En,he,Un),cn(En,Pe,he,ln,Un)):En}ie.right=oe;function Be(Xe,En,Pe,he,ln,sn,An){e.Debug.assertEqual(Pe[En],Be),Pe[En]=qe(Xe,Be);var Un=Xe.onExit(he[En],ln[En]);if(En>0){if(En--,Xe.foldState){var pr=Pe[En]===Be?"right":"left";ln[En]=Xe.foldState(ln[En],Un,pr)}}else sn.value=Un;return En}ie.exit=Be;function Te(Xe,En,Pe,he,ln,sn,An){return e.Debug.assertEqual(Pe[En],Te),En}ie.done=Te;function qe(Xe,En){switch(En){case dn:if(Xe.onLeft)return Tn;case Tn:if(Xe.onOperator)return qn;case qn:if(Xe.onRight)return oe;case oe:return Be;case Be:return Te;case Te:return Te;default:e.Debug.fail("Invalid state")}}ie.nextState=qe;function cn(Xe,En,Pe,he,ln){return Xe++,En[Xe]=dn,Pe[Xe]=ln,he[Xe]=void 0,Xe}function be(Xe,En,Pe){if(e.Debug.shouldAssert(2))for(;Xe>=0;)e.Debug.assert(En[Xe]!==Pe,"Circular traversal detected."),Xe--}})(Nn||(Nn={}));var Kn=function(){function ie(dn,Tn,qn,oe,Be,Te){this.onEnter=dn,this.onLeft=Tn,this.onOperator=qn,this.onRight=oe,this.onExit=Be,this.foldState=Te}return ie}();function $e(ie,dn,Tn,qn,oe,Be){var Te=new Kn(ie,dn,Tn,qn,oe,Be);return qe;function qe(cn,be){for(var Xe={value:void 0},En=[Nn.enter],Pe=[cn],he=[void 0],ln=0;En[ln]!==Nn.done;)ln=En[ln](Te,ln,En,Pe,he,Xe,be);return e.Debug.assertEqual(ln,0),Xe.value}}e.createBinaryExpressionTrampoline=$e})(un||(un={}));var un;(function(e){function a(d,g){return g?e.setTextRangePosEnd(d,g.pos,g.end):d}e.setTextRange=a})(un||(un={}));var un;(function(e){var a;(function(m){m[m.None=0]="None",m[m.Yield=1]="Yield",m[m.Await=2]="Await",m[m.Type=4]="Type",m[m.IgnoreMissingOpenBrace=16]="IgnoreMissingOpenBrace",m[m.JSDoc=32]="JSDoc"})(a||(a={}));var d;(function(m){m[m.TryParse=0]="TryParse",m[m.Lookahead=1]="Lookahead",m[m.Reparse=2]="Reparse"})(d||(d={}));var g,t,p,P,J;e.parseBaseNodeFactory={createBaseSourceFileNode:function(m){return new(J||(J=e.objectAllocator.getSourceFileConstructor()))(m,-1,-1)},createBaseIdentifierNode:function(m){return new(p||(p=e.objectAllocator.getIdentifierConstructor()))(m,-1,-1)},createBasePrivateIdentifierNode:function(m){return new(P||(P=e.objectAllocator.getPrivateIdentifierConstructor()))(m,-1,-1)},createBaseTokenNode:function(m){return new(t||(t=e.objectAllocator.getTokenConstructor()))(m,-1,-1)},createBaseNode:function(m){return new(g||(g=e.objectAllocator.getNodeConstructor()))(m,-1,-1)}},e.parseNodeFactory=e.createNodeFactory(1,e.parseBaseNodeFactory);function h(m,c){return c&&m(c)}function v(m,c,f){if(f){if(c)return c(f);for(var N=0,V=f;N=0;--ge)N.push(Z[ge]),V.push(S)}else{var ce=c(Z,S);if(ce){if(ce==="skip")continue;return ce}if(Z.kind>=159)for(var ae=0,F=y(Z);ae=fs.pos}),Hu=ns>=0?e.findIndex(Ar,function(Dl){return Dl.start>=Gs.pos},ns):-1;ns>=0&&e.addRange(Le,Ar,ns,Hu>=0?Hu:void 0),ht(function(){var Dl=Me;for(Me|=32768,c.setTextPos(Gs.pos),bn();le()!==1;){var dl=c.getStartPos(),Bs=zt(0,As);if(ir.push(Bs),dl===c.getStartPos()&&bn(),Xr>=0){var qc=Se.statements[Xr];if(Bs.end===qc.pos)break;Bs.end>qc.pos&&(Xr=no(Se.statements,Xr+1))}}Me=Dl},2),Ct=Xr>=0?zo(Se.statements,Xr):-1};Ct!==-1;)jt();if(Xr>=0){var Qa=Se.statements[Xr];e.addRange(ir,Se.statements,Xr);var va=e.findIndex(Ar,function(fs){return fs.start>=Qa.pos});va>=0&&e.addRange(Le,Ar,va)}return Ne=gn,F.updateSourceFile(Se,e.setTextRange(F.createNodeArray(ir),Se.statements));function $i(fs){return!(fs.flags&32768)&&!!(fs.transformFlags&16777216)}function zo(fs,Gs){for(var ns=Gs;ns116}function Xt(){return le()===79?!0:le()===125&&Ve()||le()===131&&Je()?!1:le()>116}function fr(Se,gn,Mn){return Mn===void 0&&(Mn=!0),le()===Se?(Mn&&bn(),!0):(gn?kn(gn):kn(e.Diagnostics._0_expected,e.tokenToString(Se)),!1)}var Pt=Object.keys(e.textToKeywordObj).filter(function(Se){return Se.length>2});function fa(Se){var gn;if(e.isTaggedTemplateExpression(Se)){jn(e.skipTrivia(ue,Se.template.pos),Se.template.end,e.Diagnostics.Module_declaration_names_may_only_use_or_quoted_strings);return}var Mn=e.isIdentifier(Se)?e.idText(Se):void 0;if(!Mn||!e.isIdentifierText(Mn,ke)){kn(e.Diagnostics._0_expected,e.tokenToString(26));return}var ir=e.skipTrivia(ue,Se.pos);switch(Mn){case"const":case"let":case"var":jn(ir,Se.end,e.Diagnostics.Variable_declaration_not_allowed_at_this_location);return;case"declare":return;case"interface":Xa(e.Diagnostics.Interface_name_cannot_be_0,e.Diagnostics.Interface_must_be_given_a_name,18);return;case"is":jn(ir,c.getTextPos(),e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return;case"module":case"namespace":Xa(e.Diagnostics.Namespace_name_cannot_be_0,e.Diagnostics.Namespace_must_be_given_a_name,18);return;case"type":Xa(e.Diagnostics.Type_alias_name_cannot_be_0,e.Diagnostics.Type_alias_must_be_given_a_name,63);return}var Ar=(gn=e.getSpellingSuggestion(Mn,Pt,function(Xr){return Xr}))!==null&&gn!==void 0?gn:Ka(Mn);if(Ar){jn(ir,Se.end,e.Diagnostics.Unknown_keyword_or_identifier_Did_you_mean_0,Ar);return}le()!==0&&jn(ir,Se.end,e.Diagnostics.Unexpected_keyword_or_identifier)}function Xa(Se,gn,Mn){le()===Mn?kn(gn):kn(Se,e.tokenToString(le()))}function Ka(Se){for(var gn=0,Mn=Pt;gnir.length+2&&e.startsWith(Se,ir))return ir+" "+Se.slice(ir.length)}}function Ei(Se,gn,Mn){if(le()===59&&!c.hasPrecedingLineBreak()){kn(e.Diagnostics.Decorators_must_precede_the_name_and_all_keywords_of_property_declarations);return}if(le()===20){kn(e.Diagnostics.Cannot_start_a_function_call_in_a_type_annotation),bn();return}if(gn&&!vr()){Mn?kn(e.Diagnostics._0_expected,e.tokenToString(26)):kn(e.Diagnostics.Expected_for_property_initializer);return}if(!Br()){if(Mn){le()===18&&kn(e.Diagnostics._0_expected,e.tokenToString(26));return}fa(Se)}}function ti(Se){return le()===Se?(In(),!0):(kn(e.Diagnostics._0_expected,e.tokenToString(Se)),!1)}function ta(Se){return le()===Se?(bn(),!0):!1}function yr(Se){if(le()===Se)return Bt()}function Kr(Se){if(le()===Se)return Tr()}function Vr(Se,gn,Mn){return yr(Se)||Zt(Se,!1,gn||e.Diagnostics._0_expected,Mn||e.tokenToString(Se))}function wt(Se){return Kr(Se)||Zt(Se,!1,e.Diagnostics._0_expected,e.tokenToString(Se))}function Bt(){var Se=Ge(),gn=le();return bn(),er(F.createToken(gn),Se)}function Tr(){var Se=Ge(),gn=le();return In(),er(F.createToken(gn),Se)}function vr(){return le()===26?!0:le()===19||le()===1||c.hasPrecedingLineBreak()}function Br(){return vr()?(le()===26&&bn(),!0):!1}function Wr(){return Br()||fr(26)}function tt(Se,gn,Mn,ir){var Ar=F.createNodeArray(Se,ir);return e.setTextRangePosEnd(Ar,gn,Mn!=null?Mn:c.getStartPos()),Ar}function er(Se,gn,Mn){return e.setTextRangePosEnd(Se,gn,Mn!=null?Mn:c.getStartPos()),Me&&(Se.flags|=Me),ze&&(ze=!1,Se.flags|=65536),Se}function Zt(Se,gn,Mn,ir){gn?Qn(c.getStartPos(),0,Mn,ir):Mn&&kn(Mn,ir);var Ar=Ge(),Xr=Se===79?F.createIdentifier("",void 0,void 0):e.isTemplateLiteralKind(Se)?F.createTemplateLiteralLikeNode(Se,"","",void 0):Se===8?F.createNumericLiteral("",void 0):Se===10?F.createStringLiteral("",void 0):Se===274?F.createMissingDeclaration():F.createToken(Se);return er(Xr,Ar)}function Ra(Se){var gn=We.get(Se);return gn===void 0&&We.set(Se,gn=Se),gn}function Va(Se,gn,Mn){if(Se){Ie++;var ir=Ge(),Ar=le(),Xr=Ra(c.getTokenValue());return Vn(),er(F.createIdentifier(Xr,void 0,Ar),ir)}if(le()===80)return kn(Mn||e.Diagnostics.Private_identifiers_are_not_allowed_outside_class_bodies),Va(!0);if(le()===0&&c.tryScan(function(){return c.reScanInvalidIdentifier()===79}))return Va(!0);Ie++;var Ct=le()===1,jt=c.isReservedWord(),Qa=c.getTokenText(),va=jt?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here:e.Diagnostics.Identifier_expected;return Zt(79,Ct,gn||va,Qa)}function bi(Se){return Va(qr(),void 0,Se)}function Fa(Se,gn){return Va(Xt(),Se,gn)}function ei(Se){return Va(e.tokenIsIdentifierOrKeyword(le()),Se)}function Di(){return e.tokenIsIdentifierOrKeyword(le())||le()===10||le()===8}function Vi(Se){if(le()===10||le()===8){var gn=Es();return gn.text=Ra(gn.text),gn}return Se&&le()===22?Ti():le()===80?Zi():ei()}function ni(){return Vi(!0)}function Ti(){var Se=Ge();fr(22);var gn=he(Os);return fr(23),er(F.createComputedPropertyName(gn),Se)}function Ci(Se){var gn=ye.get(Se);return gn===void 0&&ye.set(Se,gn=Se),gn}function Zi(){var Se=Ge(),gn=F.createPrivateIdentifier(Ci(c.getTokenText()));return bn(),er(gn,Se)}function Ki(Se){return le()===Se&&dt(Ri)}function ho(){return bn(),c.hasPrecedingLineBreak()?!1:co()}function Ri(){switch(le()){case 85:return bn()===92;case 93:return bn(),le()===88?Or(za):le()===150?Or(Qo):zi();case 88:return za();case 124:return ho();case 135:case 147:return bn(),co();default:return ho()}}function zi(){return le()!==41&&le()!==127&&le()!==18&&co()}function Qo(){return bn(),zi()}function Pa(){return e.isModifierKind(le())&&dt(Ri)}function co(){return le()===22||le()===18||le()===41||le()===25||Di()}function za(){return bn(),le()===84||le()===98||le()===118||le()===126&&Or(Rc)||le()===130&&Or(ic)}function fi(Se,gn){var Mn=Oe(Se);if(Mn)return!0;switch(Se){case 0:case 1:case 3:return!(le()===26&&gn)&&ys();case 2:return le()===82||le()===88;case 4:return Or(Nt);case 5:return Or(Zf)||le()===26&&!gn;case 6:return le()===22||Di();case 12:switch(le()){case 22:case 41:case 25:case 24:return!0;default:return Di()}case 18:return Di();case 9:return le()===22||le()===25||Di();case 7:return le()===18?Or(Wi):gn?Xt()&&!yo():Ap()&&!yo();case 8:return cf();case 10:return le()===27||le()===25||cf();case 19:return Xt();case 15:switch(le()){case 27:case 24:return!0}case 11:return le()===25||Fo();case 16:return _s(!1);case 17:return _s(!0);case 20:case 21:return le()===27||_l();case 22:return oc();case 23:return e.tokenIsIdentifierOrKeyword(le());case 13:return e.tokenIsIdentifierOrKeyword(le())||le()===18;case 14:return!0}return e.Debug.fail("Non-exhaustive case in 'isListElement'.")}function Wi(){if(e.Debug.assert(le()===18),bn()===19){var Se=bn();return Se===27||Se===18||Se===94||Se===117}return!0}function _o(){return bn(),Xt()}function No(){return bn(),e.tokenIsIdentifierOrKeyword(le())}function Mo(){return bn(),e.tokenIsIdentifierOrKeywordOrGreaterThan(le())}function yo(){return le()===117||le()===94?Or(qo):!1}function qo(){return bn(),Fo()}function So(){return bn(),_l()}function Zo(Se){if(le()===1)return!0;switch(Se){case 1:case 2:case 4:case 5:case 6:case 12:case 9:case 23:return le()===19;case 3:return le()===19||le()===82||le()===88;case 7:return le()===18||le()===94||le()===117;case 8:return fn();case 19:return le()===31||le()===20||le()===18||le()===94||le()===117;case 11:return le()===21||le()===26;case 15:case 21:case 10:return le()===23;case 17:case 16:case 18:return le()===21||le()===23;case 20:return le()!==27;case 22:return le()===18||le()===19;case 13:return le()===31||le()===43;case 14:return le()===29&&Or(ar);default:return!1}}function fn(){return!!(vr()||gd(le())||le()===38)}function cr(){for(var Se=0;Se<24;Se++)if(je&1<=0)}function Ea(Se){return Se===6?e.Diagnostics.An_enum_member_name_must_be_followed_by_a_or:void 0}function da(){var Se=tt([],Ge());return Se.isMissingList=!0,Se}function ai(Se){return!!Se.isMissingList}function ji(Se,gn,Mn,ir){if(fr(Mn)){var Ar=Vt(Se,gn);return fr(ir),Ar}return da()}function wi(Se,gn){for(var Mn=Ge(),ir=Se?ei(gn):Fa(gn),Ar=Ge();ta(24);){if(le()===29){ir.jsdocDotPos=Ar;break}Ar=Ge(),ir=er(F.createQualifiedName(ir,hs(Se,!1)),Mn)}return ir}function Gi(Se,gn){return er(F.createQualifiedName(Se,gn),Se.pos)}function hs(Se,gn){if(c.hasPrecedingLineBreak()&&e.tokenIsIdentifierOrKeyword(le())){var Mn=Or(_c);if(Mn)return Zt(79,!0,e.Diagnostics.Identifier_expected)}if(le()===80){var ir=Zi();return gn?ir:Zt(79,!0,e.Diagnostics.Identifier_expected)}return Se?ei():Fa()}function as(Se){var gn=Ge(),Mn=[],ir;do ir=Ss(Se),Mn.push(ir);while(ir.literal.kind===16);return tt(Mn,gn)}function cs(Se){var gn=Ge();return er(F.createTemplateExpression(sl(Se),as(Se)),gn)}function ks(){var Se=Ge();return er(F.createTemplateLiteralType(sl(!1),pl()),Se)}function pl(){var Se=Ge(),gn=[],Mn;do Mn=ml(),gn.push(Mn);while(Mn.literal.kind===16);return tt(gn,Se)}function ml(){var Se=Ge();return er(F.createTemplateLiteralTypeSpan(Ro(),yl(!1)),Se)}function yl(Se){return le()===19?(hn(Se),El()):Vr(17,e.Diagnostics._0_expected,e.tokenToString(19))}function Ss(Se){var gn=Ge();return er(F.createTemplateSpan(he(Os),yl(Se)),gn)}function Es(){return pe(le())}function sl(Se){Se&&rr();var gn=pe(le());return e.Debug.assert(gn.kind===15,"Template head has wrong token kind"),gn}function El(){var Se=pe(le());return e.Debug.assert(Se.kind===16||Se.kind===17,"Template fragment has wrong token kind"),Se}function bs(Se){var gn=Se===14||Se===17,Mn=c.getTokenText();return Mn.substring(1,Mn.length-(c.isUnterminated()?0:gn?1:2))}function pe(Se){var gn=Ge(),Mn=e.isTemplateLiteralKind(Se)?F.createTemplateLiteralLikeNode(Se,c.getTokenValue(),bs(Se),c.getTokenFlags()&2048):Se===8?F.createNumericLiteral(c.getTokenValue(),c.getNumericLiteralFlags()):Se===10?F.createStringLiteral(c.getTokenValue(),void 0,c.hasExtendedUnicodeEscape()):e.isLiteralKind(Se)?F.createLiteralLikeNode(Se,c.getTokenValue()):e.Debug.fail();return c.hasExtendedUnicodeEscape()&&(Mn.hasExtendedUnicodeEscape=!0),c.isUnterminated()&&(Mn.isUnterminated=!0),bn(),er(Mn,gn)}function Pn(){return wi(!0,e.Diagnostics.Type_expected)}function mr(){if(!c.hasPrecedingLineBreak()&&lr()===29)return ji(20,Ro,29,31)}function Ce(){var Se=Ge();return er(F.createTypeReferenceNode(Pn(),mr()),Se)}function Xn(Se){switch(Se.kind){case 176:return e.nodeIsMissing(Se.typeName);case 177:case 178:{var gn=Se,Mn=gn.parameters,ir=gn.type;return ai(Mn)||Xn(ir)}case 189:return Xn(Se.type);default:return!1}}function it(Se){return bn(),er(F.createTypePredicateNode(void 0,Se,Ro()),Se.pos)}function Wt(){var Se=Ge();return bn(),er(F.createThisTypeNode(),Se)}function oa(){var Se=Ge();return bn(),er(F.createJSDocAllType(),Se)}function ci(){var Se=Ge();return bn(),er(F.createJSDocNonNullableType(Pl()),Se)}function ui(){var Se=Ge();return bn(),le()===27||le()===19||le()===21||le()===31||le()===63||le()===51?er(F.createJSDocUnknownType(),Se):er(F.createJSDocNullableType(Ro()),Se)}function xn(){var Se=Ge(),gn=tn();if(Or(T)){bn();var Mn=Tl(4|32),ir=bl(58,!1);return ie(er(F.createJSDocFunctionType(Mn,ir),Se),gn)}return er(F.createTypeReferenceNode(ei(),void 0),Se)}function $o(){var Se=Ge(),gn;return(le()===108||le()===103)&&(gn=ei(),fr(58)),er(F.createParameterDeclaration(void 0,void 0,void 0,gn,void 0,Jo(),void 0),Se)}function Jo(){c.setInJSDocType(!0);var Se=Ge();if(ta(140)){var gn=F.createJSDocNamepathType(void 0);e:for(;;)switch(le()){case 19:case 1:case 27:case 5:break e;default:In()}return c.setInJSDocType(!1),er(gn,Se)}var Mn=ta(25),ir=ja();return c.setInJSDocType(!1),Mn&&(ir=er(F.createJSDocVariadicType(ir),Se)),le()===63?(bn(),er(F.createJSDocOptionalType(ir),Se)):ir}function Ms(){var Se=Ge();return fr(112),er(F.createTypeQueryNode(wi(!0)),Se)}function Hs(){var Se=Ge(),gn=Fa(),Mn,ir;ta(94)&&(_l()||!Fo()?Mn=Ro():ir=Op());var Ar=ta(63)?Ro():void 0,Xr=F.createTypeParameterDeclaration(gn,Mn,Ar);return Xr.expression=ir,er(Xr,Se)}function Li(){if(le()===29)return ji(19,Hs,29,31)}function _s(Se){return le()===25||cf()||e.isModifierKind(le())||le()===59||_l(!Se)}function ll(Se){var gn=Uu(e.Diagnostics.Private_identifiers_cannot_be_used_as_parameters);return e.getFullWidth(gn)===0&&!e.some(Se)&&e.isModifierKind(le())&&bn(),gn}function ec(){return Du(!0)}function ql(){return Du(!1)}function Du(Se){var gn=Ge(),Mn=tn(),ir=Se?Un(mu):mu();if(le()===108){var Ar=F.createParameterDeclaration(ir,void 0,void 0,Va(!0),void 0,fc(),void 0);return ir&&on(ir[0],e.Diagnostics.Decorators_may_not_be_applied_to_this_parameters),ie(er(Ar,gn),Mn)}var Xr=we;we=!1;var Ct=gc(),jt=ie(er(F.createParameterDeclaration(ir,Ct,yr(25),ll(Ct),yr(57),fc(),dc()),gn),Mn);return we=Xr,jt}function bl(Se,gn){if(Lc(Se,gn))return ja()}function Lc(Se,gn){return Se===38?(fr(Se),!0):ta(58)?!0:gn&&le()===38?(kn(e.Diagnostics._0_expected,e.tokenToString(58)),bn(),!0):!1}function Ac(Se){var gn=Ve(),Mn=Je();cn(!!(Se&1)),Xe(!!(Se&2));var ir=Se&32?Vt(17,$o):Vt(16,Mn?ec:ql);return cn(gn),Xe(Mn),ir}function Tl(Se){if(!fr(20))return da();var gn=Ac(Se);return fr(21),gn}function Dn(){ta(27)||Wr()}function nr(Se){var gn=Ge(),Mn=tn();Se===173&&fr(103);var ir=Li(),Ar=Tl(4),Xr=bl(58,!0);Dn();var Ct=Se===172?F.createCallSignature(ir,Ar,Xr):F.createConstructSignature(ir,Ar,Xr);return ie(er(Ct,gn),Mn)}function Sr(){return le()===22&&Or(Qr)}function Qr(){if(bn(),le()===25||le()===23)return!0;if(e.isModifierKind(le())){if(bn(),Xt())return!0}else if(Xt())bn();else return!1;return le()===58||le()===27?!0:le()!==57?!1:(bn(),le()===58||le()===27||le()===23)}function lt(Se,gn,Mn,ir){var Ar=ji(16,ql,22,23),Xr=fc();Dn();var Ct=F.createIndexSignature(Mn,ir,Ar,Xr);return ie(er(Ct,Se),gn)}function ct(Se,gn,Mn){var ir=ni(),Ar=yr(57),Xr;if(le()===20||le()===29){var Ct=Li(),jt=Tl(4),Qa=bl(58,!0);Xr=F.createMethodSignature(Mn,ir,Ar,Ct,jt,Qa)}else{var Qa=fc();Xr=F.createPropertySignature(Mn,ir,Ar,Qa),le()===63&&(Xr.initializer=dc())}return Dn(),ie(er(Xr,Se),gn)}function Nt(){if(le()===20||le()===29||le()===135||le()===147)return!0;for(var Se=!1;e.isModifierKind(le());)Se=!0,bn();return le()===22?!0:(Di()&&(Se=!0,bn()),Se?le()===20||le()===29||le()===57||le()===58||le()===27||vr():!1)}function Jt(){if(le()===20||le()===29)return nr(172);if(le()===103&&Or(Ut))return nr(173);var Se=Ge(),gn=tn(),Mn=gc();return Ki(135)?pt(Se,gn,void 0,Mn,170):Ki(147)?pt(Se,gn,void 0,Mn,171):Sr()?lt(Se,gn,void 0,Mn):ct(Se,gn,Mn)}function Ut(){return bn(),le()===20||le()===29}function ii(){return bn()===24}function ga(){switch(bn()){case 20:case 29:case 24:return!0}return!1}function Ia(){var Se=Ge();return er(F.createTypeLiteralNode(_e()),Se)}function _e(){var Se;return fr(18)?(Se=Hr(4,Jt),fr(19)):Se=da(),Se}function nn(){return bn(),le()===39||le()===40?bn()===143:(le()===143&&bn(),le()===22&&_o()&&bn()===101)}function _n(){var Se=Ge(),gn=ei();fr(101);var Mn=Ro();return er(F.createTypeParameterDeclaration(gn,Mn,void 0),Se)}function sr(){var Se=Ge();fr(18);var gn;(le()===143||le()===39||le()===40)&&(gn=Bt(),gn.kind!==143&&fr(143)),fr(22);var Mn=_n(),ir=ta(127)?Ro():void 0;fr(23);var Ar;(le()===57||le()===39||le()===40)&&(Ar=Bt(),Ar.kind!==57&&fr(57));var Xr=fc();return Wr(),fr(19),er(F.createMappedTypeNode(gn,Mn,ir,Ar,Xr),Se)}function $r(){var Se=Ge();if(ta(25))return er(F.createRestTypeNode(Ro()),Se);var gn=Ro();if(e.isJSDocNullableType(gn)&&gn.pos===gn.type.pos){var Mn=F.createOptionalTypeNode(gn.type);return e.setTextRange(Mn,gn),Mn.flags=gn.flags,Mn}return gn}function Ft(){return bn()===58||le()===57&&bn()===58}function Lt(){return le()===25?e.tokenIsIdentifierOrKeyword(bn())&&Ft():e.tokenIsIdentifierOrKeyword(le())&&Ft()}function Na(){if(Or(Lt)){var Se=Ge(),gn=tn(),Mn=yr(25),ir=ei(),Ar=yr(57);fr(58);var Xr=$r(),Ct=F.createNamedTupleMember(Mn,ir,Ar,Xr);return ie(er(Ct,Se),gn)}return $r()}function Ni(){var Se=Ge();return er(F.createTupleTypeNode(ji(21,Na,22,23)),Se)}function qi(){var Se=Ge();fr(20);var gn=Ro();return fr(21),er(F.createParenthesizedType(gn),Se)}function go(){var Se;if(le()===126){var gn=Ge();bn();var Mn=er(F.createToken(126),gn);Se=tt([Mn],gn)}return Se}function di(){var Se=Ge(),gn=tn(),Mn=go(),ir=ta(103),Ar=Li(),Xr=Tl(4),Ct=bl(38,!1),jt=ir?F.createConstructorTypeNode(Mn,Ar,Xr,Ct):F.createFunctionTypeNode(Ar,Xr,Ct);return ir||(jt.modifiers=Mn),ie(er(jt,Se),gn)}function io(){var Se=Bt();return le()===24?void 0:Se}function wo(Se){var gn=Ge();Se&&bn();var Mn=le()===110||le()===95||le()===104?Bt():pe(le());return Se&&(Mn=er(F.createPrefixUnaryExpression(40,Mn),gn)),er(F.createLiteralTypeNode(Mn),gn)}function ko(){return bn(),le()===100}function On(){q|=1048576;var Se=Ge(),gn=ta(112);fr(100),fr(20);var Mn=Ro();fr(21);var ir=ta(24)?Pn():void 0,Ar=mr();return er(F.createImportTypeNode(Mn,ir,Ar,gn),Se)}function Rs(){return bn(),le()===8||le()===9}function Pl(){switch(le()){case 129:case 153:case 148:case 145:case 156:case 149:case 132:case 151:case 142:case 146:return dt(io)||Ce();case 66:c.reScanAsteriskEqualsToken();case 41:return oa();case 60:c.reScanQuestionToken();case 57:return ui();case 98:return xn();case 53:return ci();case 14:case 10:case 8:case 9:case 110:case 95:case 104:return wo();case 40:return Or(Rs)?wo(!0):Ce();case 114:return Bt();case 108:{var Se=Wt();return le()===138&&!c.hasPrecedingLineBreak()?it(Se):Se}case 112:return Or(ko)?On():Ms();case 18:return Or(nn)?sr():Ia();case 22:return Ni();case 20:return qi();case 100:return On();case 128:return Or(_c)?Cc():Ce();case 15:return ks();default:return Ce()}}function _l(Se){switch(le()){case 129:case 153:case 148:case 145:case 156:case 132:case 143:case 149:case 152:case 114:case 151:case 104:case 108:case 112:case 142:case 18:case 22:case 29:case 51:case 50:case 103:case 10:case 8:case 9:case 110:case 95:case 146:case 41:case 57:case 53:case 25:case 136:case 100:case 128:case 14:case 15:return!0;case 98:return!Se;case 40:return!Se&&Or(Rs);case 20:return!Se&&Or(wu);default:return Xt()}}function wu(){return bn(),le()===21||_s(!1)||_l()}function Cl(){for(var Se=Ge(),gn=Pl();!c.hasPrecedingLineBreak();)switch(le()){case 53:bn(),gn=er(F.createJSDocNonNullableType(gn),Se);break;case 57:if(Or(So))return gn;bn(),gn=er(F.createJSDocNullableType(gn),Se);break;case 22:if(fr(22),_l()){var Mn=Ro();fr(23),gn=er(F.createIndexedAccessTypeNode(gn,Mn),Se)}else fr(23),gn=er(F.createArrayTypeNode(gn),Se);break;default:return gn}return gn}function au(Se){var gn=Ge();return fr(Se),er(F.createTypeOperatorNode(Se,iu()),gn)}function Xi(){var Se=Ge();return er(F.createTypeParameterDeclaration(Fa(),void 0,void 0),Se)}function gl(){var Se=Ge();return fr(136),er(F.createInferTypeNode(Xi()),Se)}function iu(){var Se=le();switch(Se){case 139:case 152:case 143:return au(Se);case 136:return gl()}return Cl()}function Fu(Se){if(nc()){var gn=di(),Mn=void 0;return e.isFunctionTypeNode(gn)?Mn=Se?e.Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_a_union_type:e.Diagnostics.Function_type_notation_must_be_parenthesized_when_used_in_an_intersection_type:Mn=Se?e.Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_a_union_type:e.Diagnostics.Constructor_type_notation_must_be_parenthesized_when_used_in_an_intersection_type,on(gn,Mn),gn}}function ou(Se,gn,Mn){var ir=Ge(),Ar=Se===51,Xr=ta(Se),Ct=Xr&&Fu(Ar)||gn();if(le()===Se||Xr){for(var jt=[Ct];ta(Se);)jt.push(Fu(Ar)||gn());Ct=er(Mn(tt(jt,ir)),ir)}return Ct}function Ff(){return ou(50,iu,F.createIntersectionTypeNode)}function Qu(){return ou(51,Ff,F.createUnionTypeNode)}function ud(){return bn(),le()===103}function nc(){return le()===29||le()===20&&Or(dd)?!0:le()===103||le()===126&&Or(ud)}function fd(){if(e.isModifierKind(le())&&gc(),Xt()||le()===108)return bn(),!0;if(le()===22||le()===18){var Se=Le.length;return Uu(),Se===Le.length}return!1}function dd(){return bn(),!!(le()===21||le()===25||fd()&&(le()===58||le()===27||le()===57||le()===63||le()===21&&(bn(),le()===38)))}function ja(){var Se=Ge(),gn=Xt()&&dt(aa),Mn=Ro();return gn?er(F.createTypePredicateNode(void 0,gn,Mn),Se):Mn}function aa(){var Se=Fa();if(le()===138&&!c.hasPrecedingLineBreak())return bn(),Se}function Cc(){var Se=Ge(),gn=Vr(128),Mn=le()===108?Wt():Fa(),ir=ta(138)?Ro():void 0;return er(F.createTypePredicateNode(gn,Mn,ir),Se)}function Ro(){return En(40960,pd)}function pd(Se){if(nc())return di();var gn=Ge(),Mn=Qu();if(!Se&&!c.hasPrecedingLineBreak()&&ta(94)){var ir=pd(!0);fr(57);var Ar=pd();fr(58);var Xr=pd();return er(F.createConditionalTypeNode(Mn,ir,Ar,Xr),gn)}return Mn}function fc(){return ta(58)?Ro():void 0}function Ap(){switch(le()){case 108:case 106:case 104:case 110:case 95:case 8:case 9:case 10:case 14:case 15:case 20:case 22:case 18:case 98:case 84:case 103:case 43:case 68:case 79:return!0;case 100:return Or(ga);default:return Xt()}}function Fo(){if(Ap())return!0;switch(le()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 45:case 46:case 29:case 131:case 125:case 80:return!0;default:return rc()?!0:Xt()}}function xc(){return le()!==18&&le()!==98&&le()!==84&&le()!==59&&Fo()}function Os(){var Se=Wn();Se&&be(!1);for(var gn=Ge(),Mn=vl(),ir;ir=yr(27);)Mn=Vf(Mn,ir,vl(),gn);return Se&&be(!0),Mn}function dc(){return ta(63)?vl():void 0}function vl(){if(xl())return md();var Se=Jd()||Ip();if(Se)return Se;var gn=Ge(),Mn=Uf(0);return Mn.kind===79&&le()===38?_d(gn,Mn,void 0):e.isLeftHandSideExpression(Mn)&&e.isAssignmentOperator(pn())?Vf(Mn,Bt(),vl(),gn):kp(Mn,gn)}function xl(){return le()===125?Ve()?!0:Or(Qs):!1}function Gf(){return bn(),!c.hasPrecedingLineBreak()&&Xt()}function md(){var Se=Ge();return bn(),!c.hasPrecedingLineBreak()&&(le()===41||Fo())?er(F.createYieldExpression(yr(41),vl()),Se):er(F.createYieldExpression(void 0,void 0),Se)}function _d(Se,gn,Mn){e.Debug.assert(le()===38,"parseSimpleArrowFunctionExpression should only have been called if we had a =>");var ir=F.createParameterDeclaration(void 0,void 0,void 0,gn,void 0,void 0,void 0);er(ir,gn.pos);var Ar=tt([ir],ir.pos,ir.end),Xr=Vr(38),Ct=Bf(!!Mn),jt=F.createArrowFunction(Mn,void 0,Ar,void 0,Xr,Ct);return Tn(er(jt,Se))}function Jd(){var Se=Cp();if(Se!==0)return Se===1?zd(!0):dt(Kd)}function Cp(){return le()===20||le()===29||le()===130?Or(xp):le()===38?1:0}function xp(){if(le()===130&&(bn(),c.hasPrecedingLineBreak()||le()!==20&&le()!==29))return 0;var Se=le(),gn=bn();if(Se===20){if(gn===21){var Mn=bn();switch(Mn){case 38:case 58:case 18:return 1;default:return 0}}if(gn===22||gn===18)return 2;if(gn===25||e.isModifierKind(gn)&&gn!==130&&Or(_o))return 1;if(!Xt()&&gn!==108)return 0;switch(bn()){case 58:return 1;case 57:return bn(),le()===58||le()===27||le()===63||le()===21?1:0;case 27:case 63:case 21:return 2}return 0}else{if(e.Debug.assert(Se===29),!Xt())return 0;if(xe===1){var ir=Or(function(){var Ar=bn();if(Ar===94){var Xr=bn();switch(Xr){case 63:case 31:return!1;default:return!0}}else if(Ar===27)return!0;return!1});return ir?1:0}return 2}}function Kd(){var Se=c.getTokenPos();if(!(Sn==null?void 0:Sn.has(Se))){var gn=zd(!1);return gn||(Sn||(Sn=new e.Set)).add(Se),gn}}function Ip(){if(le()===130&&Or(Np)===1){var Se=Ge(),gn=pf(),Mn=Uf(0);return _d(Se,Mn,gn)}}function Np(){if(le()===130){if(bn(),c.hasPrecedingLineBreak()||le()===38)return 0;var Se=Uf(0);if(!c.hasPrecedingLineBreak()&&Se.kind===79&&le()===38)return 1}return 0}function zd(Se){var gn=Ge(),Mn=tn(),ir=pf(),Ar=e.some(ir,e.isAsyncModifier)?2:0,Xr=Li(),Ct;if(fr(20)){if(Ct=Ac(Ar),!fr(21)&&!Se)return}else{if(!Se)return;Ct=da()}var jt=bl(58,!1);if(!(jt&&!Se&&Xn(jt))){var Qa=jt&&e.isJSDocFunctionType(jt);if(!(!Se&&le()!==38&&(Qa||le()!==18))){var va=le(),$i=Vr(38),zo=va===38||va===18?Bf(e.some(ir,e.isAsyncModifier)):Fa(),no=F.createArrowFunction(ir,Xr,Ct,jt,$i,zo);return ie(er(no,gn),Mn)}}}function Bf(Se){if(le()===18)return ul(Se?2:0);if(le()!==26&&le()!==98&&le()!==84&&ys()&&!xc())return ul(16|(Se?2:0));var gn=we;we=!1;var Mn=Se?Un(vl):pr(vl);return we=gn,Mn}function kp(Se,gn){var Mn=yr(57);if(!Mn)return Se;var ir;return er(F.createConditionalExpression(Se,Mn,En(f,vl),ir=Vr(58),e.nodeIsPresent(ir)?vl():Zt(79,!1,e.Diagnostics._0_expected,e.tokenToString(58))),gn)}function Uf(Se){var gn=Ge(),Mn=Op();return qd(Se,Mn,gn)}function gd(Se){return Se===101||Se===158}function qd(Se,gn,Mn){for(;;){pn();var ir=e.getBinaryOperatorPrecedence(le()),Ar=le()===42?ir>=Se:ir>Se;if(!Ar||le()===101&&Ln())break;if(le()===127){if(c.hasPrecedingLineBreak())break;bn(),gn=Zu(gn,Ro())}else gn=Vf(gn,Bt(),Uf(ir),Mn)}return gn}function rc(){return Ln()&&le()===101?!1:e.getBinaryOperatorPrecedence(le())>0}function Vf(Se,gn,Mn,ir){return er(F.createBinaryExpression(Se,gn,Mn),ir)}function Zu(Se,gn){return er(F.createAsExpression(Se,gn),Se.pos)}function vd(){var Se=Ge();return er(F.createPrefixUnaryExpression(le(),or(su)),Se)}function Wc(){var Se=Ge();return er(F.createDeleteExpression(or(su)),Se)}function pc(){var Se=Ge();return er(F.createTypeOfExpression(or(su)),Se)}function $u(){var Se=Ge();return er(F.createVoidExpression(or(su)),Se)}function hd(){return le()===131?Je()?!0:Or(Qs):!1}function Rp(){var Se=Ge();return er(F.createAwaitExpression(or(su)),Se)}function Op(){if(Pp()){var Se=Ge(),gn=Xd();return le()===42?qd(e.getBinaryOperatorPrecedence(le()),gn,Se):gn}var Mn=le(),ir=su();if(le()===42){var Se=e.skipTrivia(ue,ir.pos),Ar=ir.end;ir.kind===209?jn(Se,Ar,e.Diagnostics.A_type_assertion_expression_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses):jn(Se,Ar,e.Diagnostics.An_unary_expression_with_the_0_operator_is_not_allowed_in_the_left_hand_side_of_an_exponentiation_expression_Consider_enclosing_the_expression_in_parentheses,e.tokenToString(Mn))}return ir}function su(){switch(le()){case 39:case 40:case 54:case 53:return vd();case 89:return Wc();case 112:return pc();case 114:return $u();case 29:return Yi();case 131:if(hd())return Rp();default:return Xd()}}function Pp(){switch(le()){case 39:case 40:case 54:case 53:case 89:case 112:case 114:case 131:return!1;case 29:if(xe!==1)return!1;default:return!0}}function Xd(){if(le()===45||le()===46){var Se=Ge();return er(F.createPrefixUnaryExpression(le(),or(yd)),Se)}else if(xe===1&&le()===29&&Or(Mo))return lu(!0);var gn=yd();if(e.Debug.assert(e.isLeftHandSideExpression(gn)),(le()===45||le()===46)&&!c.hasPrecedingLineBreak()){var Mn=le();return bn(),er(F.createPostfixUnaryExpression(gn,Mn),gn.pos)}return gn}function yd(){var Se=Ge(),gn;return le()===100?Or(Ut)?(q|=1048576,gn=Bt()):Or(ii)?(bn(),bn(),gn=er(F.createMetaProperty(100,ei()),Se),q|=2097152):gn=ef():gn=le()===106?Yd():ef(),af(Se,gn)}function ef(){var Se=Ge(),gn=ep();return tf(Se,gn,!0)}function Yd(){var Se=Ge(),gn=Bt();if(le()===29){var Mn=Ge(),ir=dt(fo);ir!==void 0&&jn(Mn,Ge(),e.Diagnostics.super_may_not_use_type_arguments)}return le()===20||le()===24||le()===22?gn:(Vr(24,e.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access),er(F.createPropertyAccessExpression(gn,hs(!0,!0)),Se))}function lu(Se,gn,Mn){var ir=Ge(),Ar=Ic(Se),Xr;if(Ar.kind===278){var Ct=Wf(Ar),jt=void 0,Qa=Ct[Ct.length-1];if((Qa==null?void 0:Qa.kind)===276&&!C(Qa.openingElement.tagName,Qa.closingElement.tagName)&&C(Ar.tagName,Qa.closingElement.tagName)){var va=Qa.openingElement.end,$i=er(F.createJsxElement(Qa.openingElement,tt([],va,va),er(F.createJsxClosingElement(er(F.createIdentifier(""),va,va)),va,va)),Qa.openingElement.pos,va);Ct=tt(Mr(Mr([],Ct.slice(0,Ct.length-1),!0),[$i],!1),Ct.pos,va),jt=Qa.closingElement}else jt=rf(Ar,Se),C(Ar.tagName,jt.tagName)||(Mn&&e.isJsxOpeningElement(Mn)&&C(jt.tagName,Mn.tagName)?on(Ar.tagName,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(ue,Ar.tagName)):on(jt.tagName,e.Diagnostics.Expected_corresponding_JSX_closing_tag_for_0,e.getTextOfNodeFromSourceText(ue,Ar.tagName)));Xr=er(F.createJsxElement(Ar,Ct,jt),ir)}else Ar.kind===281?Xr=er(F.createJsxFragment(Ar,Wf(Ar),jc(Se)),ir):(e.Debug.assert(Ar.kind===277),Xr=Ar);if(Se&&le()===29){var zo=typeof gn=="undefined"?Xr.pos:gn,no=dt(function(){return lu(!0,zo)});if(no){var Oo=Zt(27,!1);return e.setTextRangePosWidth(Oo,no.pos,0),jn(e.skipTrivia(ue,zo),no.end,e.Diagnostics.JSX_expressions_must_have_one_parent_element),er(F.createBinaryExpression(Xr,Oo,no),ir)}}return Xr}function Qd(){var Se=Ge(),gn=F.createJsxText(c.getTokenValue(),De===12);return De=c.scanJsxToken(),er(gn,Se)}function cu(Se,gn){switch(gn){case 1:if(e.isJsxOpeningFragment(Se))on(Se,e.Diagnostics.JSX_fragment_has_no_corresponding_closing_tag);else{var Mn=Se.tagName,ir=e.skipTrivia(ue,Mn.pos);jn(ir,Mn.end,e.Diagnostics.JSX_element_0_has_no_corresponding_closing_tag,e.getTextOfNodeFromSourceText(ue,Se.tagName))}return;case 30:case 7:return;case 11:case 12:return Qd();case 18:return Ed(!1);case 29:return lu(!1,void 0,Se);default:return e.Debug.assertNever(gn)}}function Wf(Se){var gn=[],Mn=Ge(),ir=je;for(je|=1<<14;;){var Ar=cu(Se,De=c.reScanJsxToken());if(!Ar||(gn.push(Ar),e.isJsxOpeningElement(Se)&&(Ar==null?void 0:Ar.kind)===276&&!C(Ar.openingElement.tagName,Ar.closingElement.tagName)&&C(Se.tagName,Ar.closingElement.tagName)))break}return je=ir,tt(gn,Mn)}function Ds(){var Se=Ge();return er(F.createJsxAttributes(Hr(13,Zd)),Se)}function Ic(Se){var gn=Ge();if(fr(29),le()===31)return zr(),er(F.createJsxOpeningFragment(),gn);var Mn=uu(),ir=(Me&131072)==0?xd():void 0,Ar=Ds(),Xr;return le()===31?(zr(),Xr=F.createJsxOpeningElement(Mn,ir,Ar)):(fr(43),fr(31,void 0,!1)&&(Se?bn():zr()),Xr=F.createJsxSelfClosingElement(Mn,ir,Ar)),er(Xr,gn)}function uu(){var Se=Ge();gr();for(var gn=le()===108?Bt():ei();ta(24);)gn=er(F.createPropertyAccessExpression(gn,hs(!0,!1)),Se);return gn}function Ed(Se){var gn=Ge();if(!!fr(18)){var Mn,ir;return le()!==19&&(Mn=yr(25),ir=Os()),Se?fr(19):fr(19,void 0,!1)&&zr(),er(F.createJsxExpression(Mn,ir),gn)}}function Zd(){if(le()===18)return nf();gr();var Se=Ge();return er(F.createJsxAttribute(ei(),le()!==63?void 0:Tt()===10?Es():Ed(!0)),Se)}function nf(){var Se=Ge();fr(18),fr(25);var gn=Os();return fr(19),er(F.createJsxSpreadAttribute(gn),Se)}function rf(Se,gn){var Mn=Ge();fr(30);var ir=uu();return fr(31,void 0,!1)&&(gn||!C(Se.tagName,ir)?bn():zr()),er(F.createJsxClosingElement(ir),Mn)}function jc(Se){var gn=Ge();return fr(30),e.tokenIsIdentifierOrKeyword(le())&&on(uu(),e.Diagnostics.Expected_corresponding_closing_tag_for_JSX_fragment),fr(31,void 0,!1)&&(Se?bn():zr()),er(F.createJsxJsxClosingFragment(),gn)}function Yi(){var Se=Ge();fr(29);var gn=Ro();fr(31);var Mn=su();return er(F.createTypeAssertion(gn,Mn),Se)}function Wo(){return bn(),e.tokenIsIdentifierOrKeyword(le())||le()===22||fu()}function Sl(){return le()===28&&Or(Wo)}function ws(Se){if(Se.flags&32)return!0;if(e.isNonNullExpression(Se)){for(var gn=Se.expression;e.isNonNullExpression(gn)&&!(gn.flags&32);)gn=gn.expression;if(gn.flags&32){for(;e.isNonNullExpression(Se);)Se.flags|=32,Se=Se.expression;return!0}}return!1}function $d(Se,gn,Mn){var ir=hs(!0,!0),Ar=Mn||ws(gn),Xr=Ar?F.createPropertyAccessChain(gn,Mn,ir):F.createPropertyAccessExpression(gn,ir);return Ar&&e.isPrivateIdentifier(Xr.name)&&on(Xr.name,e.Diagnostics.An_optional_chain_cannot_contain_private_identifiers),er(Xr,Se)}function Nc(Se,gn,Mn){var ir;if(le()===23)ir=Zt(79,!0,e.Diagnostics.An_element_access_expression_should_take_an_argument);else{var Ar=he(Os);e.isStringOrNumericLiteralLike(Ar)&&(Ar.text=Ra(Ar.text)),ir=Ar}fr(23);var Xr=Mn||ws(gn)?F.createElementAccessChain(gn,Mn,ir):F.createElementAccessExpression(gn,ir);return er(Xr,Se)}function tf(Se,gn,Mn){for(;;){var ir=void 0,Ar=!1;if(Mn&&Sl()?(ir=Vr(28),Ar=e.tokenIsIdentifierOrKeyword(le())):Ar=ta(24),Ar){gn=$d(Se,gn,ir);continue}if(!ir&&le()===53&&!c.hasPrecedingLineBreak()){bn(),gn=er(F.createNonNullExpression(gn),Se);continue}if((ir||!Wn())&&ta(22)){gn=Nc(Se,gn,ir);continue}if(fu()){gn=oo(Se,gn,ir,void 0);continue}return gn}}function fu(){return le()===14||le()===15}function oo(Se,gn,Mn,ir){var Ar=F.createTaggedTemplateExpression(gn,ir,le()===14?(rr(),Es()):cs(!0));return(Mn||gn.flags&32)&&(Ar.flags|=32),Ar.questionDotToken=Mn,er(Ar,Se)}function af(Se,gn){for(;;){gn=tf(Se,gn,!0);var Mn=yr(28);if((Me&131072)==0&&(le()===29||le()===47)){var ir=dt(fo);if(ir){if(fu()){gn=oo(Se,gn,Mn,ir);continue}var Ar=cl(),Xr=Mn||ws(gn)?F.createCallChain(gn,Mn,ir,Ar):F.createCallExpression(gn,ir,Ar);gn=er(Xr,Se);continue}}else if(le()===20){var Ar=cl(),Xr=Mn||ws(gn)?F.createCallChain(gn,Mn,void 0,Ar):F.createCallExpression(gn,void 0,Ar);gn=er(Xr,Se);continue}if(Mn){var Ct=Zt(79,!1,e.Diagnostics.Identifier_expected);gn=er(F.createPropertyAccessChain(gn,Mn,Ct),Se)}break}return gn}function cl(){fr(20);var Se=Vt(11,Ya);return fr(21),Se}function fo(){if((Me&131072)==0&&lr()===29){bn();var Se=Vt(20,Ro);if(!!fr(31))return Se&&Mp()?Se:void 0}}function Mp(){switch(le()){case 20:case 14:case 15:case 24:case 21:case 23:case 58:case 26:case 57:case 34:case 36:case 35:case 37:case 55:case 56:case 60:case 52:case 50:case 51:case 19:case 1:return!0;case 27:case 18:default:return!1}}function ep(){switch(le()){case 8:case 9:case 10:case 14:return Es();case 108:case 106:case 104:case 110:case 95:return Bt();case 20:return jf();case 22:return mc();case 18:return kc();case 130:if(!Or(ic))break;return ut();case 84:return Fp();case 98:return ut();case 103:return es();case 43:case 68:if(Rn()===13)return Es();break;case 15:return cs(!1)}return Fa(e.Diagnostics.Expression_expected)}function jf(){var Se=Ge(),gn=tn();fr(20);var Mn=he(Os);return fr(21),ie(er(F.createParenthesizedExpression(Mn),Se),gn)}function kt(){var Se=Ge();fr(25);var gn=vl();return er(F.createSpreadElement(gn),Se)}function so(){return le()===25?kt():le()===27?er(F.createOmittedExpression(),Ge()):vl()}function Ya(){return En(f,so)}function mc(){var Se=Ge();fr(22);var gn=c.hasPrecedingLineBreak(),Mn=Vt(15,so);return fr(23),er(F.createArrayLiteralExpression(Mn,gn),Se)}function bd(){var Se=Ge(),gn=tn();if(yr(25)){var Mn=vl();return ie(er(F.createSpreadAssignment(Mn),Se),gn)}var ir=mu(),Ar=gc();if(Ki(135))return pt(Se,gn,ir,Ar,170);if(Ki(147))return pt(Se,gn,ir,Ar,171);var Xr=yr(41),Ct=Xt(),jt=ni(),Qa=yr(57),va=yr(53);if(Xr||le()===20||le()===29)return Qf(Se,gn,ir,Ar,Xr,jt,Qa,va);var $i,zo=Ct&&le()!==58;if(zo){var no=yr(63),Oo=no?he(vl):void 0;$i=F.createShorthandPropertyAssignment(jt,Oo),$i.equalsToken=no}else{fr(58);var fs=he(vl);$i=F.createPropertyAssignment(jt,fs)}return $i.decorators=ir,$i.modifiers=Ar,$i.questionToken=Qa,$i.exclamationToken=va,ie(er($i,Se),gn)}function kc(){var Se=Ge(),gn=c.getTokenPos();fr(18);var Mn=c.hasPrecedingLineBreak(),ir=Vt(12,bd,!0);if(!fr(19)){var Ar=e.lastOrUndefined(Le);Ar&&Ar.code===e.Diagnostics._0_expected.code&&e.addRelatedInfo(Ar,e.createDetachedDiagnostic(re,gn,1,e.Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here))}return er(F.createObjectLiteralExpression(ir,Mn),Se)}function ut(){var Se=Wn();be(!1);var gn=Ge(),Mn=tn(),ir=gc();fr(98);var Ar=yr(41),Xr=Ar?1:0,Ct=e.some(ir,e.isAsyncModifier)?2:0,jt=Xr&&Ct?Cr(of):Xr?sn(of):Ct?Un(of):of(),Qa=Li(),va=Tl(Xr|Ct),$i=bl(58,!1),zo=ul(Xr|Ct);be(Se);var no=F.createFunctionExpression(ir,Ar,jt,Qa,va,$i,zo);return ie(er(no,gn),Mn)}function of(){return qr()?bi():void 0}function es(){var Se=Ge();if(fr(103),ta(24)){var gn=ei();return er(F.createMetaProperty(103,gn),Se)}for(var Mn=Ge(),ir=ep(),Ar;;){ir=tf(Mn,ir,!1),Ar=dt(fo),fu()&&(e.Debug.assert(!!Ar,"Expected a type argument list; all plain tagged template starts should be consumed in 'parseMemberExpressionRest'"),ir=oo(Mn,ir,void 0,Ar),Ar=void 0);break}var Xr;return le()===20?Xr=cl():Ar&&jn(Se,c.getStartPos(),e.Diagnostics.A_new_expression_with_type_arguments_must_always_be_followed_by_a_parenthesized_argument_list),er(F.createNewExpression(ir,Ar,Xr),Se)}function us(Se,gn){var Mn=Ge(),ir=tn(),Ar=c.getTokenPos();if(fr(18,gn)||Se){var Xr=c.hasPrecedingLineBreak(),Ct=Hr(1,As);if(!fr(19)){var jt=e.lastOrUndefined(Le);jt&&jt.code===e.Diagnostics._0_expected.code&&e.addRelatedInfo(jt,e.createDetachedDiagnostic(re,Ar,1,e.Diagnostics.The_parser_expected_to_find_a_to_match_the_token_here))}var Qa=ie(er(F.createBlock(Ct,Xr),Mn),ir);return le()===63&&(kn(e.Diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_the_whole_assignment_in_parentheses),bn()),Qa}else{var Ct=da();return ie(er(F.createBlock(Ct,void 0),Mn),ir)}}function ul(Se,gn){var Mn=Ve();cn(!!(Se&1));var ir=Je();Xe(!!(Se&2));var Ar=we;we=!1;var Xr=Wn();Xr&&be(!1);var Ct=us(!!(Se&16),gn);return Xr&&be(!0),we=Ar,cn(Mn),Xe(ir),Ct}function sf(){var Se=Ge(),gn=tn();return fr(26),ie(er(F.createEmptyStatement(),Se),gn)}function Td(){var Se=Ge(),gn=tn();fr(99),fr(20);var Mn=he(Os);fr(21);var ir=As(),Ar=ta(91)?As():void 0;return ie(er(F.createIfStatement(Mn,ir,Ar),Se),gn)}function Lu(){var Se=Ge(),gn=tn();fr(90);var Mn=As();fr(115),fr(20);var ir=he(Os);return fr(21),ta(26),ie(er(F.createDoStatement(Mn,ir),Se),gn)}function Au(){var Se=Ge(),gn=tn();fr(115),fr(20);var Mn=he(Os);fr(21);var ir=As();return ie(er(F.createWhileStatement(Mn,ir),Se),gn)}function lf(){var Se=Ge(),gn=tn();fr(97);var Mn=yr(131);fr(20);var ir;le()!==26&&(le()===113||le()===119||le()===85?ir=xu(!0):ir=ln(Os));var Ar;if(Mn?fr(158):ta(158)){var Xr=he(vl);fr(21),Ar=F.createForOfStatement(Mn,ir,Xr,As())}else if(ta(101)){var Xr=he(Os);fr(21),Ar=F.createForInStatement(ir,Xr,As())}else{fr(26);var Ct=le()!==26&&le()!==21?he(Os):void 0;fr(26);var jt=le()!==21?he(Os):void 0;fr(21),Ar=F.createForStatement(ir,Ct,jt,As())}return ie(er(Ar,Se),gn)}function Ls(Se){var gn=Ge(),Mn=tn();fr(Se===244?81:86);var ir=vr()?void 0:Fa();Wr();var Ar=Se===244?F.createBreakStatement(ir):F.createContinueStatement(ir);return ie(er(Ar,gn),Mn)}function tc(){var Se=Ge(),gn=tn();fr(105);var Mn=vr()?void 0:he(Os);return Wr(),ie(er(F.createReturnStatement(Mn),Se),gn)}function Hf(){var Se=Ge(),gn=tn();fr(116),fr(20);var Mn=he(Os);fr(21);var ir=Pe(16777216,As);return ie(er(F.createWithStatement(Mn,ir),Se),gn)}function Jf(){var Se=Ge();fr(82);var gn=he(Os);fr(58);var Mn=Hr(3,As);return er(F.createCaseClause(gn,Mn),Se)}function Ji(){var Se=Ge();fr(88),fr(58);var gn=Hr(3,As);return er(F.createDefaultClause(gn),Se)}function bt(){return le()===82?Jf():Ji()}function hl(){var Se=Ge();fr(18);var gn=Hr(2,bt);return fr(19),er(F.createCaseBlock(gn),Se)}function np(){var Se=Ge(),gn=tn();fr(107),fr(20);var Mn=he(Os);fr(21);var ir=hl();return ie(er(F.createSwitchStatement(Mn,ir),Se),gn)}function Kf(){var Se=Ge(),gn=tn();fr(109);var Mn=c.hasPrecedingLineBreak()?void 0:he(Os);return Mn===void 0&&(Ie++,Mn=er(F.createIdentifier(""),Ge())),Br()||fa(Mn),ie(er(F.createThrowStatement(Mn),Se),gn)}function ac(){var Se=Ge(),gn=tn();fr(111);var Mn=us(!1),ir=le()===83?Sd():void 0,Ar;return(!ir||le()===96)&&(fr(96),Ar=us(!1)),ie(er(F.createTryStatement(Mn,ir,Ar),Se),gn)}function Sd(){var Se=Ge();fr(83);var gn;ta(20)?(gn=uf(),fr(21)):gn=void 0;var Mn=us(!1);return er(F.createCatchClause(gn,Mn),Se)}function Gu(){var Se=Ge(),gn=tn();return fr(87),Wr(),ie(er(F.createDebuggerStatement(),Se),gn)}function Ml(){var Se=Ge(),gn=tn(),Mn,ir=le()===20,Ar=he(Os);return e.isIdentifier(Ar)&&ta(58)?Mn=F.createLabeledStatement(Ar,As()):(Br()||fa(Ar),Mn=F.createExpressionStatement(Ar),ir&&(gn=!1)),ie(er(Mn,Se),gn)}function _c(){return bn(),e.tokenIsIdentifierOrKeyword(le())&&!c.hasPrecedingLineBreak()}function Rc(){return bn(),le()===84&&!c.hasPrecedingLineBreak()}function ic(){return bn(),le()===98&&!c.hasPrecedingLineBreak()}function Qs(){return bn(),(e.tokenIsIdentifierOrKeyword(le())||le()===8||le()===9||le()===10)&&!c.hasPrecedingLineBreak()}function is(){for(;;)switch(le()){case 113:case 119:case 85:case 98:case 84:case 92:return!0;case 118:case 150:return Gf();case 140:case 141:return zf();case 126:case 130:case 134:case 121:case 122:case 123:case 143:if(bn(),c.hasPrecedingLineBreak())return!1;continue;case 155:return bn(),le()===18||le()===79||le()===93;case 100:return bn(),le()===10||le()===41||le()===18||e.tokenIsIdentifierOrKeyword(le());case 93:var Se=bn();if(Se===150&&(Se=Or(bn)),Se===63||Se===41||Se===18||Se===88||Se===127)return!0;continue;case 124:bn();continue;default:return!1}}function Xo(){return Or(is)}function ys(){switch(le()){case 59:case 26:case 18:case 113:case 119:case 98:case 84:case 92:case 99:case 90:case 115:case 97:case 86:case 81:case 105:case 116:case 107:case 109:case 111:case 87:case 83:case 96:return!0;case 100:return Xo()||Or(ga);case 85:case 93:return Xo();case 130:case 134:case 118:case 140:case 141:case 150:case 155:return!0;case 123:case 121:case 122:case 124:case 143:return Xo()||!Or(_c);default:return Fo()}}function Hc(){return bn(),qr()||le()===18||le()===22}function Xl(){return Or(Hc)}function As(){switch(le()){case 26:return sf();case 18:return us(!1);case 113:return ff(Ge(),tn(),void 0,void 0);case 119:if(Xl())return ff(Ge(),tn(),void 0,void 0);break;case 98:return Dd(Ge(),tn(),void 0,void 0);case 84:return ap(Ge(),tn(),void 0,void 0);case 99:return Td();case 90:return Lu();case 115:return Au();case 97:return lf();case 86:return Ls(243);case 81:return Ls(244);case 105:return tc();case 116:return Hf();case 107:return np();case 109:return Kf();case 111:case 83:case 96:return ac();case 87:return Gu();case 59:return wp();case 130:case 118:case 150:case 140:case 141:case 134:case 85:case 92:case 93:case 100:case 121:case 122:case 123:case 126:case 124:case 143:case 155:if(Xo())return wp();break}return Ml()}function du(Se){return Se.kind===134}function wp(){var Se=e.some(Or(function(){return mu(),gc()}),du);if(Se){var gn=fl();if(gn)return gn}var Mn=Ge(),ir=tn(),Ar=mu(),Xr=gc();if(Se){for(var Ct=0,jt=Xr;Ct=0),e.Debug.assert(va<=no),e.Debug.assert(no<=zo.length),!I(zo,va))return;var Oo,fs,Gs,ns,Hu,Dl=[],dl=[];return c.scanRange(va+3,$i-5,function(){var at=1,na,ra=va-(zo.lastIndexOf(` -`,va)+1)+4;function Ta(Pc){na||(na=ra),Dl.push(Pc),ra+=Pc.length}for(In();up(5););up(4)&&(at=0,ra=0);e:for(;;){switch(le()){case 59:at===0||at===1?(qc(Dl),Hu||(Hu=Ge()),bo(W(ra)),at=0,na=void 0):Ta(c.getTokenText());break;case 4:Dl.push(c.getTokenText()),at=0,ra=0;break;case 41:var Ha=c.getTokenText();at===1||at===2?(at=2,Ta(Ha)):(at=1,ra+=Ha.length);break;case 5:var pi=c.getTokenText();at===2?Dl.push(pi):na!==void 0&&ra+pi.length>na&&Dl.push(pi.slice(na-ra)),ra+=pi.length;break;case 1:break e;case 18:at=2;var Go=c.getStartPos(),Cs=c.getTextPos()-1,Us=Ur(Cs);if(Us){ns||Bs(Dl),dl.push(er(F.createJSDocText(Dl.join("")),ns!=null?ns:va,Go)),dl.push(Us),Dl=[],ns=c.getTextPos();break}default:at=2,Ta(c.getTokenText());break}In()}qc(Dl),dl.length&&Dl.length&&dl.push(er(F.createJSDocText(Dl.join("")),ns!=null?ns:va,Hu)),dl.length&&Oo&&e.Debug.assertIsDefined(Hu,"having parsed tags implies that the end of the comment span should be set");var Zs=Oo&&tt(Oo,fs,Gs);return er(F.createJSDocComment(dl.length?tt(dl,va,Hu):Dl.length?Dl.join(""):void 0,Zs),va,no)});function Bs(at){for(;at.length&&(at[0]===` -`||at[0]==="\r");)at.shift()}function qc(at){for(;at.length&&at[at.length-1].trim()==="";)at.pop()}function Mm(){for(;;){if(In(),le()===1)return!0;if(!(le()===5||le()===4))return!1}}function ft(){if(!((le()===5||le()===4)&&Or(Mm)))for(;le()===5||le()===4;)In()}function _(){if((le()===5||le()===4)&&Or(Mm))return"";for(var at=c.hasPrecedingLineBreak(),na=!1,ra="";at&&le()===41||le()===5||le()===4;)ra+=c.getTokenText(),le()===4?(at=!0,na=!0,ra=""):le()===41&&(at=!1),In();return na?ra:""}function W(at){e.Debug.assert(le()===59);var na=c.getTokenPos();In();var ra=Rd(void 0),Ta=_(),Ha;switch(ra.escapedText){case"author":Ha=Gl(na,ra,at,Ta);break;case"implements":Ha=cg(na,ra,at,Ta);break;case"augments":case"extends":Ha=p_(na,ra,at,Ta);break;case"class":case"constructor":Ha=kd(na,F.createJSDocClassTag,ra,at,Ta);break;case"public":Ha=kd(na,F.createJSDocPublicTag,ra,at,Ta);break;case"private":Ha=kd(na,F.createJSDocPrivateTag,ra,at,Ta);break;case"protected":Ha=kd(na,F.createJSDocProtectedTag,ra,at,Ta);break;case"readonly":Ha=kd(na,F.createJSDocReadonlyTag,ra,at,Ta);break;case"override":Ha=kd(na,F.createJSDocOverrideTag,ra,at,Ta);break;case"deprecated":dn=!0,Ha=kd(na,F.createJSDocDeprecatedTag,ra,at,Ta);break;case"this":Ha=Bl(na,ra,at,Ta);break;case"enum":Ha=m_(na,ra,at,Ta);break;case"arg":case"argument":case"param":return cm(na,ra,2,at);case"return":case"returns":Ha=ed(na,ra,at,Ta);break;case"template":Ha=cp(na,ra,at,Ta);break;case"type":Ha=d_(na,ra,at,Ta);break;case"typedef":Ha=nd(na,ra,at,Ta);break;case"callback":Ha=Gm(na,ra,at,Ta);break;case"see":Ha=lg(na,ra,at,Ta);break;default:Ha=Ma(na,ra,at,Ta);break}return Ha}function ve(at,na,ra,Ta){return Ta||(ra+=na-at),en(ra,Ta.slice(ra))}function en(at,na){var ra=Ge(),Ta=[],Ha=[],pi,Go=0,Cs=!0,Us;function Zs(Yl){Us||(Us=at),Ta.push(Yl),at+=Yl.length}na!==void 0&&(na!==""&&Zs(na),Go=1);var Pc=le();e:for(;;){switch(Pc){case 4:Go=0,Ta.push(c.getTokenText()),at=0;break;case 59:if(Go===3||Go===2&&(!Cs||Or(Fn))){Ta.push(c.getTokenText());break}c.setTextPos(c.getTextPos()-1);case 1:break e;case 5:if(Go===2||Go===3)Zs(c.getTokenText());else{var Ks=c.getTokenText();Us!==void 0&&at+Ks.length>Us&&Ta.push(Ks.slice(Us-at)),at+=Ks.length}break;case 18:Go=2;var Wp=c.getStartPos(),um=c.getTextPos()-1,jp=Ur(um);jp?(Ha.push(er(F.createJSDocText(Ta.join("")),pi!=null?pi:ra,Wp)),Ha.push(jp),Ta=[],pi=c.getTextPos()):Zs(c.getTokenText());break;case 61:Go===3?Go=2:Go=3,Zs(c.getTokenText());break;case 41:if(Go===0){Go=1,at+=1;break}default:Go!==3&&(Go=2),Zs(c.getTokenText());break}Cs=le()===5,Pc=In()}if(Bs(Ta),qc(Ta),Ha.length)return Ta.length&&Ha.push(er(F.createJSDocText(Ta.join("")),pi!=null?pi:ra)),tt(Ha,ra,c.getTextPos());if(Ta.length)return Ta.join("")}function Fn(){var at=In();return at===5||at===4}function Ur(at){var na=dt(yt);if(!!na){In(),ft();var ra=Ge(),Ta=e.tokenIsIdentifierOrKeyword(le())?wi(!0):void 0;if(Ta)for(;le()===80;)dr(),In(),Ta=er(F.createJSDocMemberName(Ta,Fa()),ra);for(var Ha=[];le()!==19&&le()!==4&&le()!==1;)Ha.push(c.getTokenText()),In();var pi=na==="link"?F.createJSDocLink:na==="linkcode"?F.createJSDocLinkCode:F.createJSDocLinkPlain;return er(pi(Ta,Ha.join("")),at,c.getTextPos())}}function yt(){if(_(),le()===18&&In()===59&&e.tokenIsIdentifierOrKeyword(In())){var at=c.getTokenValue();if(at==="link"||at==="linkcode"||at==="linkplain")return at}}function Ma(at,na,ra,Ta){return er(F.createJSDocUnknownTag(na,ve(at,Ge(),ra,Ta)),at)}function bo(at){!at||(Oo?Oo.push(at):(Oo=[at],fs=at.pos),Gs=at.end)}function ds(){return _(),le()===18?Mn():void 0}function lp(){var at=up(22);at&&ft();var na=up(61),ra=mg();return na&&wt(61),at&&(ft(),yr(63)&&Os(),fr(23)),{name:ra,isBracketed:at}}function yc(at){switch(at.kind){case 146:return!0;case 181:return yc(at.elementType);default:return e.isTypeReferenceNode(at)&&e.isIdentifier(at.typeName)&&at.typeName.escapedText==="Object"&&!at.typeArguments}}function cm(at,na,ra,Ta){var Ha=ds(),pi=!Ha;_();var Go=lp(),Cs=Go.name,Us=Go.isBracketed,Zs=_();pi&&!Or(yt)&&(Ha=ds());var Pc=ve(at,Ge(),Ta,Zs),Ks=ra!==4&&Id(Ha,Cs,ra,Ta);Ks&&(Ha=Ks,pi=!0);var Wp=ra===1?F.createJSDocPropertyTag(na,Cs,Us,Ha,pi,Pc):F.createJSDocParameterTag(na,Cs,Us,Ha,pi,Pc);return er(Wp,at)}function Id(at,na,ra,Ta){if(at&&yc(at.type)){for(var Ha=Ge(),pi=void 0,Go=void 0;pi=dt(function(){return hf(ra,Ta,na)});)(pi.kind===335||pi.kind===342)&&(Go=e.append(Go,pi));if(Go){var Cs=er(F.createJSDocTypeLiteral(Go,at.type.kind===181),Ha);return er(F.createJSDocTypeExpression(Cs),Ha)}}}function ed(at,na,ra,Ta){e.some(Oo,e.isJSDocReturnTag)&&jn(na.pos,c.getTokenPos(),e.Diagnostics._0_tag_already_specified,na.escapedText);var Ha=ds();return er(F.createJSDocReturnTag(na,Ha,ve(at,Ge(),ra,Ta)),at)}function d_(at,na,ra,Ta){e.some(Oo,e.isJSDocTypeTag)&&jn(na.pos,c.getTokenPos(),e.Diagnostics._0_tag_already_specified,na.escapedText);var Ha=Mn(!0),pi=ra!==void 0&&Ta!==void 0?ve(at,Ge(),ra,Ta):void 0;return er(F.createJSDocTypeTag(na,Ha,pi),at)}function lg(at,na,ra,Ta){var Ha=Or(function(){return In()===59&&e.tokenIsIdentifierOrKeyword(In())&&c.getTokenValue()==="link"}),pi=Ha?void 0:ir(),Go=ra!==void 0&&Ta!==void 0?ve(at,Ge(),ra,Ta):void 0;return er(F.createJSDocSeeTag(na,pi,Go),at)}function Gl(at,na,ra,Ta){var Ha=Ge(),pi=lv(),Go=c.getStartPos(),Cs=ve(at,Go,ra,Ta);Cs||(Go=c.getStartPos());var Us=typeof Cs!="string"?tt(e.concatenate([er(pi,Ha,Go)],Cs),Ha):pi.text+Cs;return er(F.createJSDocAuthorTag(na,Us),at)}function lv(){for(var at=[],na=!1,ra=c.getToken();ra!==1&&ra!==4;){if(ra===29)na=!0;else{if(ra===59&&!na)break;if(ra===31&&na){at.push(c.getTokenText()),c.setTextPos(c.getTokenPos()+1);break}}at.push(c.getTokenText()),ra=In()}return F.createJSDocText(at.join(""))}function cg(at,na,ra,Ta){var Ha=Nd();return er(F.createJSDocImplementsTag(na,Ha,ve(at,Ge(),ra,Ta)),at)}function p_(at,na,ra,Ta){var Ha=Nd();return er(F.createJSDocAugmentsTag(na,Ha,ve(at,Ge(),ra,Ta)),at)}function Nd(){var at=ta(18),na=Ge(),ra=cv(),Ta=xd(),Ha=F.createExpressionWithTypeArguments(ra,Ta),pi=er(Ha,na);return at&&fr(19),pi}function cv(){for(var at=Ge(),na=Rd();ta(24);){var ra=Rd();na=er(F.createPropertyAccessExpression(na,ra),at)}return na}function kd(at,na,ra,Ta,Ha){return er(na(ra,ve(at,Ge(),Ta,Ha)),at)}function Bl(at,na,ra,Ta){var Ha=Mn(!0);return ft(),er(F.createJSDocThisTag(na,Ha,ve(at,Ge(),ra,Ta)),at)}function m_(at,na,ra,Ta){var Ha=Mn(!0);return ft(),er(F.createJSDocEnumTag(na,Ha,ve(at,Ge(),ra,Ta)),at)}function nd(at,na,ra,Ta){var Ha,pi=ds();_();var Go=wm();ft();var Cs=en(ra),Us;if(!pi||yc(pi.type)){for(var Zs=void 0,Pc=void 0,Ks=void 0,Wp=!1;Zs=dt(function(){return fg(ra)});)if(Wp=!0,Zs.kind===338)if(Pc){kn(e.Diagnostics.A_JSDoc_typedef_comment_may_not_contain_multiple_type_tags);var um=e.lastOrUndefined(Le);um&&e.addRelatedInfo(um,e.createDetachedDiagnostic(re,0,0,e.Diagnostics.The_tag_was_first_specified_here));break}else Pc=Zs;else Ks=e.append(Ks,Zs);if(Wp){var jp=pi&&pi.type.kind===181,Yl=F.createJSDocTypeLiteral(Ks,jp);pi=Pc&&Pc.typeExpression&&!yc(Pc.typeExpression.type)?Pc.typeExpression:er(Yl,at),Us=pi.end}}Us=Us||Cs!==void 0?Ge():((Ha=Go!=null?Go:pi)!==null&&Ha!==void 0?Ha:na).end,Cs||(Cs=ve(at,Us,ra,Ta));var fm=F.createJSDocTypedefTag(na,pi,Go,Cs);return er(fm,at,Us)}function wm(at){var na=c.getTokenPos();if(!!e.tokenIsIdentifierOrKeyword(le())){var ra=Rd();if(ta(24)){var Ta=wm(!0),Ha=F.createModuleDeclaration(void 0,void 0,ra,Ta,at?4:void 0);return er(Ha,na)}return at&&(ra.isInJSDocNamespace=!0),ra}}function Fm(at){for(var na=Ge(),ra,Ta;ra=dt(function(){return hf(4,at)});)Ta=e.append(Ta,ra);return tt(Ta||[],na)}function Gm(at,na,ra,Ta){var Ha=wm();ft();var pi=en(ra),Go=Fm(ra),Cs=dt(function(){if(up(59)){var Zs=W(ra);if(Zs&&Zs.kind===336)return Zs}}),Us=er(F.createJSDocSignature(void 0,Go,Cs),at);return pi||(pi=ve(at,Ge(),ra,Ta)),er(F.createJSDocCallbackTag(na,Us,Ha,pi),at)}function ug(at,na){for(;!e.isIdentifier(at)||!e.isIdentifier(na);)if(!e.isIdentifier(at)&&!e.isIdentifier(na)&&at.right.escapedText===na.right.escapedText)at=at.left,na=na.left;else return!1;return at.escapedText===na.escapedText}function fg(at){return hf(1,at)}function hf(at,na,ra){for(var Ta=!0,Ha=!1;;)switch(In()){case 59:if(Ta){var pi=dg(at,na);return pi&&(pi.kind===335||pi.kind===342)&&at!==4&&ra&&(e.isIdentifier(pi.name)||!ug(ra,pi.name.left))?!1:pi}Ha=!1;break;case 4:Ta=!0,Ha=!1;break;case 41:Ha&&(Ta=!1),Ha=!0;break;case 79:Ta=!1;break;case 1:return!1}}function dg(at,na){e.Debug.assert(le()===59);var ra=c.getStartPos();In();var Ta=Rd();ft();var Ha;switch(Ta.escapedText){case"type":return at===1&&d_(ra,Ta);case"prop":case"property":Ha=1;break;case"arg":case"argument":case"param":Ha=2|4;break;default:return!1}return at&Ha?cm(ra,Ta,at,na):!1}function Lo(){var at=Ge(),na=Rd(e.Diagnostics.Unexpected_token_A_type_parameter_name_was_expected_without_curly_braces);if(!e.nodeIsMissing(na))return er(F.createTypeParameterDeclaration(na,void 0,void 0),at)}function pg(){var at=Ge(),na=[];do{ft();var ra=Lo();ra!==void 0&&na.push(ra),_()}while(up(27));return tt(na,at)}function cp(at,na,ra,Ta){var Ha=le()===18?Mn():void 0,pi=pg();return er(F.createJSDocTemplateTag(na,Ha,pi,ve(at,Ge(),ra,Ta)),at)}function up(at){return le()===at?(In(),!0):!1}function mg(){var at=Rd();for(ta(22)&&fr(23);ta(24);){var na=Rd();ta(22)&&fr(23),at=Gi(at,na)}return at}function Rd(at){if(!e.tokenIsIdentifierOrKeyword(le()))return Zt(79,!at,at||e.Diagnostics.Identifier_expected);Ie++;var na=c.getTokenPos(),ra=c.getTextPos(),Ta=le(),Ha=Ra(c.getTokenValue()),pi=er(F.createIdentifier(Ha,void 0,Ta),na,ra);return In(),pi}}})(zc=m.JSDocParser||(m.JSDocParser={}))})(M||(M={}));var z;(function(m){function c(ue,ke,de,xe){if(xe=xe||e.Debug.shouldAssert(2),F(ue,ke,de,xe),e.textChangeRangeIsUnchanged(de))return ue;if(ue.statements.length===0)return M.parseSourceFile(ue.fileName,ke,ue.languageVersion,void 0,!0,ue.scriptKind);var Le=ue;e.Debug.assert(!Le.hasBeenIncrementallyParsed),Le.hasBeenIncrementallyParsed=!0,M.fixupParentReferences(Le);var He=ue.text,Ne=re(ue),De=ge(ue,de);F(ue,ke,De,xe),e.Debug.assert(De.span.start<=de.span.start),e.Debug.assert(e.textSpanEnd(De.span)===e.textSpanEnd(de.span)),e.Debug.assert(e.textSpanEnd(e.textChangeRangeNewSpan(De))===e.textSpanEnd(e.textChangeRangeNewSpan(de)));var Ee=e.textChangeRangeNewSpan(De).length-De.span.length;ce(Le,De.span.start,e.textSpanEnd(De.span),e.textSpanEnd(e.textChangeRangeNewSpan(De)),Ee,He,ke,xe);var We=M.parseSourceFile(ue.fileName,ke,ue.languageVersion,Ne,!0,ue.scriptKind);return We.commentDirectives=f(ue.commentDirectives,We.commentDirectives,De.span.start,e.textSpanEnd(De.span),Ee,He,ke,xe),We}m.updateSourceFile=c;function f(ue,ke,de,xe,Le,He,Ne,De){if(!ue)return ke;for(var Ee,We=!1,ye=0,Ie=ue;yexe){ze();var we={range:{pos:Sn.pos+Le,end:Sn.end+Le},type:Me};Ee=e.append(Ee,we),De&&e.Debug.assert(He.substring(Sn.pos,Sn.end)===Ne.substring(we.range.pos,we.range.end))}}return ze(),Ee;function ze(){We||(We=!0,Ee?ke&&Ee.push.apply(Ee,ke):Ee=ke)}}function N(ue,ke,de,xe,Le,He){ke?De(ue):Ne(ue);return;function Ne(Ee){var We="";if(He&&V(Ee)&&(We=xe.substring(Ee.pos,Ee.end)),Ee._children&&(Ee._children=void 0),e.setTextRangePosEnd(Ee,Ee.pos+de,Ee.end+de),He&&V(Ee)&&e.Debug.assert(We===Le.substring(Ee.pos,Ee.end)),X(Ee,Ne,De),e.hasJSDocNodes(Ee))for(var ye=0,Ie=Ee.jsDoc;ye=ke,"Adjusting an element that was entirely before the change range"),e.Debug.assert(ue.pos<=de,"Adjusting an element that was entirely after the change range"),e.Debug.assert(ue.pos<=ue.end);var He=Math.min(ue.pos,xe),Ne=ue.end>=de?ue.end+Le:Math.min(ue.end,xe);e.Debug.assert(He<=Ne),ue.parent&&(e.Debug.assertGreaterThanOrEqual(He,ue.parent.pos),e.Debug.assertLessThanOrEqual(Ne,ue.parent.end)),e.setTextRangePosEnd(ue,He,Ne)}function S(ue,ke){if(ke){var de=ue.pos,xe=function(De){e.Debug.assert(De.pos>=de),de=De.end};if(e.hasJSDocNodes(ue))for(var Le=0,He=ue.jsDoc;Lede){N(ye,!1,Le,He,Ne,De);return}var Ie=ye.end;if(Ie>=ke){if(ye.intersectsChange=!0,ye._children=void 0,Z(ye,ke,de,xe,Le),X(ye,Ee,We),e.hasJSDocNodes(ye))for(var je=0,Sn=ye.jsDoc;jede){N(ye,!0,Le,He,Ne,De);return}var Ie=ye.end;if(Ie>=ke){ye.intersectsChange=!0,ye._children=void 0,Z(ye,ke,de,xe,Le);for(var je=0,Sn=ye;je0&&Le<=de;Le++){var He=ae(ue,xe);e.Debug.assert(He.pos<=xe);var Ne=He.pos;xe=Math.max(0,Ne-1)}var De=e.createTextSpanFromBounds(xe,e.textSpanEnd(ke.span)),Ee=ke.newLength+(ke.span.start-xe);return e.createTextChangeRange(De,Ee)}function ae(ue,ke){var de=ue,xe;if(X(ue,Ne),xe){var Le=He(xe);Le.pos>de.pos&&(de=Le)}return de;function He(De){for(;;){var Ee=e.getLastChild(De);if(Ee)De=Ee;else return De}}function Ne(De){if(!e.nodeIsMissing(De))if(De.pos<=ke){if(De.pos>=de.pos&&(de=De),keke),!0}}function F(ue,ke,de,xe){var Le=ue.text;if(de&&(e.Debug.assert(Le.length-de.span.length+de.newLength===ke.length),xe||e.Debug.shouldAssert(3))){var He=Le.substr(0,de.span.start),Ne=ke.substr(0,de.span.start);e.Debug.assert(He===Ne);var De=Le.substring(e.textSpanEnd(de.span),Le.length),Ee=ke.substring(e.textSpanEnd(e.textChangeRangeNewSpan(de)),ke.length);e.Debug.assert(De===Ee)}}function re(ue){var ke=ue.statements,de=0;e.Debug.assert(de=We.pos&&Ne=We.pos&&Nem.checkJsDirective.pos)&&(m.checkJsDirective={enabled:N==="ts-check",end:F.range.end,pos:F.range.pos})});break}case"jsx":case"jsxfrag":case"jsximportsource":case"jsxruntime":return;default:e.Debug.fail("Unhandled pragma kind")}})}e.processPragmasIntoFields=j;var H=new e.Map;function K(m){if(H.has(m))return H.get(m);var c=new RegExp("(\\s"+m+`\\s*=\\s*)(?:(?:'([^']*)')|(?:"([^"]*)"))`,"im");return H.set(m,c),c}var ee=/^\/\/\/\s*<(\S+)\s.*?\/>/im,b=/^\/\/\/?\s*@(\S+)\s*(.*)\s*$/im;function A(m,c,f){var N=c.kind===2&&ee.exec(f);if(N){var V=N[1].toLowerCase(),Z=e.commentPragmas[V];if(!Z||!(Z.kind&1))return;if(Z.args){for(var S={},ce=0,ge=Z.args;ce=Or.length)break;var Xt=qr;if(Or.charCodeAt(Xt)===34){for(qr++;qr32;)qr++;dt.push(Or.substring(Xt,qr))}}zr(dt)}}e.parseCommandLineWorker=D;function U(pn,Rn,hn,rr,lr,dr){if(rr.isTSConfigOnly){var gr=pn[Rn];gr==="null"?(lr[rr.name]=void 0,Rn++):rr.type==="boolean"?gr==="false"?(lr[rr.name]=xr(rr,!1,dr),Rn++):(gr==="true"&&Rn++,dr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_false_or_null_on_command_line,rr.name))):(dr.push(e.createCompilerDiagnostic(e.Diagnostics.Option_0_can_only_be_specified_in_tsconfig_json_file_or_set_to_null_on_command_line,rr.name)),gr&&!e.startsWith(gr,"-")&&Rn++)}else if(!pn[Rn]&&rr.type!=="boolean"&&dr.push(e.createCompilerDiagnostic(hn.optionTypeMismatchDiagnostic,rr.name,ue(rr))),pn[Rn]!=="null")switch(rr.type){case"number":lr[rr.name]=xr(rr,parseInt(pn[Rn]),dr),Rn++;break;case"boolean":var gr=pn[Rn];lr[rr.name]=xr(rr,gr!=="false",dr),(gr==="false"||gr==="true")&&Rn++;break;case"string":lr[rr.name]=xr(rr,pn[Rn]||"",dr),Rn++;break;case"list":var zr=se(rr,pn[Rn],dr);lr[rr.name]=zr||[],zr&&Rn++;break;default:lr[rr.name]=X(rr,pn[Rn],dr),Rn++;break}else lr[rr.name]=void 0,Rn++;return Rn}e.compilerOptionsDidYouMeanDiagnostics={alternateMode:J,getOptionsNameMap:P,optionDeclarations:e.optionDeclarations,unknownOptionDiagnostic:e.Diagnostics.Unknown_compiler_option_0,unknownDidYouMeanDiagnostic:e.Diagnostics.Unknown_compiler_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:e.Diagnostics.Compiler_option_0_expects_an_argument};function B(pn,Rn){return D(e.compilerOptionsDidYouMeanDiagnostics,pn,Rn)}e.parseCommandLine=B;function R(pn,Rn){return O(P,pn,Rn)}e.getOptionFromName=R;function O(pn,Rn,hn){hn===void 0&&(hn=!1),Rn=Rn.toLowerCase();var rr=pn(),lr=rr.optionsNameMap,dr=rr.shortOptionNames;if(hn){var gr=dr.get(Rn);gr!==void 0&&(Rn=gr)}return lr.get(Rn)}var k;function M(){return k||(k=t(e.buildOpts))}var z={diagnostic:e.Diagnostics.Compiler_option_0_may_not_be_used_with_build,getOptionsNameMap:P},Y={alternateMode:z,getOptionsNameMap:M,optionDeclarations:e.buildOpts,unknownOptionDiagnostic:e.Diagnostics.Unknown_build_option_0,unknownDidYouMeanDiagnostic:e.Diagnostics.Unknown_build_option_0_Did_you_mean_1,optionTypeMismatchDiagnostic:e.Diagnostics.Build_option_0_requires_a_value_of_type_1};function ne(pn){var Rn=D(Y,pn),hn=Rn.options,rr=Rn.watchOptions,lr=Rn.fileNames,dr=Rn.errors,gr=hn;return lr.length===0&&lr.push("."),gr.clean&&gr.force&&dr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","force")),gr.clean&&gr.verbose&&dr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","verbose")),gr.clean&&gr.watch&&dr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"clean","watch")),gr.watch&&gr.dry&&dr.push(e.createCompilerDiagnostic(e.Diagnostics.Options_0_and_1_cannot_be_combined,"watch","dry")),{buildOptions:gr,watchOptions:rr,projects:lr,errors:dr}}e.parseBuildCommand=ne;function j(pn){for(var Rn=[],hn=1;hn=0)return gr.push(e.createCompilerDiagnostic(e.Diagnostics.Circularity_detected_while_resolving_configuration_Colon_0,Mr(Mr([],dr,!0),[ht],!1).join(" -> "))),{raw:pn||re(Rn,gr)};var Or=pn?oe(pn,hn,rr,lr,gr):Be(Rn,hn,rr,lr,gr);if(((Tt=Or.options)===null||Tt===void 0?void 0:Tt.paths)&&(Or.options.pathsBasePath=rr),Or.extendedConfigPath){dr=dr.concat([ht]);var dt=qe(Rn,Or.extendedConfigPath,hn,dr,gr,zr);if(dt&&Tn(dt)){var qr=dt.raw,Xt=Or.raw,fr,Pt=function(fa){!Xt[fa]&&qr[fa]&&(Xt[fa]=e.map(qr[fa],function(Xa){return e.isRootedDiskPath(Xa)?Xa:e.combinePaths(fr||(fr=e.convertToRelativePath(e.getDirectoryPath(Or.extendedConfigPath),rr,e.createGetCanonicalFileName(hn.useCaseSensitiveFileNames))),Xa)}))};Pt("include"),Pt("exclude"),Pt("files"),Xt.compileOnSave===void 0&&(Xt.compileOnSave=qr.compileOnSave),Or.options=e.assign({},dt.options,Or.options),Or.watchOptions=Or.watchOptions&&dt.watchOptions?e.assign({},dt.watchOptions,Or.watchOptions):Or.watchOptions||dt.watchOptions}}return Or}function oe(pn,Rn,hn,rr,lr){e.hasProperty(pn,"excludes")&&lr.push(e.createCompilerDiagnostic(e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude));var dr=Pe(pn.compilerOptions,hn,lr,rr),gr=ln(pn.typeAcquisition||pn.typingOptions,hn,lr,rr),zr=sn(pn.watchOptions,hn,lr);pn.compileOnSave=cn(pn,hn,lr);var Tt;if(pn.extends)if(!e.isString(pn.extends))lr.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,"extends","string"));else{var ht=rr?an(rr,hn):hn;Tt=Te(pn.extends,Rn,ht,lr,e.createCompilerDiagnostic)}return{raw:pn,options:dr,watchOptions:zr,typeAcquisition:gr,extendedConfigPath:Tt}}function Be(pn,Rn,hn,rr,lr){var dr=En(rr),gr,zr,Tt,ht,Or={onSetValidOptionKeyValueInParent:function(qr,Xt,fr){var Pt;switch(qr){case"compilerOptions":Pt=dr;break;case"watchOptions":Pt=Tt||(Tt={});break;case"typeAcquisition":Pt=gr||(gr=he(rr));break;case"typingOptions":Pt=zr||(zr=he(rr));break;default:e.Debug.fail("Unknown option")}Pt[Xt.name]=pr(Xt,hn,fr)},onSetValidOptionKeyValueInRoot:function(qr,Xt,fr,Pt){switch(qr){case"extends":var fa=rr?an(rr,hn):hn;ht=Te(fr,Rn,fa,lr,function(Xa,Ka){return e.createDiagnosticForNodeInSourceFile(pn,Pt,Xa,Ka)});return}},onSetUnknownOptionKeyValueInRoot:function(qr,Xt,fr,Pt){qr==="excludes"&&lr.push(e.createDiagnosticForNodeInSourceFile(pn,Xt,e.Diagnostics.Unknown_option_excludes_Did_you_mean_exclude))}},dt=F(pn,lr,!0,Or);return gr||(zr?gr=zr.enableAutoDiscovery!==void 0?{enable:zr.enableAutoDiscovery,include:zr.include,exclude:zr.exclude}:zr:gr=he(rr)),{raw:dt,options:dr,watchOptions:Tt,typeAcquisition:gr,extendedConfigPath:ht}}function Te(pn,Rn,hn,rr,lr){if(pn=e.normalizeSlashes(pn),e.isRootedDiskPath(pn)||e.startsWith(pn,"./")||e.startsWith(pn,"../")){var dr=e.getNormalizedAbsolutePath(pn,hn);if(!Rn.fileExists(dr)&&!e.endsWith(dr,".json")&&(dr=dr+".json",!Rn.fileExists(dr))){rr.push(lr(e.Diagnostics.File_0_not_found,pn));return}return dr}var gr=e.nodeModuleNameResolver(pn,e.combinePaths(hn,"tsconfig.json"),{moduleResolution:e.ModuleResolutionKind.NodeJs},Rn,void 0,void 0,!0);if(gr.resolvedModule)return gr.resolvedModule.resolvedFileName;rr.push(lr(e.Diagnostics.File_0_not_found,pn))}function qe(pn,Rn,hn,rr,lr,dr){var gr,zr=hn.useCaseSensitiveFileNames?Rn:e.toFileNameLowerCase(Rn),Tt,ht,Or;if(dr&&(Tt=dr.get(zr))?(ht=Tt.extendedResult,Or=Tt.extendedConfig):(ht=b(Rn,function(dt){return hn.readFile(dt)}),ht.parseDiagnostics.length||(Or=qn(void 0,ht,hn,e.getDirectoryPath(Rn),e.getBaseFileName(Rn),rr,lr,dr)),dr&&dr.set(zr,{extendedResult:ht,extendedConfig:Or})),pn&&(pn.extendedSourceFiles=[ht.fileName],ht.extendedSourceFiles&&(gr=pn.extendedSourceFiles).push.apply(gr,ht.extendedSourceFiles)),ht.parseDiagnostics.length){lr.push.apply(lr,ht.parseDiagnostics);return}return Or}function cn(pn,Rn,hn){if(!e.hasProperty(pn,e.compileOnSaveCommandLineOption.name))return!1;var rr=Un(e.compileOnSaveCommandLineOption,pn.compileOnSave,Rn,hn);return typeof rr=="boolean"&&rr}function be(pn,Rn,hn){var rr=[],lr=Pe(pn,Rn,rr,hn);return{options:lr,errors:rr}}e.convertCompilerOptionsFromJson=be;function Xe(pn,Rn,hn){var rr=[],lr=ln(pn,Rn,rr,hn);return{options:lr,errors:rr}}e.convertTypeAcquisitionFromJson=Xe;function En(pn){var Rn=pn&&e.getBaseFileName(pn)==="jsconfig.json"?{allowJs:!0,maxNodeModuleJsDepth:2,allowSyntheticDefaultImports:!0,skipLibCheck:!0,noEmit:!0}:{};return Rn}function Pe(pn,Rn,hn,rr){var lr=En(rr);return An(N(),pn,Rn,lr,e.compilerOptionsDidYouMeanDiagnostics,hn),rr&&(lr.configFilePath=e.normalizeSlashes(rr)),lr}function he(pn){return{enable:!!pn&&e.getBaseFileName(pn)==="jsconfig.json",include:[],exclude:[]}}function ln(pn,Rn,hn,rr){var lr=he(rr),dr=h(pn);return An(ce(),dr,Rn,lr,x,hn),lr}function sn(pn,Rn,hn){return An(Z(),pn,Rn,void 0,c,hn)}function An(pn,Rn,hn,rr,lr,dr){if(!!Rn){for(var gr in Rn){var zr=pn.get(gr);zr?(rr||(rr={}))[zr.name]=Un(zr,Rn[gr],hn,dr):dr.push(w(gr,lr,e.createCompilerDiagnostic))}return rr}}function Un(pn,Rn,hn,rr){if(ke(pn,Rn)){var lr=pn.type;if(lr==="list"&&e.isArray(Rn))return Ve(pn,Rn,hn,rr);if(!e.isString(lr))return Gr(pn,Rn,rr);var dr=xr(pn,Rn,rr);return Cn(dr)?dr:Cr(pn,hn,dr)}else rr.push(e.createCompilerDiagnostic(e.Diagnostics.Compiler_option_0_requires_a_value_of_type_1,pn.name,ue(pn)))}e.convertJsonOption=Un;function pr(pn,Rn,hn){if(!Cn(hn)){if(pn.type==="list"){var rr=pn;return rr.element.isFilePath||!e.isString(rr.element.type)?e.filter(e.map(hn,function(lr){return pr(rr.element,Rn,lr)}),function(lr){return!!lr}):hn}else if(!e.isString(pn.type))return pn.type.get(e.isString(hn)?hn.toLowerCase():hn);return Cr(pn,Rn,hn)}}function Cr(pn,Rn,hn){return pn.isFilePath&&(hn=e.getNormalizedAbsolutePath(hn,Rn),hn===""&&(hn=".")),hn}function xr(pn,Rn,hn){var rr;if(!Cn(Rn)){var lr=(rr=pn.extraValidation)===null||rr===void 0?void 0:rr.call(pn,Rn);if(!lr)return Rn;hn.push(e.createCompilerDiagnostic.apply(void 0,lr))}}function Gr(pn,Rn,hn){if(!Cn(Rn)){var rr=Rn.toLowerCase(),lr=pn.type.get(rr);if(lr!==void 0)return xr(pn,lr,hn);hn.push(v(pn))}}function Ve(pn,Rn,hn,rr){return e.filter(e.map(Rn,function(lr){return Un(pn.element,lr,hn,rr)}),function(lr){return!!lr})}var Ln=/(^|\/)\*\*\/?$/,Wn=/^[^*?]*(?=\/[^/]*[*?])/;function Je(pn,Rn,hn,rr,lr){lr===void 0&&(lr=e.emptyArray),Rn=e.normalizePath(Rn);var dr=e.createGetCanonicalFileName(rr.useCaseSensitiveFileNames),gr=new e.Map,zr=new e.Map,Tt=new e.Map,ht=pn.validatedFilesSpec,Or=pn.validatedIncludeSpecs,dt=pn.validatedExcludeSpecs,qr=e.getSupportedExtensions(hn,lr),Xt=e.getSuppoertedExtensionsWithJsonIfResolveJsonModule(hn,qr);if(ht)for(var fr=0,Pt=ht;fr0)for(var Ei=function(Vr){if(e.fileExtensionIs(Vr,".json")){if(!Ka){var wt=Or.filter(function(Wr){return e.endsWith(Wr,".json")}),Bt=e.map(e.getRegularExpressionsForWildcards(wt,Rn,"files"),function(Wr){return"^"+Wr+"$"});Ka=Bt?Bt.map(function(Wr){return e.getRegexFromPattern(Wr,rr.useCaseSensitiveFileNames)}):e.emptyArray}var Tr=e.findIndex(Ka,function(Wr){return Wr.test(Vr)});if(Tr!==-1){var vr=dr(Vr);!gr.has(vr)&&!Tt.has(vr)&&Tt.set(vr,Vr)}return"continue"}if(Vn(Vr,gr,zr,qr,dr))return"continue";or(Vr,zr,qr,dr);var Br=dr(Vr);!gr.has(Br)&&!zr.has(Br)&&zr.set(Br,Vr)},ti=0,ta=rr.readDirectory(Rn,Xt,dt,Or,void 0);tiRn}function jn(pn,Rn,hn,rr){return on(pn,e.filter(Rn,function(lr){return!Qn(lr)}),hn,rr)}e.matchesExclude=jn;function on(pn,Rn,hn,rr,lr){var dr=e.getRegularExpressionForWildcard(Rn,e.combinePaths(e.normalizePath(rr),lr),"exclude"),gr=dr&&e.getRegexFromPattern(dr,hn);return gr?gr.test(pn)?!0:!e.hasExtension(pn)&&gr.test(e.ensureTrailingDirectorySeparator(pn)):!1}function fe(pn,Rn,hn,rr,lr){return pn.filter(function(gr){if(!e.isString(gr))return!1;var zr=Ge(gr,hn);return zr!==void 0&&Rn.push(dr.apply(void 0,zr)),zr===void 0});function dr(gr,zr){var Tt=e.getTsConfigPropArrayElementValue(rr,lr,zr);return Tt?e.createDiagnosticForNodeInSourceFile(rr,Tt,gr,zr):e.createCompilerDiagnostic(gr,zr)}}function Ge(pn,Rn){if(Rn&&Ln.test(pn))return[e.Diagnostics.File_specification_cannot_end_in_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,pn];if(Qn(pn))return[e.Diagnostics.File_specification_cannot_contain_a_parent_directory_that_appears_after_a_recursive_directory_wildcard_Asterisk_Asterisk_Colon_0,pn]}function tn(pn,Rn,hn){var rr=pn.validatedIncludeSpecs,lr=pn.validatedExcludeSpecs,dr=e.getRegularExpressionForWildcard(lr,Rn,"exclude"),gr=dr&&new RegExp(dr,hn?"":"i"),zr={};if(rr!==void 0){for(var Tt=[],ht=0,Or=rr;ht0);var be={sourceFile:Te.configFile,commandLine:{options:Te}};qe.setOwnMap(qe.getOrCreateMapOfCacheRedirects(be)),cn==null||cn.setOwnMap(cn.getOrCreateMapOfCacheRedirects(be))}qe.setOwnOptions(Te),cn==null||cn.setOwnOptions(Te)}}function K(Te,qe,cn){return{getOrCreateCacheForDirectory:En,clear:be,update:Xe};function be(){cn.clear()}function Xe(Pe){H(Pe,cn)}function En(Pe,he){var ln=e.toPath(Pe,Te,qe);return j(cn,he,ln,function(){return new e.Map})}}function ee(Te,qe,cn,be,Xe){var En=K(Te,qe,be||(be=Y(cn)));Xe||(Xe=Y(cn));var Pe=ne(Te,qe);return Dt(Dt(Dt({},Pe),En),{getOrCreateCacheForModuleName:sn,clear:he,update:ln,getPackageJsonInfoCache:function(){return Pe}});function he(){En.clear(),Xe.clear(),Pe.clear()}function ln(Un){H(Un,be,Xe)}function sn(Un,pr){return e.Debug.assert(!e.isExternalModuleNameRelative(Un)),j(Xe,pr,Un,An)}function An(){var Un=new e.Map;return{get:pr,set:Cr};function pr(Gr){return Un.get(e.toPath(Gr,Te,qe))}function Cr(Gr,Ve){var Ln=e.toPath(Gr,Te,qe);if(!Un.has(Ln)){Un.set(Ln,Ve);for(var Wn=Ve.resolvedModule&&(Ve.resolvedModule.originalPath||Ve.resolvedModule.resolvedFileName),Je=Wn&&xr(Ln,Wn),kn=Ln;kn!==Je;){var Qn=e.getDirectoryPath(kn);if(Qn===kn||Un.has(Qn))break;Un.set(Qn,Ve),kn=Qn}}}function xr(Gr,Ve){for(var Ln=e.toPath(e.getDirectoryPath(Ve),Te,qe),Wn=0,Je=Math.min(Gr.length,Ln.length);WnR&&(R=z),R===1)return R}return R}break;case 260:{var Y=0;return e.forEachChild(D,function(ne){var j=d(ne,U);switch(j){case 0:return;case 2:Y=2;return;case 1:return Y=1,!0;default:e.Debug.assertNever(j)}}),Y}case 259:return a(D,U);case 79:if(D.isInJSDocNamespace)return 0}return 1}function t(D,U){for(var B=D.propertyName||D.name,R=D.parent;R;){if(e.isBlock(R)||e.isModuleBlock(R)||e.isSourceFile(R)){for(var O=R.statements,k=void 0,M=0,z=O;Mk)&&(k=ne),k===1)return k}}if(k!==void 0)return k}R=R.parent}return 1}var p;(function(D){D[D.None=0]="None",D[D.IsContainer=1]="IsContainer",D[D.IsBlockScopedContainer=2]="IsBlockScopedContainer",D[D.IsControlFlowContainer=4]="IsControlFlowContainer",D[D.IsFunctionLike=8]="IsFunctionLike",D[D.IsFunctionExpression=16]="IsFunctionExpression",D[D.HasLocals=32]="HasLocals",D[D.IsInterface=64]="IsInterface",D[D.IsObjectLiteralOrClassExpressionMethod=128]="IsObjectLiteralOrClassExpressionMethod"})(p||(p={}));function P(D){return e.Debug.attachFlowNodeDebugInfo(D),D}var J=v();function h(D,U){e.tracing===null||e.tracing===void 0||e.tracing.push("bind","bindSourceFile",{path:D.path},!0),e.performance.mark("beforeBind"),e.perfLogger.logStartBindFile(""+D.fileName),J(D,U),e.perfLogger.logStopBindFile(),e.performance.mark("afterBind"),e.performance.measure("Bind","beforeBind","afterBind"),e.tracing===null||e.tracing===void 0||e.tracing.pop()}e.bindSourceFile=h;function v(){var D,U,B,R,O,k,M,z,Y,ne,j,H,K,ee,b,A,E,x,C,m,c,f,N=!1,V=0,Z,S,ce={flags:1},ge={flags:1},ae=bn();function F(pe,Pn,mr,Ce,Xn){return e.createDiagnosticForNodeInSourceFile(e.getSourceFileOfNode(pe)||D,pe,Pn,mr,Ce,Xn)}function re(pe,Pn){D=pe,U=Pn,B=e.getEmitScriptTarget(U),f=q(D,Pn),S=new e.Set,V=0,Z=e.objectAllocator.getSymbolConstructor(),e.Debug.attachFlowNodeDebugInfo(ce),e.Debug.attachFlowNodeDebugInfo(ge),D.locals||(Pa(D),D.symbolCount=V,D.classifiableNames=S,vr()),D=void 0,U=void 0,B=void 0,R=void 0,O=void 0,k=void 0,M=void 0,z=void 0,Y=void 0,ne=!1,j=void 0,H=void 0,K=void 0,ee=void 0,b=void 0,A=void 0,E=void 0,C=void 0,m=!1,N=!1,c=0}return re;function q(pe,Pn){return e.getStrictOptionValue(Pn,"alwaysStrict")&&!pe.isDeclarationFile?!0:!!pe.externalModuleIndicator}function ue(pe,Pn){return V++,new Z(pe,Pn)}function ke(pe,Pn,mr){pe.flags|=mr,Pn.symbol=pe,pe.declarations=e.appendIfUnique(pe.declarations,Pn),mr&(32|384|1536|3)&&!pe.exports&&(pe.exports=e.createSymbolTable()),mr&(32|64|2048|4096)&&!pe.members&&(pe.members=e.createSymbolTable()),pe.constEnumOnlyModule&&pe.flags&(16|32|256)&&(pe.constEnumOnlyModule=!1),mr&111551&&e.setValueDeclaration(pe,Pn)}function de(pe){if(pe.kind===269)return pe.isExportEquals?"export=":"default";var Pn=e.getNameOfDeclaration(pe);if(Pn){if(e.isAmbientModule(pe)){var mr=e.getTextOfIdentifierOrLiteral(Pn);return e.isGlobalScopeAugmentation(pe)?"__global":'"'+mr+'"'}if(Pn.kind===160){var Ce=Pn.expression;if(e.isStringOrNumericLiteralLike(Ce))return e.escapeLeadingUnderscores(Ce.text);if(e.isSignedNumericLiteral(Ce))return e.tokenToString(Ce.operator)+Ce.operand.text;e.Debug.fail("Only computed properties with literal names have declaration names")}if(e.isPrivateIdentifier(Pn)){var Xn=e.getContainingClass(pe);if(!Xn)return;var it=Xn.symbol;return e.getSymbolNameForPrivateIdentifier(it,Pn.escapedText)}return e.isPropertyNameLiteral(Pn)?e.getEscapedTextOfIdentifierOrLiteral(Pn):void 0}switch(pe.kind){case 169:return"__constructor";case 177:case 172:case 318:return"__call";case 178:case 173:return"__new";case 174:return"__index";case 270:return"__export";case 300:return"export=";case 219:if(e.getAssignmentDeclarationKind(pe)===2)return"export=";e.Debug.fail("Unknown binary declaration kind");break;case 312:return e.isJSDocConstructSignature(pe)?"__new":"__call";case 162:e.Debug.assert(pe.parent.kind===312,"Impossible parameter parent kind",function(){return"parent is: "+(e.SyntaxKind?e.SyntaxKind[pe.parent.kind]:pe.parent.kind)+", expected JSDocFunctionType"});var Wt=pe.parent,oa=Wt.parameters.indexOf(pe);return"arg"+oa}}function xe(pe){return e.isNamedDeclaration(pe)?e.declarationNameToString(pe.name):e.unescapeLeadingUnderscores(e.Debug.checkDefined(de(pe)))}function Le(pe,Pn,mr,Ce,Xn,it,Wt){e.Debug.assert(Wt||!e.hasDynamicName(mr));var oa=e.hasSyntacticModifier(mr,512)||e.isExportSpecifier(mr)&&mr.name.escapedText==="default",ci=Wt?"__computed":oa&&Pn?"default":de(mr),ui;if(ci===void 0)ui=ue(0,"__missing");else if(ui=pe.get(ci),Ce&2885600&&S.add(ci),!ui)pe.set(ci,ui=ue(0,ci)),it&&(ui.isReplaceableByMethod=!0);else{if(it&&!ui.isReplaceableByMethod)return ui;if(ui.flags&Xn){if(ui.isReplaceableByMethod)pe.set(ci,ui=ue(0,ci));else if(!(Ce&3&&ui.flags&67108864)){e.isNamedDeclaration(mr)&&e.setParent(mr.name,mr);var xn=ui.flags&2?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,$o=!0;(ui.flags&384||Ce&384)&&(xn=e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations,$o=!1);var Jo=!1;e.length(ui.declarations)&&(oa||ui.declarations&&ui.declarations.length&&mr.kind===269&&!mr.isExportEquals)&&(xn=e.Diagnostics.A_module_cannot_have_multiple_default_exports,$o=!1,Jo=!0);var Ms=[];e.isTypeAliasDeclaration(mr)&&e.nodeIsMissing(mr.type)&&e.hasSyntacticModifier(mr,1)&&ui.flags&(2097152|788968|1920)&&Ms.push(F(mr,e.Diagnostics.Did_you_mean_0,"export type { "+e.unescapeLeadingUnderscores(mr.name.escapedText)+" }"));var Hs=e.getNameOfDeclaration(mr)||mr;e.forEach(ui.declarations,function(_s,ll){var ec=e.getNameOfDeclaration(_s)||_s,ql=F(ec,xn,$o?xe(_s):void 0);D.bindDiagnostics.push(Jo?e.addRelatedInfo(ql,F(Hs,ll===0?e.Diagnostics.Another_export_default_is_here:e.Diagnostics.and_here)):ql),Jo&&Ms.push(F(ec,e.Diagnostics.The_first_export_default_is_here))});var Li=F(Hs,xn,$o?xe(mr):void 0);D.bindDiagnostics.push(e.addRelatedInfo.apply(void 0,Mr([Li],Ms,!1))),ui=ue(0,ci)}}}return ke(ui,mr,Ce),ui.parent?e.Debug.assert(ui.parent===Pn,"Existing symbol parent should match new one"):ui.parent=Pn,ui}function He(pe,Pn,mr){var Ce=!!(e.getCombinedModifierFlags(pe)&1)||Ne(pe);if(Pn&2097152)return pe.kind===273||pe.kind===263&&Ce?Le(O.symbol.exports,O.symbol,pe,Pn,mr):Le(O.locals,void 0,pe,Pn,mr);if(e.isJSDocTypeAlias(pe)&&e.Debug.assert(e.isInJSFile(pe)),!e.isAmbientModule(pe)&&(Ce||O.flags&64)){if(!O.locals||e.hasSyntacticModifier(pe,512)&&!de(pe))return Le(O.symbol.exports,O.symbol,pe,Pn,mr);var Xn=Pn&111551?1048576:0,it=Le(O.locals,void 0,pe,Xn,mr);return it.exportSymbol=Le(O.symbol.exports,O.symbol,pe,Pn,mr),pe.localSymbol=it,it}else return Le(O.locals,void 0,pe,Pn,mr)}function Ne(pe){if(pe.parent&&e.isModuleDeclaration(pe)&&(pe=pe.parent),!e.isJSDocTypeAlias(pe))return!1;if(!e.isJSDocEnumTag(pe)&&!!pe.fullName)return!0;var Pn=e.getNameOfDeclaration(pe);return Pn?!!(e.isPropertyAccessEntityNameExpression(Pn.parent)&&Ea(Pn.parent)||e.isDeclaration(Pn.parent)&&e.getCombinedModifierFlags(Pn.parent)&1):!1}function De(pe,Pn){var mr=O,Ce=k,Xn=M;if(Pn&1?(pe.kind!==212&&(k=O),O=M=pe,Pn&32&&(O.locals=e.createSymbolTable()),fr(O)):Pn&2&&(M=pe,M.locals=void 0),Pn&4){var it=j,Wt=H,oa=K,ci=ee,ui=E,xn=C,$o=m,Jo=Pn&16&&!e.hasSyntacticModifier(pe,256)&&!pe.asteriskToken&&!!e.getImmediatelyInvokedFunctionExpression(pe);Jo||(j=P({flags:2}),Pn&(16|128)&&(j.node=pe)),ee=Jo||pe.kind===169||pe.kind===168||e.isInJSFile(pe)&&(pe.kind===254||pe.kind===211)?vn():void 0,E=void 0,H=void 0,K=void 0,C=void 0,m=!1,Ie(pe),pe.flags&=~2816,!(j.flags&1)&&Pn&8&&e.nodeIsPresent(pe.body)&&(pe.flags|=256,m&&(pe.flags|=512),pe.endFlowNode=j),pe.kind===300&&(pe.flags|=c,pe.endFlowNode=j),ee&&(ie(ee,j),j=Be(ee),(pe.kind===169||pe.kind===168||e.isInJSFile(pe)&&(pe.kind===254||pe.kind===211))&&(pe.returnFlowNode=j)),Jo||(j=it),H=Wt,K=oa,ee=ci,E=ui,C=xn,m=$o}else Pn&64?(ne=!1,Ie(pe),pe.flags=ne?pe.flags|128:pe.flags&~128):Ie(pe);O=mr,k=Ce,M=Xn}function Ee(pe){We(pe,function(Pn){return Pn.kind===254?Pa(Pn):void 0}),We(pe,function(Pn){return Pn.kind!==254?Pa(Pn):void 0})}function We(pe,Pn){Pn===void 0&&(Pn=Pa),pe!==void 0&&e.forEach(pe,Pn)}function ye(pe){e.forEachChild(pe,Pa,We)}function Ie(pe){var Pn=N;if(N=!1,bs(pe)){ye(pe),co(pe),N=Pn;return}switch(pe.kind>=235&&pe.kind<=251&&!U.allowUnreachableCode&&(pe.flowNode=j),pe.kind){case 239:ln(pe);break;case 238:sn(pe);break;case 240:An(pe);break;case 241:case 242:Un(pe);break;case 237:pr(pe);break;case 245:case 249:Cr(pe);break;case 244:case 243:Ve(pe);break;case 250:Ln(pe);break;case 247:Wn(pe);break;case 261:Je(pe);break;case 287:kn(pe);break;case 236:Qn(pe);break;case 248:on(pe);break;case 217:le(pe);break;case 218:Vn(pe);break;case 219:if(e.isDestructuringAssignment(pe)){N=Pn,or(pe);return}ae(pe);break;case 213:In(pe);break;case 220:pn(pe);break;case 252:hn(pe);break;case 204:case 205:dt(pe);break;case 206:qr(pe);break;case 228:Or(pe);break;case 340:case 333:case 334:lr(pe);break;case 300:{Ee(pe.statements),Pa(pe.endOfFileToken);break}case 233:case 260:Ee(pe.statements);break;case 201:rr(pe);break;case 203:case 202:case 291:case 223:N=Pn;default:ye(pe);break}co(pe),N=Pn}function je(pe){switch(pe.kind){case 79:case 80:case 108:case 204:case 205:return Me(pe);case 206:return we(pe);case 210:case 228:return je(pe.expression);case 219:return Cn(pe);case 217:return pe.operator===53&&je(pe.operand);case 214:return je(pe.expression)}return!1}function Sn(pe){return e.isDottedName(pe)||(e.isPropertyAccessExpression(pe)||e.isNonNullExpression(pe)||e.isParenthesizedExpression(pe))&&Sn(pe.expression)||e.isBinaryExpression(pe)&&pe.operatorToken.kind===27&&Sn(pe.right)||e.isElementAccessExpression(pe)&&e.isStringOrNumericLiteralLike(pe.argumentExpression)&&Sn(pe.expression)||e.isAssignmentExpression(pe)&&Sn(pe.left)}function Me(pe){return Sn(pe)||e.isOptionalChain(pe)&&Me(pe.expression)}function we(pe){if(pe.arguments)for(var Pn=0,mr=pe.arguments;Pn=117&&pe.originalKeywordKind<=125?D.bindDiagnostics.push(F(pe,Wr(pe),e.declarationNameToString(pe))):pe.originalKeywordKind===131?e.isExternalModule(D)&&e.isInTopLevelContext(pe)?D.bindDiagnostics.push(F(pe,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_at_the_top_level_of_a_module,e.declarationNameToString(pe))):pe.flags&32768&&D.bindDiagnostics.push(F(pe,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(pe))):pe.originalKeywordKind===125&&pe.flags&8192&&D.bindDiagnostics.push(F(pe,e.Diagnostics.Identifier_expected_0_is_a_reserved_word_that_cannot_be_used_here,e.declarationNameToString(pe))))}function Wr(pe){return e.getContainingClass(pe)?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Class_definitions_are_automatically_in_strict_mode:D.externalModuleIndicator?e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode_Modules_are_automatically_in_strict_mode:e.Diagnostics.Identifier_expected_0_is_a_reserved_word_in_strict_mode}function tt(pe){pe.escapedText==="#constructor"&&(D.parseDiagnostics.length||D.bindDiagnostics.push(F(pe,e.Diagnostics.constructor_is_a_reserved_word,e.declarationNameToString(pe))))}function er(pe){f&&e.isLeftHandSideExpression(pe.left)&&e.isAssignmentOperator(pe.operatorToken.kind)&&bi(pe,pe.left)}function Zt(pe){f&&pe.variableDeclaration&&bi(pe,pe.variableDeclaration.name)}function Ra(pe){if(f&&pe.expression.kind===79){var Pn=e.getErrorSpanForNode(D,pe.expression);D.bindDiagnostics.push(e.createFileDiagnostic(D,Pn.start,Pn.length,e.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode))}}function Va(pe){return e.isIdentifier(pe)&&(pe.escapedText==="eval"||pe.escapedText==="arguments")}function bi(pe,Pn){if(Pn&&Pn.kind===79){var mr=Pn;if(Va(mr)){var Ce=e.getErrorSpanForNode(D,Pn);D.bindDiagnostics.push(e.createFileDiagnostic(D,Ce.start,Ce.length,Fa(pe),e.idText(mr)))}}}function Fa(pe){return e.getContainingClass(pe)?e.Diagnostics.Code_contained_in_a_class_is_evaluated_in_JavaScript_s_strict_mode_which_does_not_allow_this_use_of_0_For_more_information_see_https_Colon_Slash_Slashdeveloper_mozilla_org_Slashen_US_Slashdocs_SlashWeb_SlashJavaScript_SlashReference_SlashStrict_mode:D.externalModuleIndicator?e.Diagnostics.Invalid_use_of_0_Modules_are_automatically_in_strict_mode:e.Diagnostics.Invalid_use_of_0_in_strict_mode}function ei(pe){f&&bi(pe,pe.name)}function Di(pe){return e.getContainingClass(pe)?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Class_definitions_are_automatically_in_strict_mode:D.externalModuleIndicator?e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5_Modules_are_automatically_in_strict_mode:e.Diagnostics.Function_declarations_are_not_allowed_inside_blocks_in_strict_mode_when_targeting_ES3_or_ES5}function Vi(pe){if(B<2&&M.kind!==300&&M.kind!==259&&!e.isFunctionLikeOrClassStaticBlockDeclaration(M)){var Pn=e.getErrorSpanForNode(D,pe);D.bindDiagnostics.push(e.createFileDiagnostic(D,Pn.start,Pn.length,Di(pe)))}}function ni(pe){f&&pe.numericLiteralFlags&32&&D.bindDiagnostics.push(F(pe,e.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode))}function Ti(pe){f&&bi(pe,pe.operand)}function Ci(pe){f&&(pe.operator===45||pe.operator===46)&&bi(pe,pe.operand)}function Zi(pe){f&&ho(pe,e.Diagnostics.with_statements_are_not_allowed_in_strict_mode)}function Ki(pe){f&&U.target>=2&&(e.isDeclarationStatement(pe.statement)||e.isVariableStatement(pe.statement))&&ho(pe.label,e.Diagnostics.A_label_is_not_allowed_here)}function ho(pe,Pn,mr,Ce,Xn){var it=e.getSpanOfTokenAtPosition(D,pe.pos);D.bindDiagnostics.push(e.createFileDiagnostic(D,it.start,it.length,Pn,mr,Ce,Xn))}function Ri(pe,Pn,mr){zi(pe,Pn,Pn,mr)}function zi(pe,Pn,mr,Ce){Qo(pe,{pos:e.getTokenPosOfNode(Pn,D),end:mr.end},Ce)}function Qo(pe,Pn,mr){var Ce=e.createFileDiagnostic(D,Pn.pos,Pn.end-Pn.pos,mr);pe?D.bindDiagnostics.push(Ce):D.bindSuggestionDiagnostics=e.append(D.bindSuggestionDiagnostics,Dt(Dt({},Ce),{category:e.DiagnosticCategory.Suggestion}))}function Pa(pe){if(!!pe){e.setParent(pe,R);var Pn=f;if(Wi(pe),pe.kind>158){var mr=R;R=pe;var Ce=Xt(pe);Ce===0?Ie(pe):De(pe,Ce),R=mr}else{var mr=R;pe.kind===1&&(R=pe),co(pe),R=mr}f=Pn}}function co(pe){if(e.hasJSDocNodes(pe))if(e.isInJSFile(pe))for(var Pn=0,mr=pe.jsDoc;Pn>",0,fe),ni=Mc(void 0,void 0,void 0,e.emptyArray,fe,void 0,0,0),Ti=Mc(void 0,void 0,void 0,e.emptyArray,le,void 0,0,0),Ci=Mc(void 0,void 0,void 0,e.emptyArray,fe,void 0,0,0),Zi=Mc(void 0,void 0,void 0,e.emptyArray,fa,void 0,0,0),Ki=vu(gr,dr,!0),ho=new e.Map,Ri={get yieldType(){return e.Debug.fail("Not supported")},get returnType(){return e.Debug.fail("Not supported")},get nextType(){return e.Debug.fail("Not supported")}},zi=Of(fe,fe,fe),Qo=Of(fe,fe,bn),Pa=Of(Pt,fe,In),co={iterableCacheKey:"iterationTypesOfAsyncIterable",iteratorCacheKey:"iterationTypesOfAsyncIterator",iteratorSymbolName:"asyncIterator",getGlobalIteratorType:$x,getGlobalIterableType:Zx,getGlobalIterableIteratorType:eI,getGlobalGeneratorType:nI,resolveIterationType:tu,mustHaveANextMethodDiagnostic:e.Diagnostics.An_async_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_async_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_async_iterator_must_be_a_promise_for_a_type_with_a_value_property},za={iterableCacheKey:"iterationTypesOfIterable",iteratorCacheKey:"iterationTypesOfIterator",iteratorSymbolName:"iterator",getGlobalIteratorType:rI,getGlobalIterableType:x0,getGlobalIterableIteratorType:tI,getGlobalGeneratorType:aI,resolveIterationType:function(n,r){return n},mustHaveANextMethodDiagnostic:e.Diagnostics.An_iterator_must_have_a_next_method,mustBeAMethodDiagnostic:e.Diagnostics.The_0_property_of_an_iterator_must_be_a_method,mustHaveAValueDiagnostic:e.Diagnostics.The_type_returned_by_the_0_method_of_an_iterator_must_have_a_value_property},fi,Wi=new e.Map,_o=!1,No,Mo,yo,qo,So,Zo,fn,cr,Hr,zt,Oe,Zn,Pr,te,Q,Ae,Fe,Ze,Gn,Yn,_r,kr,Et,Vt,Ea,da,ai,ji,wi,Gi,hs,as,cs,ks,pl,ml,yl,Ss,Es,sl,El,bs,pe=new e.Map,Pn=0,mr=0,Ce=0,Xn=!1,it=0,Wt,oa,ci,ui=Tc(""),xn=Df(0),$o=Ob({negative:!1,base10Value:"0"}),Jo=[],Ms=[],Hs=[],Li=0,_s=10,ll=[],ec=[],ql=[],Du=[],bl=[],Lc=[],Ac=[],Tl=[],Dn=[],nr=[],Sr=[],Qr=[],lt=[],ct=[],Nt=[],Jt=[],Ut=e.createDiagnosticCollection(),ii=e.createDiagnosticCollection(),ga=new e.Map(e.getEntries({string:dr,number:gr,bigint:zr,boolean:qr,symbol:Xt,undefined:In})),Ia=Hc(),_e,nn,_n,sr=new e.Map,$r=new e.Map,Ft=new e.Map,Lt=new e.Map,Na=new e.Map,Ni=new e.Map,qi=e.createSymbolTable();return qi.set(qe.escapedName,qe),K6(),Pe;function go(n){if(n){var r=e.getSourceFileOfNode(n);if(r)if(e.isJsxOpeningFragment(n)){if(r.localJsxFragmentNamespace)return r.localJsxFragmentNamespace;var i=r.pragmas.get("jsxfrag");if(i){var o=e.isArray(i)?i[0]:i;if(r.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,je),e.visitNode(r.localJsxFragmentFactory,L),r.localJsxFragmentFactory)return r.localJsxFragmentNamespace=e.getFirstIdentifier(r.localJsxFragmentFactory).escapedText}var s=WS(n);if(s)return r.localJsxFragmentFactory=s,r.localJsxFragmentNamespace=e.getFirstIdentifier(s).escapedText}else{if(r.localJsxNamespace)return r.localJsxNamespace;var u=r.pragmas.get("jsx");if(u){var o=e.isArray(u)?u[0]:u;if(r.localJsxFactory=e.parseIsolatedEntityName(o.arguments.factory,je),e.visitNode(r.localJsxFactory,L),r.localJsxFactory)return r.localJsxNamespace=e.getFirstIdentifier(r.localJsxFactory).escapedText}}}return _e||(_e="React",Ie.jsxFactory?(nn=e.parseIsolatedEntityName(Ie.jsxFactory,je),e.visitNode(nn,L),nn&&(_e=e.getFirstIdentifier(nn).escapedText)):Ie.reactNamespace&&(_e=e.escapeLeadingUnderscores(Ie.reactNamespace))),nn||(nn=e.factory.createQualifiedName(e.factory.createIdentifier(e.unescapeLeadingUnderscores(_e)),"createElement")),_e;function L(G){return e.setTextRangePosEnd(G,-1,-1),e.visitEachChild(G,L,e.nullTransformationContext)}}function di(n,r){return W2(n,r),oe}function io(n,r,i,o,s,u){var L=n?e.createDiagnosticForNode(n,r,i,o,s,u):e.createCompilerDiagnostic(r,i,o,s,u),G=Ut.lookup(L);return G||(Ut.add(L),L)}function wo(n,r,i,o,s,u,L){var G=On(r,i,o,s,u,L);return G.skippedOn=n,G}function ko(n,r,i,o,s,u){return n?e.createDiagnosticForNode(n,r,i,o,s,u):e.createCompilerDiagnostic(r,i,o,s,u)}function On(n,r,i,o,s,u){var L=ko(n,r,i,o,s,u);return Ut.add(L),L}function Rs(n,r){n?Ut.add(r):ii.add(Dt(Dt({},r),{category:e.DiagnosticCategory.Suggestion}))}function Pl(n,r,i,o,s,u,L){if(r.pos<0||r.end<0){if(!n)return;var G=e.getSourceFileOfNode(r);Rs(n,"message"in i?e.createFileDiagnostic(G,0,0,i,o,s,u,L):e.createDiagnosticForFileFromMessageChain(G,i));return}Rs(n,"message"in i?e.createDiagnosticForNode(r,i,o,s,u,L):e.createDiagnosticForNodeFromMessageChain(r,i))}function _l(n,r,i,o,s,u,L){var G=On(n,i,o,s,u,L);if(r){var me=e.createDiagnosticForNode(n,e.Diagnostics.Did_you_forget_to_use_await);e.addRelatedInfo(G,me)}return G}function wu(n,r){var i=Array.isArray(n)?e.forEach(n,e.getJSDocDeprecatedTag):e.getJSDocDeprecatedTag(n);return i&&e.addRelatedInfo(r,e.createDiagnosticForNode(i,e.Diagnostics.The_declaration_was_marked_as_deprecated_here)),ii.add(r),r}function Cl(n,r,i){var o=e.createDiagnosticForNode(n,e.Diagnostics._0_is_deprecated,i);return wu(r,o)}function au(n,r,i,o){var s=i?e.createDiagnosticForNode(n,e.Diagnostics.The_signature_0_of_1_is_deprecated,o,i):e.createDiagnosticForNode(n,e.Diagnostics._0_is_deprecated,o);return wu(r,s)}function Xi(n,r,i){xe++;var o=new q(n|33554432,r);return o.checkFlags=i||0,o}function gl(n){var r=0;return n&2&&(r|=111551),n&1&&(r|=111550),n&4&&(r|=0),n&8&&(r|=900095),n&16&&(r|=110991),n&32&&(r|=899503),n&64&&(r|=788872),n&256&&(r|=899327),n&128&&(r|=899967),n&512&&(r|=110735),n&8192&&(r|=103359),n&32768&&(r|=46015),n&65536&&(r|=78783),n&262144&&(r|=526824),n&524288&&(r|=788968),n&2097152&&(r|=2097152),r}function iu(n,r){r.mergeId||(r.mergeId=p,p++),ll[r.mergeId]=n}function Fu(n){var r=Xi(n.flags,n.escapedName);return r.declarations=n.declarations?n.declarations.slice():[],r.parent=n.parent,n.valueDeclaration&&(r.valueDeclaration=n.valueDeclaration),n.constEnumOnlyModule&&(r.constEnumOnlyModule=!0),n.members&&(r.members=new e.Map(n.members)),n.exports&&(r.exports=new e.Map(n.exports)),iu(r,n),r}function ou(n,r,i){if(i===void 0&&(i=!1),!(n.flags&gl(r.flags))||(r.flags|n.flags)&67108864){if(r===n)return n;if(!(n.flags&33554432)){var o=Yi(n);if(o===jn)return r;n=Fu(o)}r.flags&512&&n.flags&512&&n.constEnumOnlyModule&&!r.constEnumOnlyModule&&(n.constEnumOnlyModule=!1),n.flags|=r.flags,r.valueDeclaration&&e.setValueDeclaration(n,r.valueDeclaration),e.addRange(n.declarations,r.declarations),r.members&&(n.members||(n.members=e.createSymbolTable()),nc(n.members,r.members,i)),r.exports&&(n.exports||(n.exports=e.createSymbolTable()),nc(n.exports,r.exports,i)),i||iu(n,r)}else if(n.flags&1024)n!==cn&&On(r.declarations&&e.getNameOfDeclaration(r.declarations[0]),e.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity,Oa(n));else{var s=!!(n.flags&384||r.flags&384),u=!!(n.flags&2||r.flags&2),L=s?e.Diagnostics.Enum_declarations_can_only_merge_with_namespace_or_other_enum_declarations:u?e.Diagnostics.Cannot_redeclare_block_scoped_variable_0:e.Diagnostics.Duplicate_identifier_0,G=r.declarations&&e.getSourceFileOfNode(r.declarations[0]),me=n.declarations&&e.getSourceFileOfNode(n.declarations[0]),Re=Oa(r);if(G&&me&&fi&&!s&&G!==me){var Ue=e.comparePaths(G.path,me.path)===-1?G:me,Ke=Ue===G?me:G,Qe=e.getOrUpdate(fi,Ue.path+"|"+Ke.path,function(){return{firstFile:Ue,secondFile:Ke,conflictingSymbols:new e.Map}}),yn=e.getOrUpdate(Qe.conflictingSymbols,Re,function(){return{isBlockScoped:u,firstFileLocations:[],secondFileLocations:[]}});Hn(yn.firstFileLocations,r),Hn(yn.secondFileLocations,n)}else Ff(r,L,Re,n),Ff(n,L,Re,r)}return n;function Hn($n,Er){if(Er.declarations)for(var hr=0,Ir=Er.declarations;hr=5||e.some(u.relatedInformation,function(Hn){return e.compareDiagnostics(Hn,yn)===0||e.compareDiagnostics(Hn,Qe)===0}))return"continue";e.addRelatedInfo(u,e.length(u.relatedInformation)?yn:Qe)},G=0,me=o||e.emptyArray;G1);return}if(e.isGlobalScopeAugmentation(s))nc(Te,s.symbol.exports);else{var u=n.parent.parent.flags&8388608?void 0:e.Diagnostics.Invalid_module_name_in_augmentation_module_0_cannot_be_found,L=Ya(n,n,u,!0);if(!L)return;if(L=ut(L),L.flags&1920)if(e.some(Mo,function(Hn){return L===Hn.symbol})){var G=ou(s.symbol,L,!0);yo||(yo=new e.Map),yo.set(n.text,G)}else{if(((i=L.exports)===null||i===void 0?void 0:i.get("__export"))&&((o=s.symbol.exports)===null||o===void 0?void 0:o.size))for(var me=jp(L,"resolvedExports"),Re=0,Ue=e.arrayFrom(s.symbol.exports.entries());ReKe.end)return!1;var Hn=e.findAncestor(Qe,function($n){if($n===Ke)return"quit";switch($n.kind){case 212:return!0;case 165:return yn&&(e.isPropertyDeclaration(Ke)&&$n.parent===Ke.parent||e.isParameterPropertyDeclaration(Ke,Ke.parent)&&$n.parent===Ke.parent.parent)?"quit":!0;case 233:switch($n.parent.kind){case 170:case 167:case 171:return!0;default:return!1}default:return!1}});return Hn===void 0}}function Ap(n,r,i){var o=e.getEmitScriptTarget(Ie),s=r;if(e.isParameter(i)&&s.body&&n.valueDeclaration&&n.valueDeclaration.pos>=s.body.pos&&n.valueDeclaration.end<=s.body.end&&o>=2){var u=aa(s);return u.declarationRequiresScopeChange===void 0&&(u.declarationRequiresScopeChange=e.forEach(s.parameters,L)||!1),!u.declarationRequiresScopeChange}return!1;function L(me){return G(me.name)||!!me.initializer&&G(me.initializer)}function G(me){switch(me.kind){case 212:case 211:case 254:case 169:return!1;case 167:case 170:case 171:case 291:return G(me.name);case 165:return e.hasStaticModifier(me)?o<99||!Me:G(me.name);default:return e.isNullishCoalesce(me)||e.isOptionalChain(me)?o<7:e.isBindingElement(me)&&me.dotDotDotToken&&e.isObjectBindingPattern(me.parent)?o<4:e.isTypeNode(me)?!1:e.forEachChild(me,G)||!1}}}function Fo(n,r,i,o,s,u,L,G){return L===void 0&&(L=!1),xc(n,r,i,o,s,u,L,Ro,G)}function xc(n,r,i,o,s,u,L,G,me){var Re,Ue=n,Ke,Qe,yn,Hn,$n,Er=!1,hr=n,Ir,Yr=!1;e:for(;n;){if(n.locals&&!Cc(n)&&(Ke=G(n.locals,r,i))){var It=!0;if(e.isFunctionLike(n)&&Qe&&Qe!==n.body?(i&Ke.flags&788968&&Qe.kind!==315&&(It=Ke.flags&262144?Qe===n.type||Qe.kind===162||Qe.kind===161:!1),i&Ke.flags&3&&(Ap(Ke,n,Qe)?It=!1:Ke.flags&1&&(It=Qe.kind===162||Qe===n.type&&!!e.findAncestor(Ke.valueDeclaration,e.isParameter)))):n.kind===187&&(It=Qe===n.trueType),It)break e;Ke=void 0}switch(Er=Er||dc(n,Qe),n.kind){case 300:if(!e.isExternalOrCommonJsModule(n))break;Yr=!0;case 259:var rt=bt(n).exports||We;if(n.kind===300||e.isModuleDeclaration(n)&&n.flags&8388608&&!e.isGlobalScopeAugmentation(n)){if(Ke=rt.get("default")){var ca=e.getLocalSymbolForExportDefault(Ke);if(ca&&Ke.flags&i&&ca.escapedName===r)break e;Ke=void 0}var Yt=rt.get(r);if(Yt&&Yt.flags===2097152&&(e.getDeclarationOfKind(Yt,273)||e.getDeclarationOfKind(Yt,272)))break}if(r!=="default"&&(Ke=G(rt,r,i&2623475)))if(e.isSourceFile(n)&&n.commonJsModuleIndicator&&!((Re=Ke.declarations)===null||Re===void 0?void 0:Re.some(e.isJSDocTypeAlias)))Ke=void 0;else break e;break;case 258:if(Ke=G(bt(n).exports,r,i&8))break e;break;case 165:if(!e.isStatic(n)){var qa=ic(n.parent);qa&&qa.locals&&G(qa.locals,r,i&111551)&&(Hn=n)}break;case 255:case 224:case 256:if(Ke=G(bt(n).members||We,r,i&788968)){if(!Gf(Ke,n)){Ke=void 0;break}if(Qe&&e.isStatic(Qe)){On(hr,e.Diagnostics.Static_members_cannot_reference_class_type_parameters);return}break e}if(n.kind===224&&i&32){var Ga=n.name;if(Ga&&r===Ga.escapedText){Ke=n.symbol;break e}}break;case 226:if(Qe===n.expression&&n.parent.token===94){var gi=n.parent.parent;if(e.isClassLike(gi)&&(Ke=G(bt(gi).members,r,i&788968))){o&&On(hr,e.Diagnostics.Base_class_expressions_cannot_reference_class_type_parameters);return}}break;case 160:if(Ir=n.parent.parent,(e.isClassLike(Ir)||Ir.kind===256)&&(Ke=G(bt(Ir).members,r,i&788968))){On(hr,e.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type);return}break;case 212:if(Ie.target>=2)break;case 167:case 169:case 170:case 171:case 254:if(i&3&&r==="arguments"){Ke=be;break e}break;case 211:if(i&3&&r==="arguments"){Ke=be;break e}if(i&16){var Ba=n.name;if(Ba&&r===Ba.escapedText){Ke=n.symbol;break e}}break;case 163:n.parent&&n.parent.kind===162&&(n=n.parent),n.parent&&(e.isClassElement(n.parent)||n.parent.kind===255)&&(n=n.parent);break;case 340:case 333:case 334:var Ui=e.getJSDocRoot(n);Ui&&(n=Ui.parent);break;case 162:Qe&&(Qe===n.initializer||Qe===n.name&&e.isBindingPattern(Qe))&&($n||($n=n));break;case 201:Qe&&(Qe===n.initializer||Qe===n.name&&e.isBindingPattern(Qe))&&e.isParameterDeclaration(n)&&!$n&&($n=n);break;case 188:if(i&262144){var to=n.typeParameter.name;if(to&&r===to.escapedText){Ke=n.typeParameter.symbol;break e}}break}vl(n)&&(yn=n),Qe=n,n=n.parent}if(u&&Ke&&(!yn||Ke!==yn.symbol)&&(Ke.isReferenced|=i),!Ke){if(Qe&&(e.Debug.assert(Qe.kind===300),Qe.commonJsModuleIndicator&&r==="exports"&&i&Qe.symbol.flags))return Qe.symbol;L||(Ke=G(Te,r,i))}if(!Ke&&Ue&&e.isInJSFile(Ue)&&Ue.parent&&e.isRequireCall(Ue.parent,!1))return Xe;if(!Ke){if(o&&(!hr||!md(hr,r,s)&&!_d(hr)&&!Cp(hr,r,i)&&!Ip(hr,r)&&!Np(hr,r,i)&&!kp(hr,r,i)&&!xp(hr,r,i))){var Fr=void 0;if(me&&Li<_s){Fr=eS(Ue,r,i);var Dr=(Fr==null?void 0:Fr.valueDeclaration)&&e.isAmbientModule(Fr.valueDeclaration)&&e.isGlobalScopeAugmentation(Fr.valueDeclaration);if(Dr&&(Fr=void 0),Fr){var ma=Oa(Fr),Sa=YL(Ue,Fr,!1),Ht=Sa?e.Diagnostics.Could_not_find_name_0_Did_you_mean_1:e.Diagnostics.Cannot_find_name_0_Did_you_mean_1,Wa=ko(hr,Ht,xl(s),ma);Rs(!Sa,Wa),Fr.valueDeclaration&&e.addRelatedInfo(Wa,e.createDiagnosticForNode(Fr.valueDeclaration,e.Diagnostics._0_is_declared_here,ma))}}if(!Fr&&s){var Rt=hO(s);Rt?On(hr,o,xl(s),Rt):On(hr,o,xl(s))}Li++}return}if(o){if(Hn&&!(Ie.target===99&&Me)){var vi=Hn.name;On(hr,e.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor,e.declarationNameToString(vi),xl(s));return}if(hr&&(i&2||(i&32||i&384)&&(i&111551)==111551)){var mi=_c(Ke);(mi.flags&2||mi.flags&32||mi.flags&384)&&Uf(mi,hr)}if(Ke&&Yr&&(i&111551)==111551&&!(Ue.flags&4194304)){var Jn=Ji(Ke);e.length(Jn.declarations)&&e.every(Jn.declarations,function(et){return e.isNamespaceExportDeclaration(et)||e.isSourceFile(et)&&!!et.symbol.globalExports})&&Pl(!Ie.allowUmdGlobalAccess,hr,e.Diagnostics._0_refers_to_a_UMD_global_but_the_current_file_is_a_module_Consider_adding_an_import_instead,e.unescapeLeadingUnderscores(r))}if(Ke&&$n&&!Er&&(i&111551)==111551){var mn=Ji(fm(Ke)),Ui=e.getRootDeclaration($n);mn===bt($n)?On(hr,e.Diagnostics.Parameter_0_cannot_reference_itself,e.declarationNameToString($n.name)):mn.valueDeclaration&&mn.valueDeclaration.pos>$n.pos&&Ui.parent.locals&&G(Ui.parent.locals,mn.escapedName,i)===mn&&On(hr,e.Diagnostics.Parameter_0_cannot_reference_identifier_1_declared_after_it,e.declarationNameToString($n.name),e.declarationNameToString(hr))}Ke&&hr&&i&111551&&Ke.flags&2097152&&Os(Ke,r,hr)}return Ke}function Os(n,r,i){if(!e.isValidTypeOnlyAliasUseSite(i)){var o=Nc(n);if(o){var s=e.typeOnlyDeclarationIsExport(o),u=s?e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_exported_using_export_type:e.Diagnostics._0_cannot_be_used_as_a_value_because_it_was_imported_using_import_type,L=s?e.Diagnostics._0_was_exported_here:e.Diagnostics._0_was_imported_here,G=e.unescapeLeadingUnderscores(r);e.addRelatedInfo(On(i,u,G),e.createDiagnosticForNode(o,L,G))}}}function dc(n,r){return n.kind!==212&&n.kind!==211?e.isTypeQueryNode(n)||(e.isFunctionLikeDeclaration(n)||n.kind===165&&!e.isStatic(n))&&(!r||r!==n.name):r&&r===n.name?!1:n.asteriskToken||e.hasSyntacticModifier(n,256)?!0:!e.getImmediatelyInvokedFunctionExpression(n)}function vl(n){switch(n.kind){case 254:case 255:case 256:case 258:case 257:case 259:return!0;default:return!1}}function xl(n){return e.isString(n)?e.unescapeLeadingUnderscores(n):e.declarationNameToString(n)}function Gf(n,r){if(n.declarations)for(var i=0,o=n.declarations;i=e.ModuleKind.ES2015?"allowSyntheticDefaultImports":"esModuleInterop",me=o.exports.get("export="),Re=me.valueDeclaration,Ue=On(n.name,e.Diagnostics.Module_0_can_only_be_default_imported_using_the_1_flag,Oa(o),G);Re&&e.addRelatedInfo(Ue,e.createDiagnosticForNode(Re,e.Diagnostics.This_module_is_declared_with_using_export_and_can_only_be_used_with_a_default_import_when_using_the_0_flag,G))}else Op(o,n);else if(L){var Ke=ut(o,r)||Yi(o,r);return ws(n,o,Ke,!1),Ke}return ws(n,s,void 0,!1),s}}function Op(n,r){var i,o,s;if((i=n.exports)===null||i===void 0?void 0:i.has(r.symbol.escapedName))On(r.name,e.Diagnostics.Module_0_has_no_default_export_Did_you_mean_to_use_import_1_from_0_instead,Oa(n),Oa(r.symbol));else{var u=On(r.name,e.Diagnostics.Module_0_has_no_default_export,Oa(n)),L=(o=n.exports)===null||o===void 0?void 0:o.get("__export");if(L){var G=(s=L.declarations)===null||s===void 0?void 0:s.find(function(me){var Re,Ue;return!!(e.isExportDeclaration(me)&&me.moduleSpecifier&&((Ue=(Re=so(me,me.moduleSpecifier))===null||Re===void 0?void 0:Re.exports)===null||Ue===void 0?void 0:Ue.has("default")))});G&&e.addRelatedInfo(u,e.createDiagnosticForNode(G,e.Diagnostics.export_Asterisk_does_not_re_export_a_default))}}}function su(n,r){var i=n.parent.parent.moduleSpecifier,o=so(n,i),s=es(o,i,r,!1);return ws(n,o,s,!1),s}function Pp(n,r){var i=n.parent.moduleSpecifier,o=i&&so(n,i),s=i&&es(o,i,r,!1);return ws(n,o,s,!1),s}function Xd(n,r){if(n===jn&&r===jn)return jn;if(n.flags&(788968|1920))return n;var i=Xi(n.flags|r.flags,n.escapedName);return i.declarations=e.deduplicate(e.concatenate(n.declarations,r.declarations),e.equateValues),i.parent=n.parent||r.parent,n.valueDeclaration&&(i.valueDeclaration=n.valueDeclaration),r.members&&(i.members=new e.Map(r.members)),n.exports&&(i.exports=new e.Map(n.exports)),i}function yd(n,r,i,o){if(n.flags&1536){var s=Ls(n).get(r.escapedText),u=Yi(s,o);return ws(i,s,u,!1),u}}function ef(n,r){if(n.flags&3){var i=n.valueDeclaration.type;if(i)return Yi(Gt(ha(i),r))}}function Yd(n,r,i){var o,s;i===void 0&&(i=!1);var u=e.getExternalModuleRequireArgument(n)||n.moduleSpecifier,L=so(n,u),G=!e.isPropertyAccessExpression(r)&&r.propertyName||r.name;if(!!e.isIdentifier(G)){var me=G.escapedText==="default"&&!!(Ie.allowSyntheticDefaultImports||Ie.esModuleInterop),Re=es(L,u,!1,me);if(Re&&G.escapedText){if(e.isShorthandAmbientModuleSymbol(L))return L;var Ue=void 0;L&&L.exports&&L.exports.get("export=")?Ue=Gt(ft(Re),G.escapedText,!0):Ue=ef(Re,G.escapedText),Ue=Yi(Ue,i);var Ke=yd(Re,G,r,i);if(Ke===void 0&&G.escapedText==="default"){var Qe=(o=L.declarations)===null||o===void 0?void 0:o.find(e.isSourceFile);hd(Qe,L,i)&&(Ke=ut(L,i)||Yi(L,i))}var yn=Ke&&Ue&&Ke!==Ue?Xd(Ue,Ke):Ke||Ue;if(!yn){var Hn=cl(L,n),$n=e.declarationNameToString(G),Er=Fy(G,Re);if(Er!==void 0){var hr=Oa(Er),Ir=On(G,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,Hn,$n,hr);Er.valueDeclaration&&e.addRelatedInfo(Ir,e.createDiagnosticForNode(Er.valueDeclaration,e.Diagnostics._0_is_declared_here,hr))}else((s=L.exports)===null||s===void 0?void 0:s.has("default"))?On(G,e.Diagnostics.Module_0_has_no_exported_member_1_Did_you_mean_to_use_import_1_from_0_instead,Hn,$n):lu(n,G,$n,L,Hn)}return yn}}}function lu(n,r,i,o,s){var u,L,G=(L=(u=o.valueDeclaration)===null||u===void 0?void 0:u.locals)===null||L===void 0?void 0:L.get(r.escapedText),me=o.exports;if(G){var Re=me==null?void 0:me.get("export=");if(Re)Ml(Re,G)?Qd(n,r,i,s):On(r,e.Diagnostics.Module_0_has_no_exported_member_1,s,i);else{var Ue=me?e.find(Um(me),function(Qe){return!!Ml(Qe,G)}):void 0,Ke=Ue?On(r,e.Diagnostics.Module_0_declares_1_locally_but_it_is_exported_as_2,s,i,Oa(Ue)):On(r,e.Diagnostics.Module_0_declares_1_locally_but_it_is_not_exported,s,i);G.declarations&&e.addRelatedInfo.apply(void 0,Mr([Ke],e.map(G.declarations,function(Qe,yn){return e.createDiagnosticForNode(Qe,yn===0?e.Diagnostics._0_is_declared_here:e.Diagnostics.and_here,i)}),!1))}}else On(r,e.Diagnostics.Module_0_has_no_exported_member_1,s,i)}function Qd(n,r,i,o){if(Sn>=e.ModuleKind.ES2015){var s=Ie.esModuleInterop?e.Diagnostics._0_can_only_be_imported_by_using_a_default_import:e.Diagnostics._0_can_only_be_imported_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;On(r,s,i)}else if(e.isInJSFile(n)){var s=Ie.esModuleInterop?e.Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_using_a_default_import:e.Diagnostics._0_can_only_be_imported_by_using_a_require_call_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;On(r,s,i)}else{var s=Ie.esModuleInterop?e.Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_a_default_import:e.Diagnostics._0_can_only_be_imported_by_using_import_1_require_2_or_by_turning_on_the_esModuleInterop_flag_and_using_a_default_import;On(r,s,i,i,o)}}function cu(n,r){var i=e.isBindingElement(n)?e.getRootDeclaration(n):n.parent.parent.parent,o=Wf(i),s=Yd(i,o||n,r),u=n.propertyName||n.name;return o&&s&&e.isIdentifier(u)?Yi(Gt(ft(s),u.escapedText),r):(ws(n,void 0,s,!1),s)}function Wf(n){if(e.isVariableDeclaration(n)&&n.initializer&&e.isPropertyAccessExpression(n.initializer))return n.initializer}function Ds(n,r){var i=ut(n.parent.symbol,r);return ws(n,void 0,i,!1),i}function Ic(n,r,i){var o=n.parent.parent.moduleSpecifier?Yd(n.parent.parent,n,i):fo(n.propertyName||n.name,r,!1,i);return ws(n,void 0,o,!1),o}function uu(n,r){var i=e.isExportAssignment(n)?n.expression:n.right,o=Ed(i,r);return ws(n,void 0,o,!1),o}function Ed(n,r){if(e.isClassExpression(n))return Ns(n).symbol;if(!(!e.isEntityName(n)&&!e.isEntityNameExpression(n))){var i=fo(n,111551|788968|1920,!0,r);return i||(Ns(n),aa(n).resolvedSymbol)}}function Zd(n,r){var i=n.initializer;return Ed(i,r)}function nf(n,r){if(!!(e.isBinaryExpression(n.parent)&&n.parent.left===n&&n.parent.operatorToken.kind===63))return Ed(n.parent.right,r)}function rf(n,r){switch(r===void 0&&(r=!1),n.kind){case 263:case 252:return vd(n,r);case 265:return Rp(n,r);case 266:return su(n,r);case 272:return Pp(n,r);case 268:case 201:return cu(n,r);case 273:return Ic(n,111551|788968|1920,r);case 269:case 219:return uu(n,r);case 262:return Ds(n,r);case 292:return fo(n.name,111551|788968|1920,!0,r);case 291:return Zd(n,r);case 205:case 204:return nf(n,r);default:return e.Debug.fail()}}function jc(n,r){return r===void 0&&(r=111551|788968|1920),n?(n.flags&(2097152|r))==2097152||!!(n.flags&2097152&&n.flags&67108864):!1}function Yi(n,r){return!r&&jc(n)?Wo(n):n}function Wo(n){e.Debug.assert((n.flags&2097152)!=0,"Should only get Alias here.");var r=ja(n);if(r.target)r.target===on&&(r.target=jn);else{r.target=on;var i=rc(n);if(!i)return e.Debug.fail();var o=rf(i);r.target===on?r.target=o||jn:On(i,e.Diagnostics.Circular_definition_of_import_alias_0,Oa(n))}return r.target}function Sl(n){var r=ja(n);if(r.target!==on)return Wo(n)}function ws(n,r,i,o){if(!n||e.isPropertyAccessExpression(n))return!1;var s=bt(n);if(e.isTypeOnlyImportOrExportDeclaration(n)){var u=ja(s);return u.typeOnlyDeclaration=n,!0}var L=ja(s);return $d(L,r,o)||$d(L,i,o)}function $d(n,r,i){var o,s,u;if(r&&(n.typeOnlyDeclaration===void 0||i&&n.typeOnlyDeclaration===!1)){var L=(s=(o=r.exports)===null||o===void 0?void 0:o.get("export="))!==null&&s!==void 0?s:r,G=L.declarations&&e.find(L.declarations,e.isTypeOnlyImportOrExportDeclaration);n.typeOnlyDeclaration=(u=G!=null?G:ja(L).typeOnlyDeclaration)!==null&&u!==void 0?u:!1}return!!n.typeOnlyDeclaration}function Nc(n){if(!!(n.flags&2097152)){var r=ja(n);return r.typeOnlyDeclaration||void 0}}function tf(n){var r=bt(n),i=Wo(r);if(i){var o=i===jn||i.flags&111551&&!$g(i)&&!Nc(r);o&&fu(r)}}function fu(n){var r=ja(n);if(!r.referenced){r.referenced=!0;var i=rc(n);if(!i)return e.Debug.fail();if(e.isInternalModuleImportEqualsDeclaration(i)){var o=Yi(n);(o===jn||o.flags&111551)&&Ns(i.moduleReference)}}}function oo(n){var r=ja(n);r.constEnumReferenced||(r.constEnumReferenced=!0)}function af(n,r){return n.kind===79&&e.isRightSideOfQualifiedNameOrPropertyAccess(n)&&(n=n.parent),n.kind===79||n.parent.kind===159?fo(n,1920,!1,r):(e.Debug.assert(n.parent.kind===263),fo(n,111551|788968|1920,!1,r))}function cl(n,r){return n.parent?cl(n.parent,r)+"."+Oa(n):Oa(n,r,void 0,16|4)}function fo(n,r,i,o,s){if(!e.nodeIsMissing(n)){var u=1920|(e.isInJSFile(n)?r&111551:0),L;if(n.kind===79){var G=r===u||e.nodeIsSynthesized(n)?e.Diagnostics.Cannot_find_namespace_0:XD(e.getFirstIdentifier(n)),me=e.isInJSFile(n)&&!e.nodeIsSynthesized(n)?Mp(n,r):void 0;if(L=Ji(Fo(s||n,n.escapedText,r,i||me?void 0:G,n,!0)),!L)return Ji(me)}else if(n.kind===159||n.kind===204){var Re=n.kind===159?n.left:n.expression,Ue=n.kind===159?n.right:n.name,Ke=fo(Re,u,i,!1,s);if(!Ke||e.nodeIsMissing(Ue))return;if(Ke===jn)return Ke;if(Ke.valueDeclaration&&e.isInJSFile(Ke.valueDeclaration)&&e.isVariableDeclaration(Ke.valueDeclaration)&&Ke.valueDeclaration.initializer&&LA(Ke.valueDeclaration.initializer)){var Qe=Ke.valueDeclaration.initializer.arguments[0],yn=so(Qe,Qe);if(yn){var Hn=ut(yn);Hn&&(Ke=Hn)}}if(L=Ji(Ro(Ls(Ke),Ue.escapedText,r)),!L){if(!i){var $n=cl(Ke),Er=e.declarationNameToString(Ue),hr=Fy(Ue,Ke);hr?On(Ue,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2,$n,Er,Oa(hr)):On(Ue,e.Diagnostics.Namespace_0_has_no_exported_member_1,$n,Er)}return}}else throw e.Debug.assertNever(n,"Unknown entity name kind.");return e.Debug.assert((e.getCheckFlags(L)&1)==0,"Should never get an instantiated symbol here."),!e.nodeIsSynthesized(n)&&e.isEntityName(n)&&(L.flags&2097152||n.parent.kind===269)&&ws(e.getAliasDeclarationFromName(n),L,void 0,!0),L.flags&r||o?L:Wo(L)}}function Mp(n,r){if(Xh(n.parent)){var i=ep(n.parent);if(i)return Fo(i,n.escapedText,r,void 0,n,!0)}}function ep(n){var r=e.findAncestor(n,function(u){return e.isJSDocNode(u)||u.flags&4194304?e.isJSDocTypeAlias(u):"quit"});if(!r){var i=e.getJSDocHost(n);if(i&&e.isExpressionStatement(i)&&e.isBinaryExpression(i.expression)&&e.getAssignmentDeclarationKind(i.expression)===3){var o=bt(i.expression.left);if(o)return jf(o)}if(i&&(e.isObjectLiteralMethod(i)||e.isPropertyAssignment(i))&&e.isBinaryExpression(i.parent.parent)&&e.getAssignmentDeclarationKind(i.parent.parent)===6){var o=bt(i.parent.parent.left);if(o)return jf(o)}var s=e.getEffectiveJSDocHost(n);if(s&&e.isFunctionLike(s)){var o=bt(s);return o&&o.valueDeclaration}}}function jf(n){var r=n.parent.valueDeclaration;if(!!r){var i=e.isAssignmentDeclaration(r)?e.getAssignedExpandoInitializer(r):e.hasOnlyExpressionInitializer(r)?e.getDeclaredExpandoInitializer(r):void 0;return i||r}}function kt(n){var r=n.valueDeclaration;if(!(!r||!e.isInJSFile(r)||n.flags&524288||e.getExpandoInitializer(r,!1))){var i=e.isVariableDeclaration(r)?e.getDeclaredExpandoInitializer(r):e.getAssignedExpandoInitializer(r);if(i){var o=bt(i);if(o)return oS(o,n)}}}function so(n,r,i){var o=e.getEmitModuleResolutionKind(Ie)===e.ModuleResolutionKind.Classic,s=o?e.Diagnostics.Cannot_find_module_0_Did_you_mean_to_set_the_moduleResolution_option_to_node_or_to_add_aliases_to_the_paths_option:e.Diagnostics.Cannot_find_module_0_or_its_corresponding_type_declarations;return Ya(n,r,i?void 0:s)}function Ya(n,r,i,o){return o===void 0&&(o=!1),e.isStringLiteralLike(r)?mc(n,r.text,i,r,o):void 0}function mc(n,r,i,o,s){if(s===void 0&&(s=!1),e.startsWith(r,"@types/")){var u=e.Diagnostics.Cannot_import_type_declaration_files_Consider_importing_0_instead_of_1,L=e.removePrefix(r,"@types/");On(o,u,L,r)}var G=Eg(r,!0);if(G)return G;var me=e.getSourceFileOfNode(n),Re=e.getResolvedModule(me,r),Ue=Re&&e.getResolutionDiagnostic(Ie,Re),Ke=Re&&!Ue&&S.getSourceFile(Re.resolvedFileName);if(Ke){if(Ke.symbol)return Re.isExternalLibraryImport&&!e.resolutionExtensionIsTSOrJson(Re.extension)&&bd(!1,o,Re,r),Ji(Ke.symbol);i&&On(o,e.Diagnostics.File_0_is_not_a_module,Ke.fileName);return}if(Mo){var Qe=e.findBestPatternMatch(Mo,function(Yr){return Yr.pattern},r);if(Qe){var yn=yo&&yo.get(r);return Ji(yn||Qe.symbol)}}if(Re&&!e.resolutionExtensionIsTSOrJson(Re.extension)&&Ue===void 0||Ue===e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type){if(s){var u=e.Diagnostics.Invalid_module_name_in_augmentation_Module_0_resolves_to_an_untyped_module_at_1_which_cannot_be_augmented;On(o,u,r,Re.resolvedFileName)}else bd(Nn&&!!i,o,Re,r);return}if(i){if(Re){var Hn=S.getProjectReferenceRedirect(Re.resolvedFileName);if(Hn){On(o,e.Diagnostics.Output_file_0_has_not_been_built_from_source_file_1,Hn,Re.resolvedFileName);return}}if(Ue)On(o,Ue,r,Re.resolvedFileName);else{var $n=e.tryExtractTSExtension(r);if($n){var u=e.Diagnostics.An_import_path_cannot_end_with_a_0_extension_Consider_importing_1_instead,Er=e.removeExtension(r,$n),hr=Er,Ir=e.getEmitModuleKind(Ie);Ir>=e.ModuleKind.ES2015&&(hr+=".js"),On(o,u,$n,hr)}else!Ie.resolveJsonModule&&e.fileExtensionIs(r,".json")&&e.getEmitModuleResolutionKind(Ie)===e.ModuleResolutionKind.NodeJs&&e.hasJsonModuleEmitEnabled(Ie)?On(o,e.Diagnostics.Cannot_find_module_0_Consider_using_resolveJsonModule_to_import_module_with_json_extension,r):On(o,i,r)}}}function bd(n,r,i,o){var s=i.packageId,u=i.resolvedFileName,L=!e.isExternalModuleNameRelative(o)&&s?kc(s.name)?e.chainDiagnosticMessages(void 0,e.Diagnostics.If_the_0_package_actually_exposes_this_module_consider_sending_a_pull_request_to_amend_https_Colon_Slash_Slashgithub_com_SlashDefinitelyTyped_SlashDefinitelyTyped_Slashtree_Slashmaster_Slashtypes_Slash_1,s.name,e.mangleScopedPackageName(s.name)):e.chainDiagnosticMessages(void 0,e.Diagnostics.Try_npm_i_save_dev_types_Slash_1_if_it_exists_or_add_a_new_declaration_d_ts_file_containing_declare_module_0,o,e.mangleScopedPackageName(s.name)):void 0;Pl(n,r,e.chainDiagnosticMessages(L,e.Diagnostics.Could_not_find_a_declaration_file_for_module_0_1_implicitly_has_an_any_type,o,u))}function kc(n){return ge().has(e.getTypesPackageName(n))}function ut(n,r){if(n==null?void 0:n.exports){var i=Yi(n.exports.get("export="),r),o=of(Ji(i),Ji(n));return Ji(o)||n}}function of(n,r){if(!n||n===jn||n===r||r.exports.size===1||n.flags&2097152)return n;var i=ja(n);if(i.cjsExportMerged)return i.cjsExportMerged;var o=n.flags&33554432?n:Fu(n);return o.flags=o.flags|512,o.exports===void 0&&(o.exports=e.createSymbolTable()),r.exports.forEach(function(s,u){u!=="export="&&o.exports.set(u,o.exports.has(u)?ou(o.exports.get(u),s):s)}),ja(o).cjsExportMerged=o,i.cjsExportMerged=o}function es(n,r,i,o){var s=ut(n,i);if(!i&&s){if(!o&&!(s.flags&(1536|3))&&!e.getDeclarationOfKind(s,300)){var u=Sn>=e.ModuleKind.ES2015?"allowSyntheticDefaultImports":"esModuleInterop";return On(r,e.Diagnostics.This_module_can_only_be_referenced_with_ECMAScript_imports_Slashexports_by_turning_on_the_0_flag_and_referencing_its_default_export,u),s}if(Ie.esModuleInterop){var L=r.parent;if(e.isImportDeclaration(L)&&e.getNamespaceDeclarationNode(L)||e.isImportCall(L)){var G=ft(s),me=Bi(G,0);if((!me||!me.length)&&(me=Bi(G,1)),me&&me.length){var Re=DA(G,s,n),Ue=Xi(s.flags,s.escapedName);Ue.declarations=s.declarations?s.declarations.slice():[],Ue.parent=s.parent,Ue.target=s,Ue.originatingImport=L,s.valueDeclaration&&(Ue.valueDeclaration=s.valueDeclaration),s.constEnumOnlyModule&&(Ue.constEnumOnlyModule=!0),s.members&&(Ue.members=new e.Map(s.members)),s.exports&&(Ue.exports=new e.Map(s.exports));var Ke=Yc(Re);return Ue.type=Eo(Ue,Ke.members,e.emptyArray,e.emptyArray,Ke.indexInfos),Ue}}}}return s}function us(n){return n.exports.get("export=")!==void 0}function ul(n){return Um(tc(n))}function sf(n){var r=ul(n),i=ut(n);if(i!==n){var o=ft(i);lf(o)&&e.addRange(r,Hi(o))}return r}function Td(n,r){var i=tc(n);i.forEach(function(u,L){As(L)||r(u,L)});var o=ut(n);if(o!==n){var s=ft(o);lf(s)&&Hi(s).forEach(function(u){r(u,u.escapedName)})}}function Lu(n,r){var i=tc(r);if(i)return i.get(n)}function Au(n,r){var i=Lu(n,r);if(i)return i;var o=ut(r);if(o!==r){var s=ft(o);return lf(s)?Gt(s,n):void 0}}function lf(n){return!(n.flags&131068||e.getObjectFlags(n)&1||rl(n)||_i(n))}function Ls(n){return n.flags&6256?jp(n,"resolvedExports"):n.flags&1536?tc(n):n.exports||We}function tc(n){var r=ja(n);return r.resolvedExports||(r.resolvedExports=Jf(n))}function Hf(n,r,i,o){!r||r.forEach(function(s,u){if(u!=="default"){var L=n.get(u);if(!L)n.set(u,s),i&&o&&i.set(u,{specifierText:e.getTextOfNode(o.moduleSpecifier)});else if(i&&o&&L&&Yi(L)!==Yi(s)){var G=i.get(u);G.exportsWithDuplicate?G.exportsWithDuplicate.push(o):G.exportsWithDuplicate=[o]}}})}function Jf(n){var r=[];return n=ut(n),i(n)||We;function i(o){if(!!(o&&o.exports&&e.pushIfUnique(r,o))){var s=new e.Map(o.exports),u=o.exports.get("__export");if(u){var L=e.createSymbolTable(),G=new e.Map;if(u.declarations)for(var me=0,Re=u.declarations;me=Ue?Re.substr(0,Ue-"...".length)+"...":Re}function Zf(n,r){var i=Oc(n.symbol)?pt(n,n.symbol.valueDeclaration):pt(n),o=Oc(r.symbol)?pt(r,r.symbol.valueDeclaration):pt(r);return i===o&&(i=pu(n),o=pu(r)),[i,o]}function pu(n){return pt(n,void 0,64)}function Oc(n){return n&&!!n.valueDeclaration&&e.isExpression(n.valueDeclaration)&&!Zc(n.valueDeclaration)}function Ld(n){return n===void 0&&(n=0),n&814775659}function df(n){return!!n.symbol&&!!(n.symbol.flags&32)&&(n===Bl(n.symbol)||!!(n.flags&524288)&&!!(e.getObjectFlags(n)&16777216))}function mu(){return{typeToTypeNode:function(Jn,mn,et,nt){return n(mn,et,nt,function(St){return o(Jn,St)})},indexInfoToIndexSignatureDeclaration:function(Jn,mn,et,nt){return n(mn,et,nt,function(St){return Re(Jn,St,void 0)})},signatureToSignatureDeclaration:function(Jn,mn,et,nt,St){return n(et,nt,St,function(xt){return Ue(Jn,mn,xt)})},symbolToEntityName:function(Jn,mn,et,nt,St){return n(et,nt,St,function(xt){return qa(Jn,xt,mn,!1)})},symbolToExpression:function(Jn,mn,et,nt,St){return n(et,nt,St,function(xt){return Ga(Jn,xt,mn)})},symbolToTypeParameterDeclarations:function(Jn,mn,et,nt){return n(mn,et,nt,function(St){return hr(Jn,St)})},symbolToParameterDeclaration:function(Jn,mn,et,nt){return n(mn,et,nt,function(St){return yn(Jn,St)})},typeParameterToDeclaration:function(Jn,mn,et,nt){return n(mn,et,nt,function(St){return Qe(Jn,St)})},symbolTableToDeclarationStatements:function(Jn,mn,et,nt,St){return n(mn,et,nt,function(xt){return mi(Jn,xt,St)})}};function n(Jn,mn,et,nt){var St,xt;e.Debug.assert(Jn===void 0||(Jn.flags&8)==0);var Ot={enclosingDeclaration:Jn,flags:mn||0,tracker:et&&et.trackSymbol?et:{trackSymbol:function(){return!1},moduleResolverHost:mn&134217728?{getCommonSourceDirectory:S.getCommonSourceDirectory?function(){return S.getCommonSourceDirectory()}:function(){return""},getCurrentDirectory:function(){return S.getCurrentDirectory()},getSymlinkCache:e.maybeBind(S,S.getSymlinkCache),useCaseSensitiveFileNames:e.maybeBind(S,S.useCaseSensitiveFileNames),redirectTargetsMap:S.redirectTargetsMap,getProjectReferenceRedirect:function(Bn){return S.getProjectReferenceRedirect(Bn)},isSourceOfProjectReferenceRedirect:function(Bn){return S.isSourceOfProjectReferenceRedirect(Bn)},fileExists:function(Bn){return S.fileExists(Bn)},getFileIncludeReasons:function(){return S.getFileIncludeReasons()}}:void 0},encounteredError:!1,reportedDiagnostic:!1,visitedTypes:void 0,symbolDepth:void 0,inferTypeParameters:void 0,approximateLength:0};Ot.tracker=r(Ot,Ot.tracker);var $t=nt(Ot);return Ot.truncating&&Ot.flags&1&&((xt=(St=Ot.tracker)===null||St===void 0?void 0:St.reportTruncationError)===null||xt===void 0||xt.call(St)),Ot.encounteredError?void 0:$t}function r(Jn,mn){var et=mn.trackSymbol;return Dt(Dt({},mn),{reportCyclicStructureError:nt(mn.reportCyclicStructureError),reportInaccessibleThisError:nt(mn.reportInaccessibleThisError),reportInaccessibleUniqueSymbolError:nt(mn.reportInaccessibleUniqueSymbolError),reportLikelyUnsafeImportRequiredError:nt(mn.reportLikelyUnsafeImportRequiredError),reportNonlocalAugmentation:nt(mn.reportNonlocalAugmentation),reportPrivateInBaseOfClassExpression:nt(mn.reportPrivateInBaseOfClassExpression),reportNonSerializableProperty:nt(mn.reportNonSerializableProperty),trackSymbol:et&&function(){for(var St=[],xt=0;xt(Jn.flags&1?e.noTruncationMaximumTruncationLength:e.defaultMaximumTruncationLength)}function o(Jn,mn){ae&&ae.throwIfCancellationRequested&&ae.throwIfCancellationRequested();var et=mn.flags&8388608;if(mn.flags&=~8388608,!Jn){if(!(mn.flags&262144)){mn.encounteredError=!0;return}return mn.approximateLength+=3,e.factory.createKeywordTypeNode(129)}if(mn.flags&536870912||(Jn=wn(Jn)),Jn.flags&1)return mn.approximateLength+=3,e.factory.createKeywordTypeNode(Jn===or?137:129);if(Jn.flags&2)return e.factory.createKeywordTypeNode(153);if(Jn.flags&4)return mn.approximateLength+=6,e.factory.createKeywordTypeNode(148);if(Jn.flags&8)return mn.approximateLength+=6,e.factory.createKeywordTypeNode(145);if(Jn.flags&64)return mn.approximateLength+=6,e.factory.createKeywordTypeNode(156);if(Jn.flags&16&&!Jn.aliasSymbol)return mn.approximateLength+=7,e.factory.createKeywordTypeNode(132);if(Jn.flags&1024&&!(Jn.flags&1048576)){var nt=hl(Jn.symbol),St=rt(nt,mn,788968);if(Lo(nt)===Jn)return St;var xt=e.symbolName(Jn.symbol);return e.isIdentifierText(xt,0)?Sp(St,e.factory.createTypeReferenceNode(xt,void 0)):e.isImportTypeNode(St)?(St.isTypeOf=!0,e.factory.createIndexedAccessTypeNode(St,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(xt)))):e.isTypeReferenceNode(St)?e.factory.createIndexedAccessTypeNode(e.factory.createTypeQueryNode(St.typeName),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(xt))):e.Debug.fail("Unhandled type node kind returned from `symbolToTypeNode`.")}if(Jn.flags&1056)return rt(Jn.symbol,mn,788968);if(Jn.flags&128)return mn.approximateLength+=Jn.value.length+2,e.factory.createLiteralTypeNode(e.setEmitFlags(e.factory.createStringLiteral(Jn.value,!!(mn.flags&268435456)),16777216));if(Jn.flags&256){var Ot=Jn.value;return mn.approximateLength+=(""+Ot).length,e.factory.createLiteralTypeNode(Ot<0?e.factory.createPrefixUnaryExpression(40,e.factory.createNumericLiteral(-Ot)):e.factory.createNumericLiteral(Ot))}if(Jn.flags&2048)return mn.approximateLength+=e.pseudoBigIntToString(Jn.value).length+1,e.factory.createLiteralTypeNode(e.factory.createBigIntLiteral(Jn.value));if(Jn.flags&512)return mn.approximateLength+=Jn.intrinsicName.length,e.factory.createLiteralTypeNode(Jn.intrinsicName==="true"?e.factory.createTrue():e.factory.createFalse());if(Jn.flags&8192){if(!(mn.flags&1048576)){if(Uu(Jn.symbol,mn.enclosingDeclaration))return mn.approximateLength+=6,rt(Jn.symbol,mn,111551);mn.tracker.reportInaccessibleUniqueSymbolError&&mn.tracker.reportInaccessibleUniqueSymbolError()}return mn.approximateLength+=13,e.factory.createTypeOperatorNode(152,e.factory.createKeywordTypeNode(149))}if(Jn.flags&16384)return mn.approximateLength+=4,e.factory.createKeywordTypeNode(114);if(Jn.flags&32768)return mn.approximateLength+=9,e.factory.createKeywordTypeNode(151);if(Jn.flags&65536)return mn.approximateLength+=4,e.factory.createLiteralTypeNode(e.factory.createNull());if(Jn.flags&131072)return mn.approximateLength+=5,e.factory.createKeywordTypeNode(142);if(Jn.flags&4096)return mn.approximateLength+=6,e.factory.createKeywordTypeNode(149);if(Jn.flags&67108864)return mn.approximateLength+=6,e.factory.createKeywordTypeNode(146);if(Pv(Jn))return mn.flags&4194304&&(!mn.encounteredError&&!(mn.flags&32768)&&(mn.encounteredError=!0),mn.tracker.reportInaccessibleThisError&&mn.tracker.reportInaccessibleThisError()),mn.approximateLength+=4,e.factory.createThisTypeNode();if(!et&&Jn.aliasSymbol&&(mn.flags&16384||cf(Jn.aliasSymbol,mn.enclosingDeclaration))){var $t=G(Jn.aliasTypeArguments,mn);return As(Jn.aliasSymbol.escapedName)&&!(Jn.aliasSymbol.flags&32)?e.factory.createTypeReferenceNode(e.factory.createIdentifier(""),$t):rt(Jn.aliasSymbol,mn,788968,$t)}var Bn=e.getObjectFlags(Jn);if(Bn&4)return e.Debug.assert(!!(Jn.flags&524288)),Jn.node?ss(Jn,ms):ms(Jn);if(Jn.flags&262144||Bn&3){if(Jn.flags&262144&&e.contains(mn.inferTypeParameters,Jn))return mn.approximateLength+=e.symbolName(Jn.symbol).length+6,e.factory.createInferTypeNode(Ke(Jn,mn,void 0));if(mn.flags&4&&Jn.flags&262144&&!cf(Jn.symbol,mn.enclosingDeclaration)){var br=Yt(Jn,mn);return mn.approximateLength+=e.idText(br).length,e.factory.createTypeReferenceNode(e.factory.createIdentifier(e.idText(br)),void 0)}return Jn.symbol?rt(Jn.symbol,mn,788968):e.factory.createTypeReferenceNode(e.factory.createIdentifier("?"),void 0)}if(Jn.flags&1048576&&Jn.origin&&(Jn=Jn.origin),Jn.flags&(1048576|2097152)){var wr=Jn.flags&1048576?gc(Jn.types):Jn.types;if(e.length(wr)===1)return o(wr[0],mn);var jr=G(wr,mn,!0);if(jr&&jr.length>0)return Jn.flags&1048576?e.factory.createUnionTypeNode(jr):e.factory.createIntersectionTypeNode(jr);!mn.encounteredError&&!(mn.flags&262144)&&(mn.encounteredError=!0);return}if(Bn&(16|32))return e.Debug.assert(!!(Jn.flags&524288)),Ts(Jn);if(Jn.flags&4194304){var Zr=Jn.type;mn.approximateLength+=6;var _t=o(Zr,mn);return e.factory.createTypeOperatorNode(139,_t)}if(Jn.flags&134217728){var ea=Jn.texts,ya=Jn.types,$a=e.factory.createTemplateHead(ea[0]),_a=e.factory.createNodeArray(e.map(ya,function(Aa,hi){return e.factory.createTemplateLiteralTypeSpan(o(Aa,mn),(hi10)return s(mn);mn.symbolDepth.set(Rr,ot+1)}mn.visitedTypes.add(zn);var gt=mn.approximateLength,Ca=hi(Aa),oi=mn.approximateLength-gt;return!mn.reportedDiagnostic&&!mn.encounteredError&&(mn.truncating&&(Ca.truncating=!0),Ca.addedLength=oi,(Qi=Jr==null?void 0:Jr.serializedTypes)===null||Qi===void 0||Qi.set(Mt,Ca)),mn.visitedTypes.delete(zn),Rr&&mn.symbolDepth.set(Rr,ot),Ca;function si(Ii){return!e.nodeIsSynthesized(Ii)&&e.getParseTreeNode(Ii)===Ii?Ii:e.setTextRange(e.factory.cloneNode(e.visitEachChild(Ii,si,e.nullTransformationContext)),Ii)}}function Pf(Aa){if(Vl(Aa)||Aa.containsError)return gs(Aa);var hi=Yc(Aa);if(!hi.properties.length&&!hi.indexInfos.length){if(!hi.callSignatures.length&&!hi.constructSignatures.length)return mn.approximateLength+=2,e.setEmitFlags(e.factory.createTypeLiteralNode(void 0),1);if(hi.callSignatures.length===1&&!hi.constructSignatures.length){var Uo=hi.callSignatures[0],Qi=Ue(Uo,177,mn);return Qi}if(hi.constructSignatures.length===1&&!hi.callSignatures.length){var Uo=hi.constructSignatures[0],Qi=Ue(Uo,178,mn);return Qi}}var zn=e.filter(hi.constructSignatures,function(ot){return!!(ot.flags&4)});if(e.some(zn)){var ur=e.map(zn,b_),Rr=hi.callSignatures.length+(hi.constructSignatures.length-zn.length)+hi.indexInfos.length+(mn.flags&2048?e.countWhere(hi.properties,function(ot){return!(ot.flags&4194304)}):e.length(hi.properties));return Rr&&ur.push(zf(hi)),o(ao(ur),mn)}var Jr=mn.flags;mn.flags|=4194304;var Mt=Y_(hi);mn.flags=Jr;var st=e.factory.createTypeLiteralNode(Mt);return mn.approximateLength+=2,e.setEmitFlags(st,mn.flags&1024?0:1),st}function ms(Aa){var hi=ro(Aa);if(Aa.target===cr||Aa.target===Hr){if(mn.flags&2){var Uo=o(hi[0],mn);return e.factory.createTypeReferenceNode(Aa.target===cr?"Array":"ReadonlyArray",[Uo])}var Qi=o(hi[0],mn),zn=e.factory.createArrayTypeNode(Qi);return Aa.target===cr?zn:e.factory.createTypeOperatorNode(143,zn)}else if(Aa.target.objectFlags&8){if(hi=e.sameMap(hi,function(Co,Vo){return qm(Co,!!(Aa.target.elementFlags[Vo]&2))}),hi.length>0){var ur=Pd(Aa),Rr=G(hi.slice(0,ur),mn);if(Rr){if(Aa.target.labeledElementDeclarations)for(var Jr=0;Jr0){var ls=(Aa.target.typeParameters||e.emptyArray).length;Po=G(hi.slice(Jr,ls),mn)}var Mt=mn.flags;mn.flags|=16;var Ao=rt(Aa.symbol,mn,788968,Po);return mn.flags=Mt,gt?Sp(gt,Ao):Ao}}function Sp(Aa,hi){if(e.isImportTypeNode(Aa)){var Uo=Aa.typeArguments,Qi=Aa.qualifier;Qi&&(e.isIdentifier(Qi)?Qi=e.factory.updateIdentifier(Qi,Uo):Qi=e.factory.updateQualifiedName(Qi,Qi.left,e.factory.updateIdentifier(Qi.right,Uo))),Uo=hi.typeArguments;for(var zn=ev(hi),ur=0,Rr=zn;ur2)return[o(Jn[0],mn),e.factory.createTypeReferenceNode("... "+(Jn.length-2)+" more ...",void 0),o(Jn[Jn.length-1],mn)]}else return[e.factory.createTypeReferenceNode("...",void 0)];for(var nt=!(mn.flags&64),St=nt?e.createUnderscoreEscapedMultiMap():void 0,xt=[],Ot=0,$t=0,Bn=Jn;$t0)):St=[Jn],St;function Ot($t,Bn,br){var wr=Bu($t,mn.enclosingDeclaration,Bn,!!(mn.flags&128)),jr;if(!wr||rp(wr[0],mn.enclosingDeclaration,wr.length===1?Bn:Jc(Bn))){var Zr=Kf(wr?wr[0]:$t,mn.enclosingDeclaration,Bn);if(e.length(Zr)){jr=Zr.map(function(lo){return e.some(lo.declarations,Iu)?It(lo,mn):void 0});var _t=Zr.map(function(lo,To){return To});_t.sort(po);for(var ea=_t.map(function(lo){return Zr[lo]}),ya=0,$a=ea;ya<$a.length;ya++){var _a=$a[ya],Pi=Ot(_a,Jc(Bn),!1);if(Pi){if(_a.exports&&_a.exports.get("export=")&&Ml(_a.exports.get("export="),$t)){wr=Pi;break}wr=Pi.concat(wr||[Gu(_a,$t)||$t]);break}}}}if(wr)return wr;if(br||!($t.flags&(2048|4096)))return!br&&!nt&&!!e.forEach($t.declarations,Iu)?void 0:[$t];function po(lo,To){var gs=jr[lo],Ts=jr[To];if(gs&&Ts){var ss=e.pathIsRelative(Ts);return e.pathIsRelative(gs)===ss?e.moduleSpecifiers.countPathComponents(gs)-e.moduleSpecifiers.countPathComponents(Ts):ss?-1:1}return 0}}}function hr(Jn,mn){var et,nt=i_(Jn);return nt.flags&(32|64|524288)&&(et=e.factory.createNodeArray(e.map(Ma(Jn),function(St){return Qe(St,mn)}))),et}function Ir(Jn,mn,et){var nt;e.Debug.assert(Jn&&0<=mn&&mn1?ya(St,St.length-1,1):void 0,$t=nt||Ir(St,0,mn),Bn=It(St[0],mn);!(mn.flags&67108864)&&e.getEmitModuleResolutionKind(Ie)===e.ModuleResolutionKind.NodeJs&&Bn.indexOf("/node_modules/")>=0&&(mn.encounteredError=!0,mn.tracker.reportLikelyUnsafeImportRequiredError&&mn.tracker.reportLikelyUnsafeImportRequiredError(Bn));var br=e.factory.createLiteralTypeNode(e.factory.createStringLiteral(Bn));if(mn.tracker.trackExternalModuleSymbolOfImportTypeNode&&mn.tracker.trackExternalModuleSymbolOfImportTypeNode(St[0]),mn.approximateLength+=Bn.length+10,!Ot||e.isEntityName(Ot)){if(Ot){var wr=e.isIdentifier(Ot)?Ot:Ot.right;wr.typeArguments=void 0}return e.factory.createImportTypeNode(br,Ot,$t,xt)}else{var jr=Yr(Ot),Zr=jr.objectType.typeName;return e.factory.createIndexedAccessTypeNode(e.factory.createImportTypeNode(br,Zr,$t,xt),jr.indexType)}}var _t=ya(St,St.length-1,0);if(e.isIndexedAccessTypeNode(_t))return _t;if(xt)return e.factory.createTypeQueryNode(_t);var wr=e.isIdentifier(_t)?_t:_t.right,ea=wr.typeArguments;return wr.typeArguments=void 0,e.factory.createTypeReferenceNode(_t,ea);function ya($a,_a,Pi){var po=_a===$a.length-1?nt:Ir($a,_a,mn),lo=$a[_a],To=$a[_a-1],gs;if(_a===0)mn.flags|=16777216,gs=_u(lo,mn),mn.approximateLength+=(gs?gs.length:0)+1,mn.flags^=16777216;else if(To&&Ls(To)){var Ts=Ls(To);e.forEachEntry(Ts,function(ms,Sp){if(Ml(ms,lo)&&!Cs(Sp)&&Sp!=="export=")return gs=e.unescapeLeadingUnderscores(Sp),!0})}if(gs||(gs=_u(lo,mn)),mn.approximateLength+=gs.length+1,!(mn.flags&16)&&To&&Yl(To)&&Yl(To).get(lo.escapedName)&&Ml(Yl(To).get(lo.escapedName),lo)){var ss=ya($a,_a-1,Pi);return e.isIndexedAccessTypeNode(ss)?e.factory.createIndexedAccessTypeNode(ss,e.factory.createLiteralTypeNode(e.factory.createStringLiteral(gs))):e.factory.createIndexedAccessTypeNode(e.factory.createTypeReferenceNode(ss,po),e.factory.createLiteralTypeNode(e.factory.createStringLiteral(gs)))}var Pf=e.setEmitFlags(e.factory.createIdentifier(gs,po),16777216);if(Pf.symbol=lo,_a>Pi){var ss=ya($a,_a-1,Pi);return e.isEntityName(ss)?e.factory.createQualifiedName(ss,Pf):e.Debug.fail("Impossible construct - an export of an indexed access cannot be reachable")}return Pf}}function ca(Jn,mn,et){var nt=Fo(mn.enclosingDeclaration,Jn,788968,void 0,Jn,!1);return nt?!(nt.flags&262144&&nt===et.symbol):!1}function Yt(Jn,mn){var et,nt;if(mn.flags&4&&mn.typeParameterNames){var St=mn.typeParameterNames.get(Fc(Jn));if(St)return St}var xt=qa(Jn.symbol,mn,788968,!0);if(!(xt.kind&79))return e.factory.createIdentifier("(Missing type parameter)");if(mn.flags&4){for(var Ot=xt.escapedText,$t=((et=mn.typeParameterNamesByTextNextNameCount)===null||et===void 0?void 0:et.get(Ot))||0,Bn=Ot;((nt=mn.typeParameterNamesByText)===null||nt===void 0?void 0:nt.has(Bn))||ca(Bn,mn,Jn);)$t++,Bn=Ot+"_"+$t;Bn!==Ot&&(xt=e.factory.createIdentifier(Bn,xt.typeArguments)),(mn.typeParameterNamesByTextNextNameCount||(mn.typeParameterNamesByTextNextNameCount=new e.Map)).set(Ot,$t),(mn.typeParameterNames||(mn.typeParameterNames=new e.Map)).set(Fc(Jn),xt),(mn.typeParameterNamesByText||(mn.typeParameterNamesByText=new e.Set)).add(Ot)}return xt}function qa(Jn,mn,et,nt){var St=$n(Jn,mn,et);return nt&&St.length!==1&&!mn.encounteredError&&!(mn.flags&65536)&&(mn.encounteredError=!0),xt(St,St.length-1);function xt(Ot,$t){var Bn=Ir(Ot,$t,mn),br=Ot[$t];$t===0&&(mn.flags|=16777216);var wr=_u(br,mn);$t===0&&(mn.flags^=16777216);var jr=e.setEmitFlags(e.factory.createIdentifier(wr,Bn),16777216);return jr.symbol=br,$t>0?e.factory.createQualifiedName(xt(Ot,$t-1),jr):jr}}function Ga(Jn,mn,et){var nt=$n(Jn,mn,et);return St(nt,nt.length-1);function St(xt,Ot){var $t=Ir(xt,Ot,mn),Bn=xt[Ot];Ot===0&&(mn.flags|=16777216);var br=_u(Bn,mn);Ot===0&&(mn.flags^=16777216);var wr=br.charCodeAt(0);if(e.isSingleOrDoubleQuote(wr)&&e.some(Bn.declarations,Iu))return e.factory.createStringLiteral(It(Bn,mn));var jr=wr===35?br.length>1&&e.isIdentifierStart(br.charCodeAt(1),je):e.isIdentifierStart(wr,je);if(Ot===0||jr){var Zr=e.setEmitFlags(e.factory.createIdentifier(br,$t),16777216);return Zr.symbol=Bn,Ot>0?e.factory.createPropertyAccessExpression(St(xt,Ot-1),Zr):Zr}else{wr===91&&(br=br.substring(1,br.length-1),wr=br.charCodeAt(0));var _t=void 0;return e.isSingleOrDoubleQuote(wr)?_t=e.factory.createStringLiteral(br.substring(1,br.length-1).replace(/\\./g,function(ea){return ea.substring(1)}),wr===39):""+ +br===br&&(_t=e.factory.createNumericLiteral(+br)),_t||(_t=e.setEmitFlags(e.factory.createIdentifier(br,$t),16777216),_t.symbol=Bn),e.factory.createElementAccessExpression(St(xt,Ot-1),_t)}}}function gi(Jn){var mn=e.getNameOfDeclaration(Jn);return!!mn&&e.isStringLiteral(mn)}function Ba(Jn){var mn=e.getNameOfDeclaration(Jn);return!!(mn&&e.isStringLiteral(mn)&&(mn.singleQuote||!e.nodeIsSynthesized(mn)&&e.startsWith(e.getTextOfNode(mn,!1),"'")))}function Ui(Jn,mn){var et=!!e.length(Jn.declarations)&&e.every(Jn.declarations,Ba),nt=to(Jn,mn,et);if(nt)return nt;var St=e.unescapeLeadingUnderscores(Jn.escapedName),xt=!!e.length(Jn.declarations)&&e.every(Jn.declarations,gi);return Fr(St,xt,et)}function to(Jn,mn,et){var nt=ja(Jn).nameType;if(nt){if(nt.flags&384){var St=""+nt.value;return!e.isIdentifierText(St,Ie.target)&&!kf(St)?e.factory.createStringLiteral(St,!!et):kf(St)&&e.startsWith(St,"-")?e.factory.createComputedPropertyName(e.factory.createNumericLiteral(+St)):Fr(St)}if(nt.flags&8192)return e.factory.createComputedPropertyName(Ga(nt.symbol,mn,111551))}}function Fr(Jn,mn,et){return e.isIdentifierText(Jn,Ie.target)?e.factory.createIdentifier(Jn):!mn&&kf(Jn)&&+Jn>=0?e.factory.createNumericLiteral(+Jn):e.factory.createStringLiteral(Jn,!!et)}function Dr(Jn){var mn=Dt({},Jn);return mn.typeParameterNames&&(mn.typeParameterNames=new e.Map(mn.typeParameterNames)),mn.typeParameterNamesByText&&(mn.typeParameterNamesByText=new e.Set(mn.typeParameterNamesByText)),mn.typeParameterSymbolList&&(mn.typeParameterSymbolList=new e.Set(mn.typeParameterSymbolList)),mn.tracker=r(mn,mn.tracker),mn}function ma(Jn,mn){return Jn.declarations&&e.find(Jn.declarations,function(et){return!!e.getEffectiveTypeAnnotationNode(et)&&(!mn||!!e.findAncestor(et,function(nt){return nt===mn}))})}function Sa(Jn,mn){return!(e.getObjectFlags(mn)&4)||!e.isTypeReferenceNode(Jn)||e.length(Jn.typeArguments)>=Qc(mn.target.typeParameters)}function Ht(Jn,mn,et,nt,St,xt){if(mn!==le&&nt){var Ot=ma(et,nt);if(Ot&&!e.isFunctionLikeDeclaration(Ot)&&!e.isGetAccessorDeclaration(Ot)){var $t=e.getEffectiveTypeAnnotationNode(Ot);if(ha($t)===mn&&Sa($t,mn)){var Bn=vi(Jn,$t,St,xt);if(Bn)return Bn}}}var br=Jn.flags;mn.flags&8192&&mn.symbol===et&&(!Jn.enclosingDeclaration||e.some(et.declarations,function(jr){return e.getSourceFileOfNode(jr)===e.getSourceFileOfNode(Jn.enclosingDeclaration)}))&&(Jn.flags|=1048576);var wr=o(mn,Jn);return Jn.flags=br,wr}function Wa(Jn,mn,et,nt,St){if(mn!==le&&Jn.enclosingDeclaration){var xt=et.declaration&&e.getEffectiveReturnTypeNode(et.declaration);if(!!e.findAncestor(xt,function(br){return br===Jn.enclosingDeclaration})&&xt){var Ot=ha(xt),$t=Ot.flags&262144&&Ot.isThisType?Ja(Ot,et.mapper):Ot;if($t===mn&&Sa(xt,mn)){var Bn=vi(Jn,xt,nt,St);if(Bn)return Bn}}}return o(mn,Jn)}function Rt(Jn,mn,et){var nt,St,xt=!1,Ot=e.getFirstIdentifier(Jn);if(e.isInJSFile(Jn)&&(e.isExportsIdentifier(Ot)||e.isModuleExportsAccessExpression(Ot.parent)||e.isQualifiedName(Ot.parent)&&e.isModuleIdentifier(Ot.parent.left)&&e.isExportsIdentifier(Ot.parent.right)))return xt=!0,{introducesError:xt,node:Jn};var $t=fo(Ot,67108863,!0,!0);if($t&&(xu($t,mn.enclosingDeclaration,67108863,!1).accessibility!==0?xt=!0:((St=(nt=mn.tracker)===null||nt===void 0?void 0:nt.trackSymbol)===null||St===void 0||St.call(nt,$t,mn.enclosingDeclaration,67108863),et==null||et($t)),e.isIdentifier(Jn))){var Bn=$t.flags&262144?Yt(Lo($t),mn):e.factory.cloneNode(Jn);return Bn.symbol=$t,{introducesError:xt,node:e.setEmitFlags(e.setOriginalNode(Bn,Jn),16777216)}}return{introducesError:xt,node:Jn}}function vi(Jn,mn,et,nt){ae&&ae.throwIfCancellationRequested&&ae.throwIfCancellationRequested();var St=!1,xt=e.getSourceFileOfNode(mn),Ot=e.visitNode(mn,$t);if(St)return;return Ot===mn?e.setTextRange(e.factory.cloneNode(mn),mn):Ot;function $t(Bn){if(e.isJSDocAllType(Bn)||Bn.kind===314)return e.factory.createKeywordTypeNode(129);if(e.isJSDocUnknownType(Bn))return e.factory.createKeywordTypeNode(153);if(e.isJSDocNullableType(Bn))return e.factory.createUnionTypeNode([e.visitNode(Bn.type,$t),e.factory.createLiteralTypeNode(e.factory.createNull())]);if(e.isJSDocOptionalType(Bn))return e.factory.createUnionTypeNode([e.visitNode(Bn.type,$t),e.factory.createKeywordTypeNode(151)]);if(e.isJSDocNonNullableType(Bn))return e.visitNode(Bn.type,$t);if(e.isJSDocVariadicType(Bn))return e.factory.createArrayTypeNode(e.visitNode(Bn.type,$t));if(e.isJSDocTypeLiteral(Bn))return e.factory.createTypeLiteralNode(e.map(Bn.jsDocPropertyTags,function(_a){var Pi=e.isIdentifier(_a.name)?_a.name:_a.name.right,po=os(ha(Bn),Pi.escapedText),lo=po&&_a.typeExpression&&ha(_a.typeExpression.type)!==po?o(po,Jn):void 0;return e.factory.createPropertySignature(void 0,Pi,_a.isBracketed||_a.typeExpression&&e.isJSDocOptionalType(_a.typeExpression.type)?e.factory.createToken(57):void 0,lo||_a.typeExpression&&e.visitNode(_a.typeExpression.type,$t)||e.factory.createKeywordTypeNode(129))}));if(e.isTypeReferenceNode(Bn)&&e.isIdentifier(Bn.typeName)&&Bn.typeName.escapedText==="")return e.setOriginalNode(e.factory.createKeywordTypeNode(129),Bn);if((e.isExpressionWithTypeArguments(Bn)||e.isTypeReferenceNode(Bn))&&e.isJSDocIndexSignature(Bn))return e.factory.createTypeLiteralNode([e.factory.createIndexSignature(void 0,void 0,[e.factory.createParameterDeclaration(void 0,void 0,void 0,"x",void 0,e.visitNode(Bn.typeArguments[0],$t))],e.visitNode(Bn.typeArguments[1],$t))]);if(e.isJSDocFunctionType(Bn))if(e.isJSDocConstructSignature(Bn)){var br;return e.factory.createConstructorTypeNode(Bn.modifiers,e.visitNodes(Bn.typeParameters,$t),e.mapDefined(Bn.parameters,function(_a,Pi){return _a.name&&e.isIdentifier(_a.name)&&_a.name.escapedText==="new"?(br=_a.type,void 0):e.factory.createParameterDeclaration(void 0,void 0,ea(_a),ya(_a,Pi),_a.questionToken,e.visitNode(_a.type,$t),void 0)}),e.visitNode(br||Bn.type,$t)||e.factory.createKeywordTypeNode(129))}else return e.factory.createFunctionTypeNode(e.visitNodes(Bn.typeParameters,$t),e.map(Bn.parameters,function(_a,Pi){return e.factory.createParameterDeclaration(void 0,void 0,ea(_a),ya(_a,Pi),_a.questionToken,e.visitNode(_a.type,$t),void 0)}),e.visitNode(Bn.type,$t)||e.factory.createKeywordTypeNode(129));if(e.isTypeReferenceNode(Bn)&&e.isInJSDoc(Bn)&&(!Sa(Bn,ha(Bn))||E0(Bn)||jn===D_(Dg(Bn),788968,!0)))return e.setOriginalNode(o(ha(Bn),Jn),Bn);if(e.isLiteralImportTypeNode(Bn)){var wr=aa(Bn).resolvedSymbol;return e.isInJSDoc(Bn)&&wr&&(!Bn.isTypeOf&&!(wr.flags&788968)||!(e.length(Bn.typeArguments)>=Qc(Ma(wr))))?e.setOriginalNode(o(ha(Bn),Jn),Bn):e.factory.updateImportTypeNode(Bn,e.factory.updateLiteralTypeNode(Bn.argument,$a(Bn,Bn.argument.literal)),Bn.qualifier,e.visitNodes(Bn.typeArguments,$t,e.isTypeNode),Bn.isTypeOf)}if(e.isEntityName(Bn)||e.isEntityNameExpression(Bn)){var jr=Rt(Bn,Jn,et),Zr=jr.introducesError,_t=jr.node;if(St=St||Zr,_t!==Bn)return _t}return xt&&e.isTupleTypeNode(Bn)&&e.getLineAndCharacterOfPosition(xt,Bn.pos).line===e.getLineAndCharacterOfPosition(xt,Bn.end).line&&e.setEmitFlags(Bn,1),e.visitEachChild(Bn,$t,e.nullTransformationContext);function ea(_a){return _a.dotDotDotToken||(_a.type&&e.isJSDocVariadicType(_a.type)?e.factory.createToken(25):void 0)}function ya(_a,Pi){return _a.name&&e.isIdentifier(_a.name)&&_a.name.escapedText==="this"?"this":ea(_a)?"args":"arg"+Pi}function $a(_a,Pi){if(nt){if(Jn.tracker&&Jn.tracker.moduleResolverHost){var po=jS(_a);if(po){var lo=e.createGetCanonicalFileName(!!S.useCaseSensitiveFileNames),To={getCanonicalFileName:lo,getCurrentDirectory:function(){return Jn.tracker.moduleResolverHost.getCurrentDirectory()},getCommonSourceDirectory:function(){return Jn.tracker.moduleResolverHost.getCommonSourceDirectory()}},gs=e.getResolvedExternalModuleName(To,po);return e.factory.createStringLiteral(gs)}}}else if(Jn.tracker&&Jn.tracker.trackExternalModuleSymbolOfImportTypeNode){var Ts=Ya(Pi,Pi,void 0);Ts&&Jn.tracker.trackExternalModuleSymbolOfImportTypeNode(Ts)}return Pi}}}function mi(Jn,mn,et){var nt=oi(e.factory.createPropertyDeclaration,167,!0),St=oi(function(tr,vt,la,Kt,Qt){return e.factory.createPropertySignature(vt,la,Kt,Qt)},166,!1),xt=mn.enclosingDeclaration,Ot=[],$t=new e.Set,Bn=[],br=mn;mn=Dt(Dt({},br),{usedSymbolNames:new e.Set(br.usedSymbolNames),remappedSymbolNames:new e.Map,tracker:Dt(Dt({},br.tracker),{trackSymbol:function(tr,vt,la){var Kt=xu(tr,vt,la,!1);if(Kt.accessibility===0){var Qt=Er(tr,mn,la);tr.flags&4||ss(Qt[0])}else if(br.tracker&&br.tracker.trackSymbol)return br.tracker.trackSymbol(tr,vt,la);return!1}})}),mn.tracker=r(mn,mn.tracker),e.forEachEntry(Jn,function(tr,vt){var la=e.unescapeLeadingUnderscores(vt);Vo(tr,la)});var wr=!et,jr=Jn.get("export=");return jr&&Jn.size>1&&jr.flags&2097152&&(Jn=e.createSymbolTable(),Jn.set("export=",jr)),To(Jn),_a(Ot);function Zr(tr){return!!tr&&tr.kind===79}function _t(tr){return e.isVariableStatement(tr)?e.filter(e.map(tr.declarationList.declarations,e.getNameOfDeclaration),Zr):e.filter([e.getNameOfDeclaration(tr)],Zr)}function ea(tr){var vt=e.find(tr,e.isExportAssignment),la=e.findIndex(tr,e.isModuleDeclaration),Kt=la!==-1?tr[la]:void 0;if(Kt&&vt&&vt.isExportEquals&&e.isIdentifier(vt.expression)&&e.isIdentifier(Kt.name)&&e.idText(Kt.name)===e.idText(vt.expression)&&Kt.body&&e.isModuleBlock(Kt.body)){var Qt=e.filter(tr,function(ka){return!!(e.getEffectiveModifierFlags(ka)&1)}),Ua=Kt.name,xa=Kt.body;if(e.length(Qt)&&(Kt=e.factory.updateModuleDeclaration(Kt,Kt.decorators,Kt.modifiers,Kt.name,xa=e.factory.updateModuleBlock(xa,e.factory.createNodeArray(Mr(Mr([],Kt.body.statements,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.map(e.flatMap(Qt,function(ka){return _t(ka)}),function(ka){return e.factory.createExportSpecifier(void 0,ka)})),void 0)],!1)))),tr=Mr(Mr(Mr([],tr.slice(0,la),!0),[Kt],!1),tr.slice(la+1),!0)),!e.find(tr,function(ka){return ka!==Kt&&e.nodeHasName(ka,Ua)})){Ot=[];var ri=!e.some(xa.statements,function(ka){return e.hasSyntacticModifier(ka,1)||e.isExportAssignment(ka)||e.isExportDeclaration(ka)});e.forEach(xa.statements,function(ka){ms(ka,ri?1:0)}),tr=Mr(Mr([],e.filter(tr,function(ka){return ka!==Kt&&ka!==vt}),!0),Ot,!0)}}return tr}function ya(tr){var vt=e.filter(tr,function(Da){return e.isExportDeclaration(Da)&&!Da.moduleSpecifier&&!!Da.exportClause&&e.isNamedExports(Da.exportClause)});if(e.length(vt)>1){var la=e.filter(tr,function(Da){return!e.isExportDeclaration(Da)||!!Da.moduleSpecifier||!Da.exportClause});tr=Mr(Mr([],la,!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(vt,function(Da){return e.cast(Da.exportClause,e.isNamedExports).elements})),void 0)],!1)}var Kt=e.filter(tr,function(Da){return e.isExportDeclaration(Da)&&!!Da.moduleSpecifier&&!!Da.exportClause&&e.isNamedExports(Da.exportClause)});if(e.length(Kt)>1){var Qt=e.group(Kt,function(Da){return e.isStringLiteral(Da.moduleSpecifier)?">"+Da.moduleSpecifier.text:">"});if(Qt.length!==Kt.length)for(var Ua=function(Da){Da.length>1&&(tr=Mr(Mr([],e.filter(tr,function(Mi){return Da.indexOf(Mi)===-1}),!0),[e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports(e.flatMap(Da,function(Mi){return e.cast(Mi.exportClause,e.isNamedExports).elements})),Da[0].moduleSpecifier)],!1))},xa=0,ri=Qt;xa=0){var la=tr[vt],Kt=e.mapDefined(la.exportClause.elements,function(Qt){if(!Qt.propertyName){var Ua=e.indicesOf(tr),xa=e.filter(Ua,function(Mi){return e.nodeHasName(tr[Mi],Qt.name)});if(e.length(xa)&&e.every(xa,function(Mi){return Pi(tr[Mi])})){for(var ri=0,ka=xa;ri0&&e.isSingleOrDoubleQuote(Kt.charCodeAt(0))?e.stripQuotes(Kt):Kt}return vt==="default"?vt="_default":vt==="export="&&(vt="_exports"),vt=e.isIdentifierText(vt,je)&&!e.isStringANonContextualKeyword(vt)?vt:"_"+vt.replace(/[^a-zA-Z0-9]/g,"_"),vt}function Vo(tr,vt){var la=A(tr);return mn.remappedSymbolNames.has(la)?mn.remappedSymbolNames.get(la):(vt=Co(tr,vt),mn.remappedSymbolNames.set(la,vt),vt)}}}function Fl(n,r,i,o){return i===void 0&&(i=16384),o?s(o).getText():e.usingSingleLineStringWriter(s);function s(u){var L=e.factory.createTypePredicateNode(n.kind===2||n.kind===3?e.factory.createToken(128):void 0,n.kind===1||n.kind===3?e.factory.createIdentifier(n.parameterName):e.factory.createThisTypeNode(),n.type&&Be.typeToTypeNode(n.type,r,Ld(i)|70221824|512)),G=e.createPrinter({removeComments:!0}),me=r&&e.getSourceFileOfNode(r);return G.writeNode(4,L,me,u),u}}function gc(n){for(var r=[],i=0,o=0;o=0){for(var o=Jo.length,s=i;s=0;i--){if(xd(Jo[i],Hs[i]))return-1;if(Jo[i]===n&&Hs[i]===r)return i}return-1}function xd(n,r){switch(r){case 0:return!!ja(n).type;case 5:return!!aa(n).resolvedEnumType;case 2:return!!ja(n).declaredType;case 1:return!!n.resolvedBaseConstructorType;case 3:return!!n.resolvedReturnType;case 4:return!!n.immediateBaseConstraint;case 6:return!!n.resolvedTypeArguments;case 7:return!!n.baseTypesResolved}return e.Debug.assertNever(r)}function oc(){return Jo.pop(),Hs.pop(),Ms.pop()}function _f(n){return e.findAncestor(e.getRootDeclaration(n),function(r){switch(r.kind){case 252:case 253:case 268:case 267:case 266:case 265:return!1;default:return!0}}).parent}function Gp(n){var r=Lo(hl(n));return r.typeParameters?Tf(r,e.map(r.typeParameters,function(i){return fe})):r}function os(n,r){var i=Gt(n,r);return i?ft(i):void 0}function ip(n,r){var i;return os(n,r)||((i=Ef(n,r))===null||i===void 0?void 0:i.type)||bn}function Ai(n){return n&&(n.flags&1)!=0}function Vu(n){var r=bt(n);return r&&ja(r).type||Do(n,!1)}function Nu(n,r,i){if(n=qs(n,function(Ue){return!(Ue.flags&98304)}),n.flags&131072)return vr;if(n.flags&1048576)return rs(n,function(Ue){return Nu(Ue,r,i)});var o=ua(e.map(r,Md));if(vm(n)||jm(o)){if(o.flags&131072)return n;var s=lI();return s?Sg(s,[n,o]):le}for(var u=e.createSymbolTable(),L=0,G=Hi(n);L=2?uI(fe):Q;var L=e.map(o,function(Ue){return e.isOmittedExpression(Ue)?fe:sm(Ue,r,i)}),G=e.findLastIndex(o,function(Ue){return!(Ue===u||e.isOmittedExpression(Ue)||M_(Ue))},o.length-1)+1,me=e.map(o,function(Ue,Ke){return Ue===u?4:Ke>=G?2:1}),Re=hu(L,me);return r&&(Re=p0(Re),Re.pattern=n,Re.objectFlags|=262144),Re}function vf(n,r,i){return r===void 0&&(r=!1),i===void 0&&(i=!1),n.kind===199?Pm(n,r,i):lm(n,r,i)}function zc(n,r){return gn(Do(n,!0),n,r)}function Se(n){var r=bt(n),i=Xx(!1);return i&&r&&r===i}function gn(n,r,i){return n?(n.flags&4096&&Se(r.parent)&&(n=Pb(r)),i&&my(r,n),n.flags&8192&&(e.isBindingElement(r)||!r.type)&&n.symbol!==bt(r)&&(n=Xt),kl(n)):(n=e.isParameter(r)&&r.dotDotDotToken?Q:fe,i&&(Mn(r)||hp(r,n)),n)}function Mn(n){var r=e.getRootDeclaration(n),i=r.kind===162?r.parent:r;return Zy(i)}function ir(n){var r=e.getEffectiveTypeAnnotationNode(n);if(r)return ha(r)}function Ar(n){var r=ja(n);if(!r.type){var i=Xr(n);r.type||(r.type=i)}return r.type}function Xr(n){if(n.flags&4194304)return Gp(n);if(n===Xe)return fe;if(n.flags&134217728&&n.valueDeclaration){var r=bt(e.getSourceFileOfNode(n.valueDeclaration)),i=Xi(r.flags,"exports");i.declarations=r.declarations?r.declarations.slice():[],i.parent=n,i.target=r,r.valueDeclaration&&(i.valueDeclaration=r.valueDeclaration),r.members&&(i.members=new e.Map(r.members)),r.exports&&(i.exports=new e.Map(r.exports));var o=e.createSymbolTable();return o.set("exports",i),Eo(n,o,e.emptyArray,e.emptyArray,e.emptyArray)}e.Debug.assertIsDefined(n.valueDeclaration);var s=n.valueDeclaration;if(e.isCatchClauseVariableDeclarationOrBindingElement(s)){var u=e.getEffectiveTypeAnnotationNode(s);if(u===void 0)return $e?bn:fe;var L=rm(u);return Ai(L)||L===bn?L:le}if(e.isSourceFile(s)&&e.isJsonSourceFile(s))return s.statements.length?kl(vp(Za(s.statements[0].expression))):vr;if(!Fs(n,0))return n.flags&512&&!(n.flags&67108864)?Gs(n):Bs(n);var G;if(s.kind===269)G=gn(Ns(s.expression),s);else if(e.isBinaryExpression(s)||e.isInJSFile(s)&&(e.isCallExpression(s)||(e.isPropertyAccessExpression(s)||e.isBindableStaticElementAccessExpression(s))&&e.isBinaryExpression(s.parent)))G=ju(n);else if(e.isPropertyAccessExpression(s)||e.isElementAccessExpression(s)||e.isIdentifier(s)||e.isStringLiteralLike(s)||e.isNumericLiteral(s)||e.isClassDeclaration(s)||e.isFunctionDeclaration(s)||e.isMethodDeclaration(s)&&!e.isObjectLiteralMethod(s)||e.isMethodSignature(s)||e.isSourceFile(s)){if(n.flags&(16|8192|32|384|512))return Gs(n);G=e.isBinaryExpression(s.parent)?ju(n):ir(s)||fe}else if(e.isPropertyAssignment(s))G=ir(s)||JA(s);else if(e.isJsxAttribute(s))G=ir(s)||ML(s);else if(e.isShorthandPropertyAssignment(s))G=ir(s)||H_(s.name,0);else if(e.isObjectLiteralMethod(s))G=ir(s)||KA(s,0);else if(e.isParameter(s)||e.isPropertyDeclaration(s)||e.isPropertySignature(s)||e.isVariableDeclaration(s)||e.isBindingElement(s)||e.isJSDocPropertyLikeTag(s))G=zc(s,!0);else if(e.isEnumDeclaration(s))G=Gs(n);else if(e.isEnumMember(s))G=Hu(n);else if(e.isAccessor(s))G=Oo(n)||e.Debug.fail("Non-write accessor resolution must always produce a type");else return e.Debug.fail("Unhandled declaration kind! "+e.Debug.formatSyntaxKind(s.kind)+" for "+e.Debug.formatSymbol(n));return oc()?G:n.flags&512&&!(n.flags&67108864)?Gs(n):Bs(n)}function Ct(n){if(n)if(n.kind===170){var r=e.getEffectiveReturnTypeNode(n);return r}else{var i=e.getEffectiveSetAccessorTypeAnnotationNode(n);return i}}function jt(n){var r=Ct(n);return r&&ha(r)}function Qa(n){var r=KS(n);return r&&r.symbol}function va(n){return td(lc(n))}function $i(n){var r=ja(n);return r.type||(r.type=no(n)||e.Debug.fail("Read type of accessor must always produce a type"))}function zo(n){var r=ja(n);return r.writeType||(r.writeType=no(n,!0))}function no(n,r){if(r===void 0&&(r=!1),!Fs(n,0))return le;var i=Oo(n,r);if(!oc()&&(i=fe,Nn)){var o=e.getDeclarationOfKind(n,170);On(o,e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,Oa(n))}return i}function Oo(n,r){r===void 0&&(r=!1);var i=e.getDeclarationOfKind(n,170),o=e.getDeclarationOfKind(n,171),s=jt(o);if(r&&s)return me(s,n);if(i&&e.isInJSFile(i)){var u=ba(i);if(u)return me(u,n)}var L=jt(i);if(L)return me(L,n);if(s)return s;if(i&&i.body){var G=qy(i);return me(G,n)}if(o)return Zy(o)||Pl(Nn,o,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_parameter_type_annotation,Oa(n)),fe;if(i)return e.Debug.assert(!!i,"there must exist a getter as we are current checking either setter or getter in this function"),Zy(i)||Pl(Nn,i,e.Diagnostics.Property_0_implicitly_has_type_any_because_its_get_accessor_lacks_a_return_type_annotation,Oa(n)),fe;return;function me(Re,Ue){if(e.getCheckFlags(Ue)&1){var Ke=ja(Ue);return Ja(Re,Ke.mapper)}return Re}}function fs(n){var r=ed(Bl(n));return r.flags&8650752?r:r.flags&2097152?e.find(r.types,function(i){return!!(i.flags&8650752)}):void 0}function Gs(n){var r=ja(n),i=r;if(!r.type){var o=n.valueDeclaration&&Jy(n.valueDeclaration,!1);if(o){var s=oS(n,o);s&&(n=r=s)}i.type=r.type=ns(n)}return r.type}function ns(n){var r=n.valueDeclaration;if(n.flags&1536&&e.isShorthandAmbientModuleSymbol(n))return fe;if(r&&(r.kind===219||e.isAccessExpression(r)&&r.parent.kind===219))return ju(n);if(n.flags&512&&r&&e.isSourceFile(r)&&r.commonJsModuleIndicator){var i=ut(n);if(i!==n){if(!Fs(n,0))return le;var o=Ji(n.exports.get("export=")),s=ju(o,o===i?void 0:i);return oc()?s:Bs(n)}}var u=ys(16,n);if(n.flags&32){var L=fs(n);return L?ao([u,L]):u}else return ze&&n.flags&16777216?If(u):u}function Hu(n){var r=ja(n);return r.type||(r.type=fg(n))}function Dl(n){var r=ja(n);if(!r.type){var i=Wo(n),o=n.declarations&&rf(rc(n),!0);r.type=(o==null?void 0:o.declarations)&&uE(o.declarations)&&n.declarations.length?Js(o):uE(n.declarations)?Ge:i.flags&111551?ft(i):le}return r.type}function dl(n){var r=ja(n);if(!r.type){if(!Fs(n,0))return r.type=le;var i=Ja(ft(r.target),r.mapper);oc()||(i=Bs(n)),r.type=i}return r.type}function Bs(n){var r=n.valueDeclaration;return e.getEffectiveTypeAnnotationNode(r)?(On(n.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_type_annotation,Oa(n)),le):(Nn&&(r.kind!==162||r.initializer)&&On(n.valueDeclaration,e.Diagnostics._0_implicitly_has_type_any_because_it_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer,Oa(n)),fe)}function qc(n){var r=ja(n);return r.type||(e.Debug.assertIsDefined(r.deferralParent),e.Debug.assertIsDefined(r.deferralConstituents),r.type=r.deferralParent.flags&1048576?ua(r.deferralConstituents):ao(r.deferralConstituents)),r.type}function Mm(n){if(n.flags&98304){var r=zo(n);if(r)return r}return ft(n)}function ft(n){var r=e.getCheckFlags(n);return r&65536?qc(n):r&1?dl(n):r&262144?Bh(n):r&8192?pk(n):n.flags&(3|4)?Ar(n):n.flags&(16|8192|32|384|512)?Gs(n):n.flags&8?Hu(n):n.flags&98304?$i(n):n.flags&2097152?Dl(n):le}function _(n){return qm(ft(n),!!(n.flags&16777216))}function W(n,r){return n!==void 0&&r!==void 0&&(e.getObjectFlags(n)&4)!=0&&n.target===r}function ve(n){return e.getObjectFlags(n)&4?n.target:n}function en(n,r){return i(n);function i(o){if(e.getObjectFlags(o)&(3|4)){var s=ve(o);return s===r||e.some(Gl(s),i)}else if(o.flags&2097152)return e.some(o.types,i);return!1}}function Fn(n,r){for(var i=0,o=r;i0)return!0;if(n.flags&8650752){var r=$s(n);return!!r&&ds(r)}return!1}function yc(n){return e.getEffectiveBaseTypeNode(n.symbol.valueDeclaration)}function cm(n,r,i){var o=e.length(r),s=e.isInJSFile(i);return e.filter(sa(n,1),function(u){return(s||o>=Qc(u.typeParameters))&&o<=e.length(u.typeParameters)})}function Id(n,r,i){var o=cm(n,r,i),s=e.map(r,ha);return e.sameMap(o,function(u){return e.some(u.typeParameters)?Nv(u,s,e.isInJSFile(i)):u})}function ed(n){if(!n.resolvedBaseConstructorType){var r=n.symbol.valueDeclaration,i=e.getEffectiveBaseTypeNode(r),o=yc(n);if(!o)return n.resolvedBaseConstructorType=In;if(!Fs(n,1))return le;var s=Za(o.expression);if(i&&o!==i&&(e.Debug.assert(!i.typeArguments),Za(i.expression)),s.flags&(524288|2097152)&&Yc(s),!oc())return On(n.symbol.valueDeclaration,e.Diagnostics._0_is_referenced_directly_or_indirectly_in_its_own_base_expression,Oa(n.symbol)),n.resolvedBaseConstructorType=le;if(!(s.flags&1)&&s!==lr&&!lp(s)){var u=On(o.expression,e.Diagnostics.Type_0_is_not_a_constructor_function_type,pt(s));if(s.flags&262144){var L=T_(s),G=bn;if(L){var me=sa(L,1);me[0]&&(G=eo(me[0]))}s.symbol.declarations&&e.addRelatedInfo(u,e.createDiagnosticForNode(s.symbol.declarations[0],e.Diagnostics.Did_you_mean_for_0_to_be_constrained_to_type_new_args_Colon_any_1,Oa(s.symbol),pt(G)))}return n.resolvedBaseConstructorType=le}n.resolvedBaseConstructorType=s}return n.resolvedBaseConstructorType}function d_(n){var r=e.emptyArray;if(n.symbol.declarations)for(var i=0,o=n.symbol.declarations;i=yn&&me<=Hn){var $n=Hn?Kh(Qe,bf(G,Qe.typeParameters,yn,L)):dm(Qe);$n.typeParameters=n.localTypeParameters,$n.resolvedReturnType=n,$n.flags=s?$n.flags|4:$n.flags&~4,Re.push($n)}}return Re}function pv(n,r,i,o,s){for(var u=0,L=n;u0)return;for(var o=1;o1&&(i=i===void 0?o:-1);for(var s=0,u=n[o];s1){var Re=L.thisParameter,Ue=e.forEach(G,function(Yr){return Yr.thisParameter});if(Ue){var Ke=ao(e.mapDefined(G,function(Yr){return Yr.thisParameter&&ft(Yr.thisParameter)}));Re=Sm(Ue,Ke)}me=Nh(L,G),me.thisParameter=Re}(r||(r=[])).push(me)}}}}if(!e.length(r)&&i!==-1){for(var Qe=n[i!==void 0?i:0],yn=Qe.slice(),Hn=function(Yr){if(Yr!==Qe){var It=Yr[0];if(e.Debug.assert(!!It,"getUnionSignatures bails early on empty signature lists and should not have empty lists on second pass"),yn=!!It.typeParameters&&e.some(yn,function(rt){return!!rt.typeParameters&&!Rh(It.typeParameters,rt.typeParameters)})?void 0:e.map(yn,function(rt){return XE(rt,It)}),!yn)return"break"}},$n=0,Er=n;$n=s?n:r,L=u===n?r:n,G=u===n?o:s,me=Su(n)||Su(r),Re=me&&!Su(u),Ue=new Array(G+(Re?1:0)),Ke=0;Ke=Tu(u)&&Ke>=Tu(L),hr=Ke>=o?void 0:V_(n,Ke),Ir=Ke>=s?void 0:V_(r,Ke),Yr=hr===Ir?hr:hr?Ir?void 0:hr:Ir,It=Xi(1|(Er&&!$n?16777216:0),Yr||"arg"+Ke);It.type=$n?Vs(Hn):Hn,Ue[Ke]=It}if(Re){var rt=Xi(1,"args");rt.type=Vs(Bc(L,G)),L===r&&(rt.type=Ja(rt.type,i)),Ue[G]=rt}return Ue}function XE(n,r){var i=n.typeParameters||r.typeParameters,o;n.typeParameters&&r.typeParameters&&(o=Nl(r.typeParameters,n.typeParameters));var s=n.declaration,u=_v(n,r,o),L=Oh(n.thisParameter,r.thisParameter,o),G=Math.max(n.minArgumentCount,r.minArgumentCount),me=Mc(s,i,L,u,void 0,void 0,G,(n.flags|r.flags)&39);return me.compositeKind=1048576,me.compositeSignatures=e.concatenate(n.compositeKind!==2097152&&n.compositeSignatures||[n],[r]),o&&(me.mapper=n.compositeKind!==2097152&&n.mapper&&n.compositeSignatures?Em(n.mapper,o):o),me}function gv(n){var r=Oi(n[0]);if(r){for(var i=[],o=function(G){var me=G.keyType;e.every(n,function(Re){return!!Is(Re,me)})&&i.push(vu(me,ua(e.map(n,function(Re){return jl(Re,me)})),e.some(n,function(Re){return Is(Re,me).isReadonly})))},s=0,u=r;s0}),i=e.map(n,ds);if(r>0&&r===e.countWhere(i,function(s){return s})){var o=i.indexOf(!0);i[o]=!1}return i}function YE(n,r,i,o){for(var s=[],u=0;u0&&(Ke=e.map(Ke,function(Qe){var yn=dm(Qe);return yn.resolvedReturnType=YE(eo(Qe),s,u,Re),yn})),i=vv(i,Ke)}r=vv(r,sa(Ue,0)),o=e.reduceLeft(Oi(Ue),function(Qe,yn){return wh(Qe,yn,!1)},o)},me=0;me=7):r.flags&528?Zn:r.flags&12288?C0(je>=2):r.flags&67108864?vr:r.flags&4194304?Kr:r.flags&2&&!ze?vr:r}function y_(n){return wn(zs(wn(n)))}function l(n,r,i){for(var o,s,u,L,G,me=n.flags&1048576,Re=me?0:16777216,Ue=4,Ke=0,Qe=!1,yn=0,Hn=n.types;yn2?(ma.checkFlags|=65536,ma.deferralParent=n,ma.deferralConstituents=Ba):ma.type=me?ua(Ba):ao(Ba),ma}}function $(n,r,i){var o,s,u=((o=n.propertyCacheWithoutObjectFunctionPropertyAugment)===null||o===void 0?void 0:o.get(r))||!i?(s=n.propertyCache)===null||s===void 0?void 0:s.get(r):void 0;if(!u&&(u=l(n,r,i),u)){var L=i?n.propertyCacheWithoutObjectFunctionPropertyAugment||(n.propertyCacheWithoutObjectFunctionPropertyAugment=e.createSymbolTable()):n.propertyCache||(n.propertyCache=e.createSymbolTable());L.set(r,u)}return u}function rn(n,r,i){var o=$(n,r,i);return o&&!(e.getCheckFlags(o)&16)?o:void 0}function wn(n){return n.flags&1048576&&n.objectFlags&33554432?n.resolvedReducedType||(n.resolvedReducedType=Lr(n)):n.flags&2097152?(n.objectFlags&33554432||(n.objectFlags|=33554432|(e.some(g_(n),At)?67108864:0)),n.objectFlags&67108864?Pt:n):n}function Lr(n){var r=e.sameMap(n.types,wn);if(r===n.types)return n;var i=ua(r);return i.flags&1048576&&(i.resolvedReducedType=i),i}function At(n){return qt(n)||pa(n)}function qt(n){return!(n.flags&16777216)&&(e.getCheckFlags(n)&(192|131072))==192&&!!(ft(n).flags&131072)}function pa(n){return!n.valueDeclaration&&!!(e.getCheckFlags(n)&1024)}function li(n,r){if(r.flags&2097152&&e.getObjectFlags(r)&67108864){var i=e.find(g_(r),qt);if(i)return e.chainDiagnosticMessages(n,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_has_conflicting_types_in_some_constituents,pt(r,void 0,536870912),Oa(i));var o=e.find(g_(r),pa);if(o)return e.chainDiagnosticMessages(n,e.Diagnostics.The_intersection_0_was_reduced_to_never_because_property_1_exists_in_multiple_constituents_and_is_private_in_some,pt(r,void 0,536870912),Oa(o))}return n}function Gt(n,r,i){if(n=y_(n),n.flags&524288){var o=Yc(n),s=o.members.get(r);if(s&&Rc(s))return s;if(i)return;var u=o===Zt?So:o.callSignatures.length?Zo:o.constructSignatures.length?fn:void 0;if(u){var L=rd(u,r);if(L)return L}return rd(qo,r)}if(n.flags&3145728)return rn(n,r,i)}function Bi(n,r){if(n.flags&3670016){var i=Yc(n);return r===0?i.callSignatures:i.constructSignatures}return e.emptyArray}function sa(n,r){return Bi(y_(n),r)}function el(n,r){return e.find(n,function(i){return i.keyType===r})}function xs(n,r){for(var i,o,s,u=0,L=n;u=0),i>=Tu(r,1|2)}var o=e.getImmediatelyInvokedFunctionExpression(n.parent);return o?!n.type&&!n.dotDotDotToken&&n.parent.parameters.indexOf(n)>=o.arguments.length:!1}function lb(n){return e.isPropertyDeclaration(n)&&n.questionToken}function Av(n){if(!e.isJSDocPropertyLikeTag(n))return!1;var r=n.isBracketed,i=n.typeExpression;return r||!!i&&i.type.kind===311}function gm(n,r,i,o){return{kind:n,parameterName:r,parameterIndex:i,type:o}}function Qc(n){var r=0;if(n)for(var i=0;i=i&&u<=s){for(var L=n?n.slice():[],G=u;GG.arguments.length&&!yn||E_(Ke);$n||(s=i.length)}if((n.kind===170||n.kind===171)&&Zs(n)&&(!L||!u)){var Er=n.kind===170?171:170,hr=e.getDeclarationOfKind(bt(n),Er);hr&&(u=Qa(hr))}var Ir=n.kind===169?Bl(Ji(n.parent.symbol)):void 0,Yr=Ir?Ir.localTypeParameters:yg(n);(e.hasRestParameter(n)||e.isInJSFile(n)&&Jh(n,i))&&(o|=1),(e.isConstructorTypeNode(n)&&e.hasSyntacticModifier(n,128)||e.isConstructorDeclaration(n)&&e.hasSyntacticModifier(n.parent,128))&&(o|=4),r.resolvedSignature=Mc(n,Yr,u,i,void 0,void 0,s,o)}return r.resolvedSignature}function Jh(n,r){if(e.isJSDocSignature(n)||!bg(n))return!1;var i=e.lastOrUndefined(n.parameters),o=i?e.getJSDocParameterTags(i):e.getJSDocTags(n).filter(e.isJSDocParameterTag),s=e.firstDefined(o,function(L){return L.typeExpression&&e.isJSDocVariadicType(L.typeExpression.type)?L.typeExpression.type:void 0}),u=Xi(3,"args",32768);return u.type=s?Vs(ha(s.type)):Q,s&&r.pop(),r.push(u),!0}function Cv(n){if(!!(e.isInJSFile(n)&&e.isFunctionLikeDeclaration(n))){var r=e.getJSDocTypeTag(n);return(r==null?void 0:r.typeExpression)&&Dm(ha(r.typeExpression))}}function xv(n){var r=Cv(n);return r&&eo(r)}function bg(n){var r=aa(n);return r.containsArgumentsReference===void 0&&(r.flags&8192?r.containsArgumentsReference=!0:r.containsArgumentsReference=i(n.body)),r.containsArgumentsReference;function i(o){if(!o)return!1;switch(o.kind){case 79:return o.escapedText===be.escapedName&&eu(o)===be;case 165:case 167:case 170:case 171:return o.name.kind===160&&i(o.name);case 204:case 205:return i(o.expression);default:return!e.nodeStartsNewLexicalEnvironment(o)&&!e.isPartOfTypeNode(o)&&!!e.forEachChild(o,i)}}}function Ju(n){if(!n||!n.declarations)return e.emptyArray;for(var r=[],i=0;i0&&o.body){var s=n.declarations[i-1];if(o.parent===s.parent&&o.kind===s.kind&&o.pos===s.end)continue}r.push(lc(o))}}return r}function Iv(n){var r=so(n,n);if(r){var i=ut(r);if(i)return ft(i)}return fe}function td(n){if(n.thisParameter)return ft(n.thisParameter)}function Zl(n){if(!n.resolvedTypePredicate){if(n.target){var r=Zl(n.target);n.resolvedTypePredicate=r?cN(r,n.mapper):Vi}else if(n.compositeSignatures)n.resolvedTypePredicate=bI(n.compositeSignatures,n.compositeKind)||Vi;else{var i=n.declaration&&e.getEffectiveReturnTypeNode(n.declaration),o=void 0;if(!i&&e.isInJSFile(n.declaration)){var s=Cv(n.declaration);s&&n!==s&&(o=Zl(s))}n.resolvedTypePredicate=i&&e.isTypePredicateNode(i)?Mx(i,n):o||Vi}e.Debug.assert(!!n.resolvedTypePredicate)}return n.resolvedTypePredicate===Vi?void 0:n.resolvedTypePredicate}function Mx(n,r){var i=n.parameterName,o=n.type&&ha(n.type);return i.kind===190?gm(n.assertsModifier?2:0,void 0,void 0,o):gm(n.assertsModifier?3:1,i.escapedText,e.findIndex(r.parameters,function(s){return s.escapedName===i.escapedText}),o)}function o0(n,r,i){return r!==2097152?ua(n,i):ao(n)}function eo(n){if(!n.resolvedReturnType){if(!Fs(n,3))return le;var r=n.target?Ja(eo(n.target),n.mapper):n.compositeSignatures?Ja(o0(e.map(n.compositeSignatures,eo),n.compositeKind,2),n.mapper):Vm(n.declaration)||(e.nodeIsMissing(n.declaration.body)?fe:qy(n.declaration));if(n.flags&8?r=wD(r):n.flags&16&&(r=If(r)),!oc()){if(n.declaration){var i=e.getEffectiveReturnTypeNode(n.declaration);if(i)On(i,e.Diagnostics.Return_type_annotation_circularly_references_itself);else if(Nn){var o=n.declaration,s=e.getNameOfDeclaration(o);s?On(s,e.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions,e.declarationNameToString(s)):On(o,e.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions)}}r=fe}n.resolvedReturnType=r}return n.resolvedReturnType}function Vm(n){if(n.kind===169)return Bl(Ji(n.parent.symbol));if(e.isJSDocConstructSignature(n))return ha(n.parameters[0].type);var r=e.getEffectiveReturnTypeNode(n);if(r)return ha(r);if(n.kind===170&&Zs(n)){var i=e.isInJSFile(n)&&ba(n);if(i)return i;var o=e.getDeclarationOfKind(bt(n),171),s=jt(o);if(s)return s}return xv(n)}function cb(n){return!n.resolvedReturnType&&Cd(n,3)>=0}function wx(n){return s0(n)||fe}function s0(n){if(V(n)){var r=ft(n.parameters[n.parameters.length-1]),i=_i(r)?kg(r):r;return i&&jl(i,gr)}}function Nv(n,r,i,o){var s=ub(n,bf(r,n.typeParameters,Qc(n.typeParameters),i));if(o){var u=lA(eo(s));if(u){var L=dm(u);L.typeParameters=o;var G=dm(s);return G.resolvedReturnType=b_(L),G}}return s}function ub(n,r){var i=n.instantiations||(n.instantiations=new e.Map),o=wc(r),s=i.get(o);return s||i.set(o,s=Kh(n,r)),s}function Kh(n,r){return Km(n,Fx(n,r),!0)}function Fx(n,r){return Nl(n.typeParameters,r)}function Tg(n){return n.typeParameters?n.erasedSignatureCache||(n.erasedSignatureCache=Gx(n)):n}function Gx(n){return Km(n,sD(n.typeParameters),!0)}function Bx(n){return n.typeParameters?n.canonicalSignatureCache||(n.canonicalSignatureCache=Ux(n)):n}function Ux(n){return Nv(n,e.map(n.typeParameters,function(r){return r.target&&!Wl(r.target)?r.target:r}),e.isInJSFile(n.declaration))}function Vx(n){var r=n.typeParameters;if(r){if(n.baseSignatureCache)return n.baseSignatureCache;for(var i=sD(r),o=Nl(r,e.map(r,function(L){return Wl(L)||bn})),s=e.map(r,function(L){return Ja(L,o)||bn}),u=0;u1&&(r+=":"+u),o+=u}return r}function S_(n,r){return n?"@"+A(n)+(r?":"+wc(r):""):""}function db(n,r){for(var i=0,o=0,s=n;oo.length)){var me=L&&e.isExpressionWithTypeArguments(n)&&!e.isJSDocAugmentsTag(n.parent),Re=u===o.length?me?e.Diagnostics.Expected_0_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_1_type_argument_s:me?e.Diagnostics.Expected_0_1_type_arguments_provide_these_with_an_extends_tag:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,Ue=pt(i,void 0,2);if(On(n,Re,Ue,u,o.length),!L)return le}if(n.kind===176&&R0(n,e.length(n.typeArguments)!==o.length))return pb(i,n,void 0);var Ke=e.concatenate(i.outerTypeParameters,bf(mb(n),o,u,L));return Tf(i,Ke)}return pp(n,r)?i:le}function Sg(n,r,i,o){var s=Lo(n);if(s===or&&H.has(n.escapedName)&&r&&r.length===1)return Zh(n,r[0]);var u=ja(n),L=u.typeParameters,G=wc(r)+S_(i,o),me=u.instantiations.get(G);return me||u.instantiations.set(G,me=fD(s,Nl(L,bf(r,L,Qc(L),e.isInJSFile(n.valueDeclaration))),i,o)),me}function jx(n,r){var i=Lo(r),o=ja(r).typeParameters;if(o){var s=e.length(n.typeArguments),u=Qc(o);if(so.length)return On(n,u===o.length?e.Diagnostics.Generic_type_0_requires_1_type_argument_s:e.Diagnostics.Generic_type_0_requires_between_1_and_2_type_arguments,Oa(r),u,o.length),le;var L=hm(n),G=L&&(_0(r)||!_0(L))?L:void 0;return Sg(r,mb(n),G,Hm(G))}return pp(n,r)?i:le}function _0(n){var r,i=(r=n.declarations)===null||r===void 0?void 0:r.find(e.isTypeAlias);return!!(i&&e.getContainingFunction(i))}function Dg(n){switch(n.kind){case 176:return n.typeName;case 226:var r=n.expression;if(e.isEntityNameExpression(r))return r}}function D_(n,r,i){return n&&fo(n,r,i)||jn}function qh(n,r){if(r===jn)return le;if(r=kt(r)||r,r.flags&(32|64))return m0(n,r);if(r.flags&524288)return jx(n,r);var i=pg(r);if(i)return pp(n,r)?Il(i):le;if(r.flags&111551&&Xh(n)){var o=Hx(n,r);return o||(D_(Dg(n),788968),ft(r))}return le}function Hx(n,r){var i=aa(n);if(!i.resolvedJSDocType){var o=ft(r),s=o;if(r.valueDeclaration){var u=n.kind===198&&n.qualifier;o.symbol&&o.symbol!==r&&u&&(s=qh(n,o.symbol))}i.resolvedJSDocType=s}return i.resolvedJSDocType}function g0(n,r){if(r.flags&3||r===n)return n;var i=Fc(n)+">"+Fc(r),o=Wn.get(i);if(o)return o;var s=Qs(33554432);return s.baseType=n,s.substitute=r,Wn.set(i,s),s}function v0(n){return n.kind===182&&n.elements.length===1}function h0(n,r,i){return v0(r)&&v0(i)?h0(n,r.elements[0],i.elements[0]):mp(ha(r))===n?ha(i):void 0}function y0(n,r){for(var i,o=!0;r&&!e.isStatement(r)&&r.kind!==315;){var s=r.parent;if(s.kind===162&&(o=!o),(o||n.flags&8650752)&&s.kind===187&&r===s.trueType){var u=h0(n,s.checkType,s.extendsType);u&&(i=e.append(i,u))}r=s}return i?g0(n,ao(e.append(i,n))):n}function Xh(n){return!!(n.flags&4194304)&&(n.kind===176||n.kind===198)}function pp(n,r){return n.typeArguments?(On(n,e.Diagnostics.Type_0_is_not_generic,r?Oa(r):n.typeName?e.declarationNameToString(n.typeName):d),!1):!0}function E0(n){if(e.isIdentifier(n.typeName)){var r=n.typeArguments;switch(n.typeName.escapedText){case"String":return pp(n),dr;case"Number":return pp(n),gr;case"Boolean":return pp(n),qr;case"Void":return pp(n),fr;case"Undefined":return pp(n),In;case"Null":return pp(n),rr;case"Function":case"function":return pp(n),So;case"array":return(!r||!r.length)&&!Nn?Q:void 0;case"promise":return(!r||!r.length)&&!Nn?th(fe):void 0;case"Object":if(r&&r.length===2){if(e.isJSDocIndexSignature(n)){var i=ha(r[0]),o=ha(r[1]),s=i===dr||i===gr?[vu(i,o,!1)]:e.emptyArray;return Eo(void 0,We,e.emptyArray,e.emptyArray,s)}return fe}return pp(n),Nn?void 0:fe}}}function Jx(n){var r=ha(n.type);return ze?iT(r,65536):r}function kv(n){var r=aa(n);if(!r.resolvedType){if(e.isConstTypeReference(n)&&e.isAssertionExpression(n.parent))return r.resolvedSymbol=jn,r.resolvedType=Ns(n.parent.expression);var i=void 0,o=void 0,s=788968;Xh(n)&&(o=E0(n),o||(i=D_(Dg(n),s,!0),i===jn?i=D_(Dg(n),s|111551):D_(Dg(n),s),o=qh(n,i))),o||(i=D_(Dg(n),s),o=qh(n,i)),r.resolvedSymbol=i,r.resolvedType=o}return r.resolvedType}function mb(n){return e.map(n.typeArguments,ha)}function b0(n){var r=aa(n);if(!r.resolvedType){var i=e.isThisIdentifier(n.exprName)?xy(n.exprName):Za(n.exprName);r.resolvedType=Il(kl(i))}return r.resolvedType}function T0(n,r){function i(s){var u=s.declarations;if(u)for(var L=0,G=u;L=0)return Rv(e.map(r,function(hr,Ir){return n.elementFlags[Ir]&8?hr:bn}))?rs(r[u],function(hr){return P0(n,e.replaceElement(r,u,hr))}):le}for(var L=[],G=[],me=[],Re=-1,Ue=-1,Ke=-1,Qe=function(hr){var Ir=r[hr],Yr=n.elementFlags[hr];if(Yr&8)if(Ir.flags&58982400||Vl(Ir))Er(Ir,8,(i=n.labeledElementDeclarations)===null||i===void 0?void 0:i[hr]);else if(_i(Ir)){var It=ro(Ir);if(It.length+L.length>=1e4)return On(Ee,e.isPartOfTypeNode(Ee)?e.Diagnostics.Type_produces_a_tuple_type_that_is_too_large_to_represent:e.Diagnostics.Expression_produces_a_tuple_type_that_is_too_large_to_represent),{value:le};e.forEach(It,function(rt,ca){var Yt;return Er(rt,Ir.target.elementFlags[ca],(Yt=Ir.target.labeledElementDeclarations)===null||Yt===void 0?void 0:Yt[ca])})}else Er(Ud(Ir)&&jl(Ir,gr)||le,4,(o=n.labeledElementDeclarations)===null||o===void 0?void 0:o[hr]);else Er(Ir,Yr,(s=n.labeledElementDeclarations)===null||s===void 0?void 0:s[hr])},yn=0;yn=0&&Ueo.fixedLength?ZN(n)||hu(e.emptyArray):hu(ro(n).slice(r,s),o.elementFlags.slice(r,s),!1,o.labeledElementDeclarations&&o.labeledElementDeclarations.slice(r,s))}function M0(n){return ua(e.append(e.arrayOf(n.target.fixedLength,function(r){return Tc(""+r)}),Ru(n.target.readonly?Hr:cr)))}function w0(n,r){var i=e.findIndex(n.elementFlags,function(o){return!(o&r)});return i>=0?i:n.elementFlags.length}function Qh(n,r){return n.elementFlags.length-e.findLastIndex(n.elementFlags,function(i){return!(i&r)})-1}function _I(n){return xi(ha(n.type),!0)}function Fc(n){return n.id}function Jp(n,r){return e.binarySearch(n,r,Fc,e.compareValues)>=0}function yb(n,r){var i=e.binarySearch(n,r,Fc,e.compareValues);return i<0?(n.splice(~i,0,r),!0):!1}function gI(n,r,i){var o=i.flags;if(o&1048576)return F0(n,r|(EI(i)?1048576:0),i.types);if(!(o&131072))if(r|=o&205258751,o&469499904&&(r|=262144),i===tn&&(r|=8388608),!ze&&o&98304)e.getObjectFlags(i)&131072||(r|=4194304);else{var s=n.length,u=s&&i.id>n[s-1].id?~s:e.binarySearch(n,i,Fc,e.compareValues);u<0&&n.splice(~u,0,i)}return r}function F0(n,r,i){for(var o=0,s=i;o0;){L--;var me=n[L];if(s||me.flags&469499904)for(var Re=me.flags&(524288|2097152|58982400)?e.find(Hi(me),function(Er){return yu(ft(Er))}):void 0,Ue=Re&&Il(ft(Re)),Ke=0,Qe=n;Ke1e6){e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","removeSubtypes_DepthLimit",{typeIds:n.map(function(Er){return Er.id})}),On(Ee,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent);return}}if(G++,Re&&yn.flags&(524288|2097152|58982400)){var $n=os(yn,Re.escapedName);if($n&&yu($n)&&Il($n)!==Ue)continue}if(xf(me,yn,$r)&&(!(e.getObjectFlags(ve(me))&1)||!(e.getObjectFlags(ve(yn))&1)||C_(me,yn))){e.orderedRemoveItemAt(n,L);break}}}}return Je.set(i,n),n}function hI(n,r,i){for(var o=n.length;o>0;){o--;var s=n[o],u=s.flags,L=u&(128|134217728|268435456)&&r&4||u&256&&r&8||u&2048&&r&64||u&8192&&r&4096||i&&u&32768&&r&16384||gp(s)&&Jp(n,s.regularType);L&&e.orderedRemoveItemAt(n,o)}}function yI(n){var r=e.filter(n,Ov);if(r.length)for(var i=n.length,o=function(){i--;var s=n[i];s.flags&128&&e.some(r,function(u){return Af(s,u)})&&e.orderedRemoveItemAt(n,i)};i>0;)o()}function EI(n){return!!(n.flags&1048576&&(n.aliasSymbol||n.origin))}function G0(n,r){for(var i=0,o=r;i=0&&Jp(u,In)&&e.orderedRemoveItemAt(u,G)}if((L&(2944|8192|134217728|268435456)||L&16384&&L&32768)&&hI(u,L,!!(r&2)),L&128&&L&134217728&&yI(u),r===2&&(u=vI(u,!!(L&524288)),!u))return le;if(u.length===0)return L&65536?L&4194304?rr:lr:L&32768?L&4194304?In:pn:Pt}if(!s&&L&1048576){var me=[];G0(me,n);for(var Re=[],Ue=function(Ir){e.some(me,function(Yr){return Jp(Yr.types,Ir)})||Re.push(Ir)},Ke=0,Qe=u;Ke0;){i--;var o=n[i],s=o.flags&4&&r&128||o.flags&8&&r&256||o.flags&64&&r&2048||o.flags&4096&&r&8192;s&&e.orderedRemoveItemAt(n,i)}}function LI(n,r){for(var i=0,o=n;i0;){r--;var o=n[r];if(!!(o.flags&134217728))for(var s=0,u=i;s=1e5?(e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","checkCrossProductUnion_DepthLimit",{typeIds:n.map(function(i){return i.id}),size:r}),On(Ee,e.Diagnostics.Expression_produces_a_union_type_that_is_too_complex_to_represent),!1):!0}function II(n){for(var r=V0(n),i=[],o=0;o=0;L--)if(n[L].flags&1048576){var G=n[L].types,me=G.length;s[L]=G[u%me],u=Math.floor(u/me)}var Re=ao(s);Re.flags&131072||i.push(Re)}return i}function NI(n){var r=aa(n);if(!r.resolvedType){var i=hm(n);r.resolvedType=ao(e.map(n.types,ha),i,Hm(i))}return r.resolvedType}function W0(n,r){var i=Qs(4194304);return i.type=n,i.stringsOnly=r,i}function kI(n){var r=is(4194304);return r.type=n,r}function RI(n,r){return r?n.resolvedStringIndexType||(n.resolvedStringIndexType=W0(n,!0)):n.resolvedIndexType||(n.resolvedIndexType=W0(n,!1))}function j0(n,r,i){return Ja(n,Fv(r.mapper,gu(r),i))}function OI(n,r){var i=qs(Ec(n),function(u){return!(r&&u.flags&(1|4))}),o=n.declaration.nameType&&ha(n.declaration.nameType),s=o&&Nf(i,function(u){return!!(u.flags&(4|8|131072))})&&Hi(zs(vg(n)));return o?ua([rs(i,function(u){return j0(o,n,u)}),rs(ua(e.map(s||e.emptyArray,function(u){return Wm(u,8576)})),function(u){return j0(o,n,u)})]):i}function PI(n){var r=gu(n);return i(Hp(n)||r);function i(o){return o.flags&(3|131068|131072|262144|524288|67108864)?!0:o.flags&16777216?o.root.isDistributive&&o.checkType===r:o.flags&(3145728|134217728)?e.every(o.types,i):o.flags&8388608?i(o.objectType)&&i(o.indexType):o.flags&33554432?i(o.substitute):o.flags&268435456?i(o.type):!1}}function Md(n){return e.isPrivateIdentifier(n)?Pt:e.isIdentifier(n)?Tc(e.unescapeLeadingUnderscores(n.escapedText)):Il(e.isComputedPropertyName(n)?Rf(n):Za(n))}function Wm(n,r,i){if(i||!(e.getDeclarationModifierFlagsFromSymbol(n)&24)){var o=ja(fm(n)).nameType;if(!o){var s=e.getNameOfDeclaration(n.valueDeclaration);o=n.escapedName==="default"?Tc("default"):s&&Md(s)||(e.isKnownSymbol(n)?void 0:Tc(e.symbolName(n)))}if(o&&o.flags&r)return o}return Pt}function MI(n,r,i){var o=i&&(e.getObjectFlags(n)&(3|4)||n.aliasSymbol)?kI(n):void 0,s=e.map(Hi(n),function(L){return Wm(L,r)}),u=e.map(Oi(n),function(L){return L!==Ki&&L.keyType.flags&r?L.keyType===dr&&r&8?ta:L.keyType:Pt});return ua(e.concatenate(s,u),1,void 0,void 0,o)}function Ru(n,r,i){return r===void 0&&(r=ie),n=wn(n),n.flags&1048576?ao(e.map(n.types,function(o){return Ru(o,r,i)})):n.flags&2097152?ua(e.map(n.types,function(o){return Ru(o,r,i)})):n.flags&58982400||k_(n)||Vl(n)&&!PI(n)?RI(n,r):e.getObjectFlags(n)&32?OI(n,i):n===tn?tn:n.flags&2?Pt:n.flags&(1|131072)?Kr:MI(n,(i?128:402653316)|(r?0:296|12288),r===ie&&!i)}function H0(n){if(ie)return n;var r=sI();return r?Sg(r,[n,dr]):dr}function wI(n){var r=H0(Ru(n));return r.flags&131072?dr:r}function FI(n){var r=aa(n);if(!r.resolvedType)switch(n.operator){case 139:r.resolvedType=Ru(ha(n.type));break;case 152:r.resolvedType=n.type.kind===149?Pb(e.walkUpParenthesizedTypes(n.parent)):le;break;case 143:r.resolvedType=ha(n.type);break;default:throw e.Debug.assertNever(n.operator)}return r.resolvedType}function GI(n){var r=aa(n);return r.resolvedType||(r.resolvedType=A_(Mr([n.head.text],e.map(n.templateSpans,function(i){return i.literal.text}),!0),e.map(n.templateSpans,function(i){return ha(i.type)}))),r.resolvedType}function A_(n,r){var i=e.findIndex(r,function(Re){return!!(Re.flags&(131072|1048576))});if(i>=0)return Rv(r)?rs(r[i],function(Re){return A_(n,e.replaceElement(r,i,Re))}):le;if(e.contains(r,tn))return tn;var o=[],s=[],u=n[0];if(!me(n,r))return dr;if(o.length===0)return Tc(u);if(s.push(u),e.every(s,function(Re){return Re===""})&&e.every(o,function(Re){return!!(Re.flags&4)}))return dr;var L=wc(o)+"|"+e.map(s,function(Re){return Re.length}).join(",")+"|"+s.join(""),G=Ve.get(L);return G||Ve.set(L,G=UI(s,o)),G;function me(Re,Ue){for(var Ke=0;Ke=0){if(s&&Nf(r,function(rt){return!rt.target.hasRestElement})&&!(u&16)){var Qe=Lb(s);_i(r)?On(Qe,e.Diagnostics.Tuple_type_0_of_length_1_has_no_element_at_index_2,pt(r),Pd(r),e.unescapeLeadingUnderscores(me)):On(Qe,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),pt(r))}return It(Is(r,gr)),rs(r,function(rt){var ca=kg(rt)||In;return u&1?ua([ca,In]):ca})}}if(!(i.flags&98304)&&ps(i,402653316|296|12288)){if(r.flags&(1|131072))return r;var yn=Od(r,i)||Is(r,dr);if(yn){if(u&2&&yn.keyType!==gr){G&&On(G,e.Diagnostics.Type_0_cannot_be_used_to_index_type_1,pt(i),pt(n));return}if(s&&yn.keyType===dr&&!ps(i,4|8)){var Qe=Lb(s);return On(Qe,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,pt(i)),u&1?ua([yn.type,In]):yn.type}return It(yn),u&1?ua([yn.type,In]):yn.type}if(i.flags&131072)return Pt;if(Cg(r))return fe;if(G&&!pS(r)){if(yp(r)){if(Nn&&i.flags&(128|256))return Ut.add(e.createDiagnosticForNode(G,e.Diagnostics.Property_0_does_not_exist_on_type_1,i.value,pt(r))),In;if(i.flags&(8|4)){var Hn=e.map(r.properties,function(rt){return ft(rt)});return ua(e.append(Hn,In))}}if(r.symbol===cn&&me!==void 0&&cn.exports.has(me)&&cn.exports.get(me).flags&418)On(G,e.Diagnostics.Property_0_does_not_exist_on_type_1,e.unescapeLeadingUnderscores(me),pt(r));else if(Nn&&!Ie.suppressImplicitAnyIndexErrors&&!(u&128))if(me!==void 0&&$L(me,r)){var $n=pt(r);On(G,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_to_access_the_static_member_2_instead,me,$n,$n+"["+e.getTextOfNode(G.argumentExpression)+"]")}else if(jl(r,gr))On(G.argumentExpression,e.Diagnostics.Element_implicitly_has_an_any_type_because_index_expression_is_not_of_type_number);else{var Er=void 0;if(me!==void 0&&(Er=$T(me,r)))Er!==void 0&&On(G.argumentExpression,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,me,pt(r),Er);else{var hr=TO(r,G,i);if(hr!==void 0)On(G,e.Diagnostics.Element_implicitly_has_an_any_type_because_type_0_has_no_index_signature_Did_you_mean_to_call_1,pt(r),hr);else{var Ir=void 0;if(i.flags&1024)Ir=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,"["+pt(i)+"]",pt(r));else if(i.flags&8192){var Yr=cl(i.symbol,G);Ir=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,"["+Yr+"]",pt(r))}else i.flags&128||i.flags&256?Ir=e.chainDiagnosticMessages(void 0,e.Diagnostics.Property_0_does_not_exist_on_type_1,i.value,pt(r)):i.flags&(8|4)&&(Ir=e.chainDiagnosticMessages(void 0,e.Diagnostics.No_index_signature_with_a_parameter_of_type_0_was_found_on_type_1,pt(i),pt(r)));Ir=e.chainDiagnosticMessages(Ir,e.Diagnostics.Element_implicitly_has_an_any_type_because_expression_of_type_0_can_t_be_used_to_index_type_1,pt(o),pt(r)),Ut.add(e.createDiagnosticForNodeFromMessageChain(G,Ir))}}}return}}if(Cg(r))return fe;if(s){var Qe=Lb(s);i.flags&(128|256)?On(Qe,e.Diagnostics.Property_0_does_not_exist_on_type_1,""+i.value,pt(r)):i.flags&(4|8)?On(Qe,e.Diagnostics.Type_0_has_no_matching_index_signature_for_type_1,pt(r),pt(i)):On(Qe,e.Diagnostics.Type_0_cannot_be_used_as_an_index_type,pt(i))}if(Ai(i))return i;return;function It(rt){rt&&rt.isReadonly&&G&&(e.isAssignmentTarget(G)||e.isDeleteTarget(G))&&On(G,e.Diagnostics.Index_signature_in_type_0_only_permits_reading,pt(r))}}function Lb(n){return n.kind===205?n.argumentExpression:n.kind===192?n.indexType:n.kind===160?n.expression:n}function K0(n){return!!(n.flags&(1|4|8|64))}function Ov(n){return!!(n.flags&134217728)&&e.every(n.types,K0)}function $h(n){return!!xg(n)}function vm(n){return!!(xg(n)&8388608)}function jm(n){return!!(xg(n)&16777216)}function xg(n){return n.flags&3145728?(n.objectFlags&4194304||(n.objectFlags|=4194304|e.reduceLeft(n.types,function(r,i){return r|xg(i)},0)),n.objectFlags&25165824):n.flags&33554432?(n.objectFlags&4194304||(n.objectFlags|=4194304|xg(n.substitute)|xg(n.baseType)),n.objectFlags&25165824):(n.flags&58982400||Vl(n)||k_(n)?8388608:0)|(n.flags&(58982400|4194304|134217728|268435456)&&!Ov(n)?16777216:0)}function Pv(n){return!!(n.flags&262144&&n.isThisType)}function Sf(n,r){return n.flags&8388608?KI(n,r):n.flags&16777216?qI(n,r):n}function z0(n,r,i){if(n.flags&3145728){var o=e.map(n.types,function(s){return Sf(Hl(s,r),i)});return n.flags&2097152||i?ao(o):ua(o)}}function JI(n,r,i){if(r.flags&1048576){var o=e.map(r.types,function(s){return Sf(Hl(n,s),i)});return i?ao(o):ua(o)}}function KI(n,r){var i=r?"simplifiedForWriting":"simplifiedForReading";if(n[i])return n[i]===Va?n:n[i];n[i]=Va;var o=Sf(n.objectType,r),s=Sf(n.indexType,r),u=JI(o,s,r);if(u)return n[i]=u;if(!(s.flags&465829888)){var L=z0(o,s,r);if(L)return n[i]=L}if(k_(o)&&s.flags&296){var G=uy(o,s.flags&8?0:o.target.fixedLength,0,r);if(G)return n[i]=G}return Vl(o)?n[i]=rs(X0(o,n.indexType),function(me){return Sf(me,r)}):n[i]=n}function zI(n){var r=n.root.inferTypeParameters&&Nl(n.root.inferTypeParameters,e.map(n.root.inferTypeParameters,function(){return tn})),i=n.checkType,o=n.extendsType;return Fi(qp(i),qp(Ja(o,r)))}function qI(n,r){var i=n.checkType,o=n.extendsType,s=Fd(n),u=Gd(n);if(u.flags&131072&&mp(s)===mp(i)){if(i.flags&1||Fi(qp(i),qp(o)))return Sf(s,r);if(q0(i,o))return Pt}else if(s.flags&131072&&mp(u)===mp(i)){if(!(i.flags&1)&&Fi(qp(i),qp(o)))return Pt;if(i.flags&1||q0(i,o))return Sf(u,r)}return n}function q0(n,r){return!!(ua([__(n,r),Pt]).flags&131072)}function X0(n,r){var i=Nl([gu(n)],[r]),o=Em(n.mapper,i);return Ja(bc(n),o)}function Hl(n,r,i,o,s,u){return i===void 0&&(i=0),wd(n,r,i,o,s,u)||(o?le:bn)}function Y0(n,r){return Nf(n,function(i){if(i.flags&384){var o=Ks(i);if(kf(o)){var s=+o;return s>=0&&s=r?bn:i})}function Em(n,r){return n?ay(3,n,r):r}function sN(n,r){return n?ay(4,n,r):r}function bm(n,r,i){return i?ay(4,ym(n,r),i):ym(n,r)}function Fv(n,r,i){return n?ay(4,n,ym(r,i)):ym(r,i)}function lN(n){return n.constraint===bn?n:n.restrictiveInstantiation||(n.restrictiveInstantiation=Xl(n.symbol),n.restrictiveInstantiation.constraint=bn,n.restrictiveInstantiation)}function Mb(n){var r=Xl(n.symbol);return r.target=n,r}function cN(n,r){return gm(n.kind,n.parameterName,n.parameterIndex,Ja(n.type,r))}function Km(n,r,i){var o;if(n.typeParameters&&!i){o=e.map(n.typeParameters,Mb),r=Em(Nl(n.typeParameters,o),r);for(var s=0,u=o;s=5e6)return e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","instantiateType_DepthLimit",{typeId:n.id,instantiationDepth:De,instantiationCount:Ne}),On(Ee,e.Diagnostics.Type_instantiation_is_excessively_deep_and_possibly_infinite),le;He++,Ne++,De++;var s=gN(n,r,i,o);return De--,s}function gN(n,r,i,o){var s=n.flags;if(s&262144)return Kp(n,r);if(s&524288){var u=n.objectFlags;if(u&(4|16|32)){if(u&4&&!n.node){var L=n.resolvedTypeArguments,G=id(L,r);return G!==L?hb(n.target,G):n}return u&1024?vN(n,r):uN(n,r,i,o)}return n}if(s&3145728){var me=n.flags&1048576?n.origin:void 0,Re=me&&me.flags&3145728?me.types:n.types,Ue=id(Re,r);if(Ue===Re&&i===n.aliasSymbol)return n;var Ke=i||n.aliasSymbol,Qe=i?o:id(n.aliasTypeArguments,r);return s&2097152||me&&me.flags&2097152?ao(Ue,Ke,Qe):ua(Ue,1,Ke,Qe)}if(s&4194304)return Ru(Ja(n.type,r));if(s&134217728)return A_(n.texts,id(n.types,r));if(s&268435456)return Zh(n.symbol,Ja(n.type,r));if(s&8388608){var Ke=i||n.aliasSymbol,Qe=i?o:id(n.aliasTypeArguments,r);return Hl(Ja(n.objectType,r),Ja(n.indexType,r),n.accessFlags,void 0,Ke,Qe)}if(s&16777216)return Ub(n,Em(n.mapper,r),i,o);if(s&33554432){var yn=Ja(n.baseType,r);if(yn.flags&8650752)return g0(yn,Ja(n.substitute,r));var Hn=Ja(n.substitute,r);return Hn.flags&3||Fi(qp(yn),qp(Hn))?yn:Hn}return n}function vN(n,r){var i=Ja(n.mappedType,r);if(!(e.getObjectFlags(i)&32))return n;var o=Ja(n.constraintType,r);if(!(o.flags&4194304))return n;var s=jD(Ja(n.source,r),i,o);return s||n}function iy(n){return n.flags&(131068|3|131072)?n:n.permissiveInstantiation||(n.permissiveInstantiation=Ja(n,Tr))}function qp(n){return n.flags&(131068|3|131072)?n:(n.restrictiveInstantiation||(n.restrictiveInstantiation=Ja(n,Bt),n.restrictiveInstantiation.restrictiveInstantiation=n.restrictiveInstantiation),n.restrictiveInstantiation)}function hN(n,r){return vu(n.keyType,Ja(n.type,r),n.isReadonly,n.declaration)}function Zc(n){switch(e.Debug.assert(n.kind!==167||e.isObjectLiteralMethod(n)),n.kind){case 211:case 212:case 167:case 254:return dD(n);case 203:return e.some(n.properties,Zc);case 202:return e.some(n.elements,Zc);case 220:return Zc(n.whenTrue)||Zc(n.whenFalse);case 219:return(n.operatorToken.kind===56||n.operatorToken.kind===60)&&(Zc(n.left)||Zc(n.right));case 291:return Zc(n.initializer);case 210:return Zc(n.expression);case 284:return e.some(n.properties,Zc)||e.isJsxOpeningElement(n.parent)&&e.some(n.parent.parent.children,Zc);case 283:{var r=n.initializer;return!!r&&Zc(r)}case 286:{var i=n.expression;return!!i&&Zc(i)}}return!1}function dD(n){return(!e.isFunctionDeclaration(n)||e.isInJSFile(n)&&!!ba(n))&&(e.hasContextSensitiveParameters(n)||yN(n))}function yN(n){return!n.typeParameters&&!e.getEffectiveReturnTypeNode(n)&&!!n.body&&n.body.kind!==233&&Zc(n.body)}function pD(n){return(e.isInJSFile(n)&&e.isFunctionDeclaration(n)||BT(n)||e.isObjectLiteralMethod(n))&&dD(n)}function mD(n){if(n.flags&524288){var r=Yc(n);if(r.constructSignatures.length||r.callSignatures.length){var i=ys(16,n.symbol);return i.members=r.members,i.properties=r.properties,i.callSignatures=e.emptyArray,i.constructSignatures=e.emptyArray,i.indexInfos=e.emptyArray,i}}else if(n.flags&2097152)return ao(e.map(n.types,mD));return n}function Lf(n,r){return xf(n,r,Na)}function Ig(n,r){return xf(n,r,Na)?-1:0}function Vb(n,r){return xf(n,r,Ft)?-1:0}function EN(n,r){return xf(n,r,sr)?-1:0}function Af(n,r){return xf(n,r,sr)}function Fi(n,r){return xf(n,r,Ft)}function C_(n,r){return n.flags&1048576?e.every(n.types,function(i){return C_(i,r)}):r.flags&1048576?e.some(r.types,function(i){return C_(n,i)}):n.flags&58982400?C_($s(n)||bn,r):r===qo?!!(n.flags&(524288|67108864)):r===So?!!(n.flags&524288)&&ST(n):en(n,ve(r))||rl(r)&&!I_(r)&&C_(n,Hr)}function x_(n,r){return xf(n,r,Lt)}function oy(n,r){return x_(n,r)||x_(r,n)}function $l(n,r,i,o,s,u){return $c(n,r,Ft,i,o,s,u)}function Bd(n,r,i,o,s,u){return Wb(n,r,Ft,i,o,s,u,void 0)}function Wb(n,r,i,o,s,u,L,G){return xf(n,r,i)?!0:!o||!Gv(s,n,r,i,u,L,G)?$c(n,r,i,o,u,L,G):!1}function _D(n){return!!(n.flags&16777216||n.flags&2097152&&e.some(n.types,_D))}function Gv(n,r,i,o,s,u,L){if(!n||_D(i))return!1;if(!$c(r,i,o,void 0)&&bN(n,r,i,o,s,u,L))return!0;switch(n.kind){case 286:case 210:return Gv(n.expression,r,i,o,s,u,L);case 219:switch(n.operatorToken.kind){case 63:case 27:return Gv(n.right,r,i,o,s,u,L)}break;case 203:return NN(n,r,i,o,u,L);case 202:return xN(n,r,i,o,u,L);case 284:return CN(n,r,i,o,u,L);case 212:return TN(n,r,i,o,u,L)}return!1}function bN(n,r,i,o,s,u,L){for(var G=sa(r,0),me=sa(r,1),Re=0,Ue=[me,G];Re1,$n=qs(Qe,ND),Er=qs(Qe,function(Yt){return!ND(Yt)});if(Hn){if($n!==Pt){var hr=hu(Oy(me,0)),Ir=AN(me,ca);L=Ng(Ir,hr,$n,o,s,u)||L}else if(!xf(Hl(r,Ke),Qe,o)){L=!0;var Yr=On(me.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_a_single_child_of_type_1_but_multiple_children_were_provided,Ue,pt(Qe));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Yr)}}else if(Er!==Pt){var It=yn[0],rt=gD(It,Ke,ca);rt&&(L=Ng(function(){return og(this,function(Yt){switch(Yt.label){case 0:return[4,rt];case 1:return Yt.sent(),[2]}})}(),r,i,o,s,u)||L)}else if(!xf(Hl(r,Ke),Qe,o)){L=!0;var Yr=On(me.openingElement.tagName,e.Diagnostics.This_JSX_tag_s_0_prop_expects_type_1_which_requires_multiple_children_but_only_a_single_child_was_provided,Ue,pt(Qe));u&&u.skipLogging&&(u.errors||(u.errors=[])).push(Yr)}}return L;function ca(){if(!G){var Yt=e.getTextOfNode(n.parent.tagName),qa=Py(n_(n)),Ga=qa===void 0?"children":e.unescapeLeadingUnderscores(qa),gi=Hl(i,Tc(Ga)),Ba=e.Diagnostics._0_components_don_t_accept_text_as_child_elements_Text_in_JSX_has_the_type_string_but_the_expected_type_of_1_is_2;G=Dt(Dt({},Ba),{key:"!!ALREADY FORMATTED!!",message:e.formatMessage(void 0,Ba,Yt,Ga,pt(gi))})}return G}}function vD(n,r){var i,o,s,u;return og(this,function(L){switch(L.label){case 0:if(i=e.length(n.elements),!i)return[2];o=0,L.label=1;case 1:return ome:Tu(n)>me);if(Re)return 0;n.typeParameters&&n.typeParameters!==r.typeParameters&&(r=Bx(r),n=cA(n,r,void 0,L));var Ue=Ll(n),Ke=jg(n),Qe=jg(r);if((Ke||Qe)&&Ja(Ke||Qe,G),Ke&&Qe&&Ue!==me)return 0;var yn=r.declaration?r.declaration.kind:0,Hn=!(i&3)&&Cn&&yn!==167&&yn!==166&&yn!==169,$n=-1,Er=td(n);if(Er&&Er!==fr){var hr=td(r);if(hr){var Ir=!Hn&&L(Er,hr,!1)||L(hr,Er,o);if(!Ir)return o&&s(e.Diagnostics.The_this_types_of_each_signature_are_incompatible),0;$n&=Ir}}for(var Yr=Ke||Qe?Math.min(Ue,me):Math.max(Ue,me),It=Ke||Qe?Yr-1:-1,rt=0;rt=Tu(n)&&rt0||BS(st));if(si&&!MN(st,ot,Ca)){if(Rr){var Ii=pt(zn.aliasSymbol?zn:st),Si=pt(ur.aliasSymbol?ur:ot),ts=sa(st,0),Po=sa(st,1);ts.length>0&&Rt(eo(ts[0]),ot,!1)||Po.length>0&&Rt(eo(Po[0]),ot,!1)?Dr(e.Diagnostics.Value_of_type_0_has_no_properties_in_common_with_type_1_Did_you_mean_to_call_it,Ii,Si):Dr(e.Diagnostics.Type_0_has_no_properties_in_common_with_type_1,Ii,Si)}return 0}vi(st,ot);var ls=0,Ao=Ui();if((st.flags&3145728||ot.flags&3145728)&&(ls=uL(st)*uL(ot)>=4?wr(st,ot,Rr,Mt|8):jr(st,ot,Rr,Mt|8)),!ls&&!(st.flags&1048576)&&(st.flags&469499904||ot.flags&469499904)&&(ls=wr(st,ot,Rr,Mt))&&Ba(Ao),!ls&&st.flags&(2097152|262144)){var Co=jh(st.flags&2097152?st.types:[st],!!(ot.flags&1048576));Co&&(st.flags&2097152||ot.flags&1048576)&&Nf(Co,function(tr){return tr!==st})&&(ls=Rt(Co,ot,!1,void 0,Mt))&&Ba(Ao)}return ls&&!Yr&&(ot.flags&2097152&&(oi||si)||Ib(ot)&&!rl(ot)&&!_i(ot)&&st.flags&2097152&&zs(st).flags&3670016&&!e.some(st.types,function(tr){return!!(e.getObjectFlags(tr)&524288)}))&&(Yr=!0,ls&=wr(st,ot,Rr,4),Yr=!1),Vo(st,ot,ls,Ca),ls;function Vo(tr,vt,la,Kt){if(!la&&Rr){var Qt=!!eT(zn),Ua=!!eT(ur);tr=zn.aliasSymbol||Qt?zn:tr,vt=ur.aliasSymbol||Ua?ur:vt;var xa=Er>0;if(xa&&Er--,tr.flags&524288&&vt.flags&524288){var ri=G;Wa(tr,vt,Rr),G!==ri&&(xa=!!G)}if(tr.flags&524288&&vt.flags&131068)Ht(tr,vt);else if(tr.symbol&&tr.flags&524288&&qo===tr)Dr(e.Diagnostics.The_Object_type_is_assignable_to_very_few_other_types_Did_you_mean_to_use_the_any_type_instead);else if(Kt&&vt.flags&2097152){var ka=vt.types,Da=bp(f.IntrinsicAttributes,o),Mi=bp(f.IntrinsicClassAttributes,o);if(Da!==le&&Mi!==le&&(e.contains(ka,Da)||e.contains(ka,Mi)))return la}else G=li(G,ur);if(!Jr&&xa)return hr=[tr,vt],la;Sa(Jr,tr,vt)}}}function vi(zn,ur){if(!!e.tracing&&zn.flags&3145728&&ur.flags&3145728){var Rr=zn,Jr=ur;if(Rr.objectFlags&Jr.objectFlags&65536)return;var Mt=Rr.types.length,st=Jr.types.length;Mt*st>1e6&&e.tracing.instant("checkTypes","traceUnionsOrIntersectionsTooLarge_DepthLimit",{sourceId:zn.id,sourceSize:Mt,targetId:ur.id,targetSize:st,pos:o==null?void 0:o.pos,end:o==null?void 0:o.end})}}function mi(zn,ur){if(zn.flags!==ur.flags)return 0;if(zn.flags&67358815)return-1;if(vi(zn,ur),zn.flags&3145728){var Rr=nt(zn,ur);return Rr&&(Rr&=nt(ur,zn)),Rr}return wr(zn,ur,!1,0)}function Jn(zn,ur){var Rr=function(Jr,Mt){var st;Mt=zs(Mt);var ot=Mt.flags&3145728?rn(Mt,ur):rd(Mt,ur),gt=ot&&ft(ot)||((st=Ef(Mt,ur))===null||st===void 0?void 0:st.type)||In;return e.append(Jr,gt)};return ua(e.reduceLeft(zn,Rr,void 0)||e.emptyArray)}function mn(zn,ur,Rr){var Jr;if(!Qv(ur)||!Nn&&e.getObjectFlags(ur)&8192)return!1;var Mt=!!(e.getObjectFlags(zn)&2048);if((i===Ft||i===Lt)&&(Ym(qo,ur)||!Mt&&Cf(ur)))return!1;var st=ur,ot;ur.flags&1048576&&(st=pC(zn,ur,Rt)||HF(ur),ot=st.flags&1048576?st.types:[st]);for(var gt=function(Si){if(et(Si,zn.symbol)&&!bD(zn,Si)){if(!KT(st,Si.escapedName,Mt)){if(Rr){var ts=qs(st,Qv);if(!o)return{value:e.Debug.fail()};if(e.isJsxAttributes(o)||e.isJsxOpeningLikeElement(o)||e.isJsxOpeningLikeElement(o.parent)){Si.valueDeclaration&&e.isJsxAttribute(Si.valueDeclaration)&&e.getSourceFileOfNode(o)===e.getSourceFileOfNode(Si.valueDeclaration.name)&&(o=Si.valueDeclaration.name);var Po=Oa(Si),ls=nA(Po,ts),Ao=ls?Oa(ls):void 0;Ao?Dr(e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2,Po,pt(ts),Ao):Dr(e.Diagnostics.Property_0_does_not_exist_on_type_1,Po,pt(ts))}else{var Co=((Jr=zn.symbol)===null||Jr===void 0?void 0:Jr.declarations)&&e.firstOrUndefined(zn.symbol.declarations),Ao=void 0;if(Si.valueDeclaration&&e.findAncestor(Si.valueDeclaration,function(la){return la===Co})&&e.getSourceFileOfNode(Co)===e.getSourceFileOfNode(o)){var Vo=Si.valueDeclaration;e.Debug.assertNode(Vo,e.isObjectLiteralElementLike),o=Vo;var tr=Vo.name;e.isIdentifier(tr)&&(Ao=$T(tr,ts))}Ao!==void 0?Dr(e.Diagnostics.Object_literal_may_only_specify_known_properties_but_0_does_not_exist_in_type_1_Did_you_mean_to_write_2,Oa(Si),pt(ts),Ao):Dr(e.Diagnostics.Object_literal_may_only_specify_known_properties_and_0_does_not_exist_in_type_1,Oa(Si),pt(ts))}}return{value:!0}}if(ot&&!Rt(ft(Si),Jn(ot,Si.escapedName),Rr))return Rr&&to(e.Diagnostics.Types_of_property_0_are_incompatible,Oa(Si)),{value:!0}}},Ca=0,oi=Hi(zn);Ca=ot.types.length&&st.length%ot.types.length==0){var oi=Rt(Ca,ot.types[gt%ot.types.length],!1,void 0,Jr);if(oi){Mt&=oi;continue}}var si=Rt(Ca,ur,Rr,void 0,Jr);if(!si)return 0;Mt&=si}return Mt}function br(zn,ur,Rr,Jr,Mt){if(zn===void 0&&(zn=e.emptyArray),ur===void 0&&(ur=e.emptyArray),Rr===void 0&&(Rr=e.emptyArray),zn.length!==ur.length&&i===Na)return 0;for(var st=zn.length<=ur.length?zn.length:ur.length,ot=-1,gt=0;gt25)return e.tracing===null||e.tracing===void 0||e.tracing.instant("checkTypes","typeRelatedToDiscriminatedType_DepthLimit",{sourceId:zn.id,targetId:ur.id,numCombinations:Mt}),0}for(var Ca=new Array(Jr.length),oi=new e.Set,si=0;si5?Dr(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more,pt(zn),pt(ur),e.map(oi.slice(0,4),function(Ii){return Oa(Ii)}).join(", "),oi.length-4):Dr(e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2,pt(zn),pt(ur),e.map(oi,function(Ii){return Oa(Ii)}).join(", ")),Mt&&G&&Er++)}function To(zn,ur,Rr,Jr,Mt){if(i===Na)return gs(zn,ur,Jr);var st=-1;if(_i(ur)){if(rl(zn)||_i(zn)){if(!ur.target.readonly&&(I_(zn)||_i(zn)&&zn.target.readonly))return 0;var ot=Pd(zn),gt=Pd(ur),Ca=_i(zn)?zn.target.combinedFlags&4:4,oi=ur.target.combinedFlags&4,si=_i(zn)?zn.target.minLength:0,Ii=ur.target.minLength;if(!Ca&&ot=gt-ls)?zn.target.elementFlags[Vo]:4,vt=ur.target.elementFlags[Co];if(vt&8&&!(tr&8))return Rr&&Dr(e.Diagnostics.Source_provides_no_match_for_variadic_element_at_position_0_in_target,Co),0;if(tr&8&&!(vt&12))return Rr&&Dr(e.Diagnostics.Variadic_element_at_position_0_in_source_does_not_match_element_at_position_1_in_target,Vo,Co),0;if(vt&1&&!(tr&1))return Rr&&Dr(e.Diagnostics.Source_provides_no_match_for_required_element_at_position_0_in_target,Co),0;if(!(Ao&&((tr&12||vt&12)&&(Ao=!1),Ao&&(Jr==null?void 0:Jr.has(""+Co))))){var la=_i(zn)?Co=gt-ls?qm(Si[Vo],!!(tr&vt&2)):uy(zn,Po,ls)||Pt:Si[0],Kt=ts[Co],Qt=tr&8&&vt&4?Vs(Kt):qm(Kt,!!(vt&2)),Ua=Rt(la,Qt,Rr,void 0,Mt);if(!Ua)return Rr&&(gt>1||ot>1)&&(Co=gt-ls||ot-Po-ls==1?to(e.Diagnostics.Type_at_position_0_in_source_is_not_compatible_with_type_at_position_1_in_target,Vo,Co):to(e.Diagnostics.Type_at_positions_0_through_1_in_source_is_not_compatible_with_type_at_position_2_in_target,Po,ot-ls-1,Co)),0;st&=Ua}}return st}if(ur.target.combinedFlags&12)return 0}var xa=(i===sr||i===$r)&&!yp(zn)&&!nT(zn)&&!_i(zn),ri=vT(zn,ur,xa,!1);if(ri)return Rr&&lo(zn,ur,ri,xa),0;if(yp(ur))for(var ka=0,Da=_a(Hi(zn),Jr);ka0&&e.every(r.properties,function(i){return!!(i.flags&16777216)})}return n.flags&2097152?e.every(n.types,SD):!1}function MN(n,r,i){for(var o=0,s=Hi(n);o":o+="-"+L.id}return o}function AD(n,r,i,o){if(o===Na&&n.id>r.id){var s=n;n=r,r=s}var u=i?":"+i:"";if(sy(n)&&sy(r)){var L=[];return Yb(n,L)+","+Yb(r,L)+u}return n.id+","+r.id+u}function Uv(n,r){if(e.getCheckFlags(n)&6){for(var i=0,o=n.containingType.types;i=5){for(var o=Vv(n),s=0,u=0;u=5))return!0}return!1}function Vv(n){if(n.flags&524288&&!hT(n)){if(e.getObjectFlags(n)&&4&&n.node)return n.node;if(n.symbol&&!(e.getObjectFlags(n)&16&&n.symbol.flags&32))return n.symbol;if(_i(n))return n.target}if(n.flags&262144)return n.symbol;if(n.flags&8388608){do n=n.objectType;while(n.flags&8388608);return n}return n.flags&16777216?n.root:n}function CD(n,r){return Zb(n,r,Ig)!==0}function Zb(n,r,i){if(n===r)return-1;var o=e.getDeclarationModifierFlagsFromSymbol(n)&24,s=e.getDeclarationModifierFlagsFromSymbol(r)&24;if(o!==s)return 0;if(o){if(i_(n)!==i_(r))return 0}else if((n.flags&16777216)!=(r.flags&16777216))return 0;return Ou(n)!==Ou(r)?0:i(ft(n),ft(r))}function jN(n,r,i){var o=Ll(n),s=Ll(r),u=Tu(n),L=Tu(r),G=Su(n),me=Su(r);return!!(o===s&&u===L&&G===me||i&&u<=L)}function Wv(n,r,i,o,s,u){if(n===r)return-1;if(!jN(n,r,i)||e.length(n.typeParameters)!==e.length(r.typeParameters))return 0;if(r.typeParameters){for(var L=Nl(n.typeParameters,r.typeParameters),G=0;Ge.length(r.typeParameters)&&(s=Ul(s,e.last(ro(n)))),n.objectFlags|=67108864,n.cachedEquivalentBaseType=s}}}function ID(n){return ze?n===Ka:n===pn}function nT(n){var r=$b(n);return!!r&&ID(r)}function N_(n){return _i(n)||!!Gt(n,"0")}function ND(n){return Ud(n)||N_(n)}function qN(n,r){var i=os(n,""+r);if(i)return i;if(Nf(n,_i))return rs(n,function(o){return kg(o)||In})}function XN(n){return!(n.flags&(109440|131072))}function yu(n){return!!(n.flags&109440)}function kD(n){return n.flags&2097152?e.some(n.types,yu):!!(n.flags&109440)}function YN(n){return n.flags&2097152&&e.find(n.types,yu)||n}function zm(n){return n.flags&16?!0:n.flags&1048576?n.flags&1024?!0:e.every(n.types,yu):yu(n)}function Eu(n){return n.flags&1024?Gm(n):n.flags&128?dr:n.flags&256?gr:n.flags&2048?zr:n.flags&512?qr:n.flags&1048576?rs(n,Eu):n}function vp(n){return n.flags&1024&&gp(n)?Gm(n):n.flags&128&&gp(n)?dr:n.flags&256&&gp(n)?gr:n.flags&2048&&gp(n)?zr:n.flags&512&&gp(n)?qr:n.flags&1048576?rs(n,vp):n}function RD(n){return n.flags&8192?Xt:n.flags&1048576?rs(n,RD):n}function rT(n,r){return Yy(n,r)||(n=RD(vp(n))),n}function QN(n,r,i){if(n&&yu(n)){var o=r?i?sh(r):r:void 0;n=rT(n,o)}return n}function tT(n,r,i,o){if(n&&yu(n)){var s=r?a_(i,r,o):void 0;n=rT(n,s)}return n}function _i(n){return!!(e.getObjectFlags(n)&4&&n.target.objectFlags&8)}function k_(n){return _i(n)&&!!(n.target.combinedFlags&8)}function OD(n){return k_(n)&&n.target.elementFlags.length===1}function kg(n){return uy(n,n.target.fixedLength)}function ZN(n){var r=kg(n);return r&&Vs(r)}function uy(n,r,i,o){i===void 0&&(i=0),o===void 0&&(o=!1);var s=Pd(n)-i;if(r-1&&(Fo(u,u.name.escapedText,788968,void 0,u.name.escapedText,!0)||u.name.originalKeywordKind&&e.isTypeNodeKind(u.name.originalKeywordKind))){var L="arg"+u.parent.parameters.indexOf(u);Pl(Nn,n,e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1,L,e.declarationNameToString(u.name));return}s=n.dotDotDotToken?Nn?e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type:e.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type_but_a_better_type_may_be_inferred_from_usage:Nn?e.Diagnostics.Parameter_0_implicitly_has_an_1_type:e.Diagnostics.Parameter_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage;break;case 201:if(s=e.Diagnostics.Binding_element_0_implicitly_has_an_1_type,!Nn)return;break;case 312:On(n,e.Diagnostics.Function_type_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return;case 254:case 167:case 166:case 170:case 171:case 211:case 212:if(Nn&&!n.name){i===3?On(n,e.Diagnostics.Generator_implicitly_has_yield_type_0_because_it_does_not_yield_any_values_Consider_supplying_a_return_type_annotation,o):On(n,e.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type,o);return}s=Nn?i===3?e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_yield_type:e.Diagnostics._0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type:e.Diagnostics._0_implicitly_has_an_1_return_type_but_a_better_type_may_be_inferred_from_usage;break;case 193:Nn&&On(n,e.Diagnostics.Mapped_object_type_implicitly_has_an_any_template_type);return;default:s=Nn?e.Diagnostics.Variable_0_implicitly_has_an_1_type:e.Diagnostics.Variable_0_implicitly_has_an_1_type_but_a_better_type_may_be_inferred_from_usage}Pl(Nn,n,s,e.declarationNameToString(e.getNameOfDeclaration(n)),o)}}function my(n,r,i){ce&&Nn&&e.getObjectFlags(r)&131072&&(!i||!UT(n))&&(py(r)||hp(n,r,i))}function cT(n,r,i){var o=Ll(n),s=Ll(r),u=Wg(n),L=Wg(r),G=L?s-1:s,me=u?G:Math.min(o,G),Re=td(n);if(Re){var Ue=td(r);Ue&&i(Re,Ue)}for(var Ke=0;Ken.target.minLength||!r.target.hasRestElement&&(n.target.hasRestElement||r.target.fixedLength0){for(var Er=Qe,hr=yn;hr=Ir(Er).indexOf($n,hr),!(hr>=0);){if(Er++,Er===n.length)return;hr=0}Yr(Er,hr),yn+=$n.length}else if(yn0)for(var Bn=0,br=Dr;Bn1){var r=e.filter(n,hT);if(r.length){var i=ua(r,2);return e.concatenate(e.filter(n,function(o){return!hT(o)}),[i])}}return n}function Dk(n){return n.priority&416?ao(n.contraCandidates):zN(n.contraCandidates)}function Lk(n,r){var i=Sk(n.candidates),o=Tk(n.typeParameter),s=!o&&n.topLevel&&(n.isFixed||!mT(eo(r),n.typeParameter)),u=o?e.sameMap(i,Il):s?e.sameMap(i,vp):i,L=n.priority&416?ua(u,2):KN(u);return kl(L)}function qD(n,r){var i=n.inferences[r];if(!i.inferredType){var o=void 0,s=n.signature;if(s){var u=i.candidates?Lk(i,s):void 0;if(i.contraCandidates){var L=Dk(i);o=u&&!(u.flags&131072)&&Af(u,L)?u:L}else if(u)o=u;else if(n.flags&1)o=fa;else{var G=dp(i.typeParameter);G&&(o=Ja(G,sN(oN(n,r),n.nonFixingMapper)))}}else o=HD(i);i.inferredType=o||yT(!!(n.flags&2));var me=Wl(i.typeParameter);if(me){var Re=Ja(me,n.nonFixingMapper);(!o||!n.compareTypes(o,Ul(Re,o)))&&(i.inferredType=o=Re)}}return i.inferredType}function yT(n){return n?fe:bn}function ET(n){for(var r=[],i=0;i=10&&o*2>=n.length?i:void 0}function hy(n){var r=n.types;if(!(r.length<10||e.getObjectFlags(n)&65536)){if(n.keyPropertyName===void 0){var i=e.forEach(r,function(s){return s.flags&(524288|58982400)?e.forEach(Hi(s),function(u){return yu(ft(u))?u.escapedName:void 0}):void 0}),o=i&&Ck(r,i);n.keyPropertyName=o?i:"",n.constituentMap=o}return n.keyPropertyName.length?n.keyPropertyName:void 0}}function yy(n,r){var i,o=(i=n.constituentMap)===null||i===void 0?void 0:i.get(Fc(Il(r)));return o!==bn?o:void 0}function ZD(n,r){var i=hy(n),o=i&&os(r,i);return o&&yy(n,o)}function xk(n,r){var i=hy(n),o=i&&e.find(r.properties,function(u){return u.symbol&&u.kind===291&&u.symbol.escapedName===i&&qv(u.initializer)}),s=o&&Xs(o.initializer);return s&&yy(n,s)}function $D(n,r){return Ws(n,r)||YD(n,r)}function eL(n,r){if(n.arguments)for(var i=0,o=n.arguments;i=0&&wr.parameterIndex=wr&&_t-1){var _a=Zr.filter(function(To){return To!==void 0}),Pi=_t=2||(r.flags&(2|32))==0||!r.valueDeclaration||e.isSourceFile(r.valueDeclaration)||r.valueDeclaration.parent.kind===290)){var i=e.getEnclosingBlockScopeContainer(r.valueDeclaration),o=iR(n,i),s=xT(i);if(s){if(o){var u=!0;if(e.isForStatement(i)){var L=e.getAncestor(r.valueDeclaration,253);if(L&&L.parent===i){var G=oR(n.parent,i);if(G){var me=aa(G);me.flags|=131072;var Re=me.capturedBlockScopeBindings||(me.capturedBlockScopeBindings=[]);e.pushIfUnique(Re,r),G===i.initializer&&(u=!1)}}}u&&(aa(s).flags|=65536)}if(e.isForStatement(i)){var L=e.getAncestor(r.valueDeclaration,253);L&&L.parent===i&&cR(n,i)&&(aa(r.valueDeclaration).flags|=4194304)}aa(r.valueDeclaration).flags|=524288}o&&(aa(r.valueDeclaration).flags|=262144)}}function lR(n,r){var i=aa(n);return!!i&&e.contains(i.capturedBlockScopeBindings,bt(r))}function cR(n,r){for(var i=n;i.parent.kind===210;)i=i.parent;var o=!1;if(e.isAssignmentTarget(i))o=!0;else if(i.parent.kind===217||i.parent.kind===218){var s=i.parent;o=s.operator===45||s.operator===46}return o?!!e.findAncestor(i,function(u){return u===r?"quit":u===r.statement}):!1}function IT(n,r){if(aa(n).flags|=2,r.kind===165||r.kind===169){var i=r.parent;aa(i).flags|=4}else aa(r).flags|=4}function yL(n){return e.isSuperCall(n)?n:e.isFunctionLike(n)?void 0:e.forEachChild(n,yL)}function EL(n){var r=bt(n),i=Lo(r),o=ed(i);return o===lr}function bL(n,r,i){var o=r.parent,s=e.getClassExtendsHeritageElement(o);s&&!EL(o)&&n.flowNode&&!Ay(n.flowNode,!1)&&On(n,i)}function uR(n,r){e.isPropertyDeclaration(r)&&e.hasStaticModifier(r)&&r.initializer&&e.textRangeContainsPositionInclusive(r.initializer,n.pos)&&e.length(r.parent.decorators)&&On(n,e.Diagnostics.Cannot_use_this_in_a_static_property_initializer_of_a_decorated_class)}function xy(n){var r=O_(n),i=e.getThisContainer(n,!0),o=!1;switch(i.kind===169&&bL(n,i,e.Diagnostics.super_must_be_called_before_accessing_this_in_the_constructor_of_a_derived_class),i.kind===212&&(i=e.getThisContainer(i,!1),o=!0),uR(n,i),i.kind){case 259:On(n,e.Diagnostics.this_cannot_be_referenced_in_a_module_or_namespace_body);break;case 258:On(n,e.Diagnostics.this_cannot_be_referenced_in_current_location);break;case 169:TL(n,i)&&On(n,e.Diagnostics.this_cannot_be_referenced_in_constructor_arguments);break;case 160:On(n,e.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name);break}!r&&o&&je<2&&IT(n,i);var s=NT(n,!0,i);if(Kn){var u=ft(cn);if(s===u&&o)On(n,e.Diagnostics.The_containing_arrow_function_captures_the_global_value_of_this);else if(!s){var L=On(n,e.Diagnostics.this_implicitly_has_type_any_because_it_does_not_have_a_type_annotation);if(!e.isSourceFile(i)){var G=NT(i);G&&G!==u&&e.addRelatedInfo(L,e.createDiagnosticForNode(i,e.Diagnostics.An_outer_value_of_this_is_shadowed_by_this_container))}}}return s||fe}function NT(n,r,i){r===void 0&&(r=!0),i===void 0&&(i=e.getThisContainer(n,!1));var o=e.isInJSFile(n);if(e.isFunctionLike(i)&&(!OT(n)||e.getThisParameter(i))){var s=va(i)||o&&pR(i);if(!s){var u=dR(i);if(o&&u){var L=Za(u).symbol;L&&L.members&&L.flags&16&&(s=Lo(L).thisType)}else ru(i)&&(s=Lo(Ji(i.symbol)).thisType);s||(s=DL(i))}if(s)return Zp(n,s)}if(e.isClassLike(i.parent)){var G=bt(i.parent),me=e.isStatic(i)?ft(G):Lo(G).thisType;return Zp(n,me)}if(e.isSourceFile(i))if(i.commonJsModuleIndicator){var Re=bt(i);return Re&&ft(Re)}else{if(i.externalModuleIndicator)return In;if(r)return ft(cn)}}function fR(n){var r=e.getThisContainer(n,!1);if(e.isFunctionLike(r)){var i=lc(r);if(i.thisParameter)return Sy(i.thisParameter)}if(e.isClassLike(r.parent)){var o=bt(r.parent);return e.isStatic(r)?ft(o):Lo(o).thisType}}function dR(n){if(n.kind===211&&e.isBinaryExpression(n.parent)&&e.getAssignmentDeclarationKind(n.parent)===3)return n.parent.left.expression.expression;if(n.kind===167&&n.parent.kind===203&&e.isBinaryExpression(n.parent.parent)&&e.getAssignmentDeclarationKind(n.parent.parent)===6)return n.parent.parent.left.expression;if(n.kind===211&&n.parent.kind===291&&n.parent.parent.kind===203&&e.isBinaryExpression(n.parent.parent.parent)&&e.getAssignmentDeclarationKind(n.parent.parent.parent)===6)return n.parent.parent.parent.left.expression;if(n.kind===211&&e.isPropertyAssignment(n.parent)&&e.isIdentifier(n.parent.name)&&(n.parent.name.escapedText==="value"||n.parent.name.escapedText==="get"||n.parent.name.escapedText==="set")&&e.isObjectLiteralExpression(n.parent.parent)&&e.isCallExpression(n.parent.parent.parent)&&n.parent.parent.parent.arguments[2]===n.parent.parent&&e.getAssignmentDeclarationKind(n.parent.parent.parent)===9)return n.parent.parent.parent.arguments[0].expression;if(e.isMethodDeclaration(n)&&e.isIdentifier(n.name)&&(n.name.escapedText==="value"||n.name.escapedText==="get"||n.name.escapedText==="set")&&e.isObjectLiteralExpression(n.parent)&&e.isCallExpression(n.parent.parent)&&n.parent.parent.arguments[2]===n.parent&&e.getAssignmentDeclarationKind(n.parent.parent)===9)return n.parent.parent.arguments[0].expression}function pR(n){var r=e.getJSDocType(n);if(r&&r.kind===312){var i=r;if(i.parameters.length>0&&i.parameters[0].name&&i.parameters[0].name.escapedText==="this")return ha(i.parameters[0].type)}var o=e.getJSDocThisTag(n);if(o&&o.typeExpression)return ha(o.typeExpression)}function TL(n,r){return!!e.findAncestor(n,function(i){return e.isFunctionLikeDeclaration(i)?"quit":i.kind===162&&i.parent===r})}function kT(n){var r=n.parent.kind===206&&n.parent.expression===n,i=e.getSuperContainer(n,!0),o=i,s=!1;if(!r)for(;o&&o.kind===212;)o=e.getSuperContainer(o,!0),s=je<2;var u=Ke(o),L=0;if(!u){var G=e.findAncestor(n,function(Qe){return Qe===o?"quit":Qe.kind===160});return G&&G.kind===160?On(n,e.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name):r?On(n,e.Diagnostics.Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors):!o||!o.parent||!(e.isClassLike(o.parent)||o.parent.kind===203)?On(n,e.Diagnostics.super_can_only_be_referenced_in_members_of_derived_classes_or_object_literal_expressions):On(n,e.Diagnostics.super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class),le}if(!r&&i.kind===169&&bL(n,o,e.Diagnostics.super_must_be_called_before_accessing_a_property_of_super_in_the_constructor_of_a_derived_class),e.isStatic(o)||r?(L=512,!r&&je>=2&&je<=8&&(e.isPropertyDeclaration(o)||e.isClassStaticBlockDeclaration(o))&&e.forEachEnclosingBlockScopeContainer(n.parent,function(Qe){(!e.isSourceFile(Qe)||e.isExternalOrCommonJsModule(Qe))&&(aa(Qe).flags|=134217728)})):L=256,aa(n).flags|=L,o.kind===167&&e.hasSyntacticModifier(o,256)&&(e.isSuperProperty(n.parent)&&e.isAssignmentTarget(n.parent)?aa(o).flags|=4096:aa(o).flags|=2048),s&&IT(n.parent,o),o.parent.kind===203)return je<2?(On(n,e.Diagnostics.super_is_only_allowed_in_members_of_object_literal_expressions_when_option_target_is_ES2015_or_higher),le):fe;var me=o.parent;if(!e.getClassExtendsHeritageElement(me))return On(n,e.Diagnostics.super_can_only_be_referenced_in_a_derived_class),le;var Re=Lo(bt(me)),Ue=Re&&Gl(Re)[0];if(!Ue)return le;if(o.kind===169&&TL(n,o))return On(n,e.Diagnostics.super_cannot_be_referenced_in_constructor_arguments),le;return L===512?ed(Re):Ul(Ue,Re.thisType);function Ke(Qe){return Qe?r?Qe.kind===169:e.isClassLike(Qe.parent)||Qe.parent.kind===203?e.isStatic(Qe)?Qe.kind===167||Qe.kind===166||Qe.kind===170||Qe.kind===171||Qe.kind===165||Qe.kind===168:Qe.kind===167||Qe.kind===166||Qe.kind===170||Qe.kind===171||Qe.kind===165||Qe.kind===164||Qe.kind===169:!1:!1}}function mR(n){return(n.kind===167||n.kind===170||n.kind===171)&&n.parent.kind===203?n.parent:n.kind===211&&n.parent.kind===291?n.parent.parent:void 0}function SL(n){return e.getObjectFlags(n)&4&&n.target===te?ro(n)[0]:void 0}function _R(n){return rs(n,function(r){return r.flags&2097152?e.forEach(r.types,SL):SL(r)})}function DL(n){if(n.kind!==212){if(pD(n)){var r=Xv(n);if(r){var i=r.thisParameter;if(i)return ft(i)}}var o=e.isInJSFile(n);if(Kn||o){var s=mR(n);if(s){for(var u=Ep(s),L=s,G=u;G;){var me=_R(G);if(me)return Ja(me,pT(Gg(s)));if(L.parent.kind!==291)break;L=L.parent.parent,G=Ep(L)}return kl(u?od(u):Ns(s))}var Re=e.walkUpParenthesizedExpressions(n.parent);if(Re.kind===219&&Re.operatorToken.kind===63){var Ue=Re.left;if(e.isAccessExpression(Ue)){var Ke=Ue.expression;if(o&&e.isIdentifier(Ke)){var Qe=e.getSourceFileOfNode(Re);if(Qe.commonJsModuleIndicator&&eu(Ke)===Qe.symbol)return}return kl(Ns(Ke))}}}}}function LL(n){var r=n.parent;if(!!pD(r)){var i=e.getImmediatelyInvokedFunctionExpression(r);if(i&&i.arguments){var o=tS(i),s=r.parameters.indexOf(n);if(n.dotDotDotToken)return rS(o,s,o.length,fe,void 0,0);var u=aa(i),L=u.resolvedSignature;u.resolvedSignature=ni;var G=s=o?Hl(ft(i.parameters[o]),Df(r-o),256):Bc(i,r)}function TR(n,r){if(n.parent.kind===208)return CL(n.parent,r)}function SR(n,r){var i=n.parent,o=i.left,s=i.operatorToken,u=i.right;switch(s.kind){case 63:case 76:case 75:case 77:return n===u?LR(i):void 0;case 56:case 60:var L=Gc(i,r);return n===u&&(L&&L.pattern||!L&&!e.isDefaultedExpandoInitializer(i))?Xs(o):L;case 55:case 27:return n===u?Gc(i,r):void 0;default:return}}function DR(n){if(n.symbol)return n.symbol;if(e.isIdentifier(n))return eu(n);if(e.isPropertyAccessExpression(n)){var r=Xs(n.expression);return e.isPrivateIdentifier(n.name)?i(r,n.name):Gt(r,n.name.escapedText)}return;function i(o,s){var u=XT(s.escapedText,s);return u&&YT(o,u)}}function LR(n){var r,i,o=e.getAssignmentDeclarationKind(n);switch(o){case 0:case 4:var s=DR(n.left),u=s&&s.valueDeclaration;if(u&&(e.isPropertyDeclaration(u)||e.isPropertySignature(u))){var L=e.getEffectiveTypeAnnotationNode(u);return L&&Ja(ha(L),ja(s).mapper)||u.initializer&&Xs(n.left)}return o===0?Xs(n.left):xL(n);case 5:if(Iy(n,o))return xL(n);if(n.left.symbol){var G=n.left.symbol.valueDeclaration;if(!G)return;var me=e.cast(n.left,e.isAccessExpression),L=e.getEffectiveTypeAnnotationNode(G);if(L)return ha(L);if(e.isIdentifier(me.expression)){var Re=me.expression,Ue=Fo(Re,Re.escapedText,111551,void 0,Re.escapedText,!0);if(Ue){var Ke=Ue.valueDeclaration&&e.getEffectiveTypeAnnotationNode(Ue.valueDeclaration);if(Ke){var Qe=e.getElementOrPropertyAccessName(me);if(Qe!==void 0)return $p(ha(Ke),Qe)}return}}return e.isInJSFile(G)?void 0:Xs(n.left)}else return Xs(n.left);case 1:case 6:case 3:var yn=(r=n.left.symbol)===null||r===void 0?void 0:r.valueDeclaration;case 2:yn||(yn=(i=n.symbol)===null||i===void 0?void 0:i.valueDeclaration);var Hn=yn&&e.getEffectiveTypeAnnotationNode(yn);return Hn?ha(Hn):void 0;case 7:case 8:case 9:return e.Debug.fail("Does not apply");default:return e.Debug.assertNever(o)}}function Iy(n,r){if(r===void 0&&(r=e.getAssignmentDeclarationKind(n)),r===4)return!0;if(!e.isInJSFile(n)||r!==5||!e.isIdentifier(n.left.expression))return!1;var i=n.left.expression.escapedText,o=Fo(n.left,i,111551,void 0,void 0,!0,!0);return e.isThisInitializedDeclaration(o==null?void 0:o.valueDeclaration)}function xL(n){if(!n.symbol)return Xs(n.left);if(n.symbol.valueDeclaration){var r=e.getEffectiveTypeAnnotationNode(n.symbol.valueDeclaration);if(r){var i=ha(r);if(i)return i}}var o=e.cast(n.left,e.isAccessExpression);if(!!e.isObjectLiteralMethod(e.getThisContainer(o.expression,!1))){var s=xy(o.expression),u=e.getElementOrPropertyAccessName(o);return u!==void 0&&$p(s,u)||void 0}}function AR(n){return!!(e.getCheckFlags(n)&262144&&!n.type&&Cd(n,0)>=0)}function $p(n,r){return rs(n,function(i){var o;if(Vl(i)){var s=Ec(i),u=$s(s)||s,L=Tc(e.unescapeLeadingUnderscores(r));if(Fi(L,u))return X0(i,L)}else if(i.flags&3670016){var G=Gt(i,r);if(G)return AR(G)?void 0:ft(G);if(_i(i)){var me=kg(i);if(me&&kf(r)&&+r>=0)return me}return(o=xs(Ql(i),Tc(e.unescapeLeadingUnderscores(r))))===null||o===void 0?void 0:o.type}},!0)}function CR(n,r){if(e.Debug.assert(e.isObjectLiteralMethod(n)),!(n.flags&16777216))return wT(n,r)}function wT(n,r){var i=n.parent,o=e.isPropertyAssignment(n)&&RT(n);if(o)return o;var s=Ep(i,r);if(s){if(Zs(n))return $p(s,bt(n).escapedName);if(n.name){var u=Md(n.name);return rs(s,function(L){var G;return(G=xs(Ql(L),u))===null||G===void 0?void 0:G.type},!0)}}}function FT(n,r){return n&&($p(n,""+r)||rs(n,function(i){return xS(1,i,In,void 0,!1)},!0))}function xR(n,r){var i=n.parent;return n===i.whenTrue||n===i.whenFalse?Gc(i,r):void 0}function IR(n,r){var i=Ep(n.openingElement.tagName),o=Py(n_(n));if(!!(i&&!Ai(i)&&o&&o!=="")){var s=e.getSemanticJsxChildren(n.children),u=s.indexOf(r),L=$p(i,o);return L&&(s.length===1?L:rs(L,function(G){return Ud(G)?Hl(G,Df(u)):G},!0))}}function NR(n){var r=n.parent;return e.isJsxAttributeLike(r)?Gc(n):e.isJsxElement(r)?IR(r,n):void 0}function IL(n){if(e.isJsxAttribute(n)){var r=Ep(n.parent);return!r||Ai(r)?void 0:$p(r,n.name.escapedText)}else return Gc(n.parent)}function qv(n){switch(n.kind){case 10:case 8:case 9:case 14:case 110:case 95:case 104:case 79:case 151:return!0;case 204:case 210:return qv(n.expression);case 286:return!n.expression||qv(n.expression)}return!1}function kR(n,r){return xk(r,n)||qb(r,e.concatenate(e.map(e.filter(n.properties,function(i){return!!i.symbol&&i.kind===291&&qv(i.initializer)&&Mg(r,i.symbol.escapedName)}),function(i){return[function(){return hS(i.initializer)},i.symbol.escapedName]}),e.map(e.filter(Hi(r),function(i){var o;return!!(i.flags&16777216)&&!!((o=n==null?void 0:n.symbol)===null||o===void 0?void 0:o.members)&&!n.symbol.members.has(i.escapedName)&&Mg(r,i.escapedName)}),function(i){return[function(){return In},i.escapedName]})),Fi,r)}function RR(n,r){return qb(r,e.concatenate(e.map(e.filter(n.properties,function(i){return!!i.symbol&&i.kind===283&&Mg(r,i.symbol.escapedName)&&(!i.initializer||qv(i.initializer))}),function(i){return[i.initializer?function(){return Za(i.initializer)}:function(){return Or},i.symbol.escapedName]}),e.map(e.filter(Hi(r),function(i){var o;return!!(i.flags&16777216)&&!!((o=n==null?void 0:n.symbol)===null||o===void 0?void 0:o.members)&&!n.symbol.members.has(i.escapedName)&&Mg(r,i.escapedName)}),function(i){return[function(){return In},i.escapedName]})),Fi,r)}function Ep(n,r){var i=e.isObjectLiteralMethod(n)?CR(n,r):Gc(n,r),o=Ny(i,n,r);if(o&&!(r&&r&2&&o.flags&8650752)){var s=rs(o,zs,!0);return s.flags&1048576&&e.isObjectLiteralExpression(n)?kR(n,s):s.flags&1048576&&e.isJsxAttributes(n)?RR(n,s):s}}function Ny(n,r,i){if(n&&Bo(n,465829888)){var o=Gg(r);if(o&&e.some(o.inferences,Lm)){if(i&&i&1)return ky(n,o.nonFixingMapper);if(o.returnMapper)return ky(n,o.returnMapper)}}return n}function ky(n,r){return n.flags&465829888?Ja(n,r):n.flags&1048576?ua(e.map(n.types,function(i){return ky(i,r)}),0):n.flags&2097152?ao(e.map(n.types,function(i){return ky(i,r)})):n}function Gc(n,r){if(n.flags&16777216)return;if(n.contextualType)return n.contextualType;var i=n.parent;switch(i.kind){case 252:case 162:case 165:case 164:case 201:return hR(n,r);case 212:case 245:return yR(n);case 222:return bR(i);case 216:return ER(i,r);case 206:if(i.expression.kind===100)return dr;case 207:return CL(i,n);case 209:case 227:return e.isConstTypeReference(i.type)?L(i):ha(i.type);case 219:return SR(n,r);case 291:case 292:return wT(i,r);case 293:return Gc(i.parent,r);case 202:{var o=i,s=Ep(o,r);return FT(s,e.indexOfNode(o.elements,n))}case 220:return xR(n,r);case 231:return e.Debug.assert(i.parent.kind===221),TR(i.parent,n);case 210:{var u=e.isInJSFile(i)?e.getJSDocTypeTag(i):void 0;return u?ha(u.typeExpression.type):Gc(i,r)}case 228:return Gc(i,r);case 286:return NR(i);case 283:case 285:return IL(i);case 278:case 277:return OR(i,r)}return;function L(G){return Gc(G)}}function Gg(n){var r=e.findAncestor(n,function(i){return!!i.inferenceContext});return r&&r.inferenceContext}function OR(n,r){return e.isJsxOpeningElement(n)&&n.parent.contextualType&&r!==4?n.parent.contextualType:MT(n,0)}function Ry(n,r){return pA(r)!==0?PR(n,r):FR(n,r)}function PR(n,r){var i=cS(n,bn);i=NL(r,n_(r),i);var o=bp(f.IntrinsicAttributes,r);return o!==le&&(i=__(o,i)),i}function MR(n,r){if(n.compositeSignatures){for(var i=[],o=0,s=n.compositeSignatures;o=2){var G=bf([u,i],L,2,e.isInJSFile(n));return Sg(o,G)}}if(e.length(s.typeParameters)>=2){var G=bf([u,i],s.typeParameters,2,e.isInJSFile(n));return Tf(s,G)}}return i}function FR(n,r){var i=n_(r),o=tO(i),s=o===void 0?cS(n,bn):o===""?eo(n):MR(n,o);if(!s)return!!o&&!!e.length(r.attributes.properties)&&On(r,e.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property,e.unescapeLeadingUnderscores(o)),bn;if(s=NL(r,i,s),Ai(s))return s;var u=s,L=bp(f.IntrinsicClassAttributes,r);if(L!==le){var G=Ma(L.symbol),me=eo(n);u=__(G?Tf(L,bf([me],G,Qc(G),e.isInJSFile(r))):L,u)}var Re=bp(f.IntrinsicAttributes,r);return Re!==le&&(u=__(Re,u)),u}function GR(n){return e.getStrictOptionValue(Ie,"noImplicitAny")?e.reduceLeft(n,function(r,i){return r===i||!r?r:Rh(r.typeParameters,i.typeParameters)?VR(r,i):void 0}):void 0}function BR(n,r,i){if(!n||!r)return n||r;var o=ua([ft(n),Ja(ft(r),i)]);return Sm(n,o)}function UR(n,r,i){for(var o=Ll(n),s=Ll(r),u=o>=s?n:r,L=u===n?r:n,G=u===n?o:s,me=Su(n)||Su(r),Re=me&&!Su(u),Ue=new Array(G+(Re?1:0)),Ke=0;Ke=Tu(u)&&Ke>=Tu(L),hr=Ke>=o?void 0:V_(n,Ke),Ir=Ke>=s?void 0:V_(r,Ke),Yr=hr===Ir?hr:hr?Ir?void 0:hr:Ir,It=Xi(1|(Er&&!$n?16777216:0),Yr||"arg"+Ke);It.type=$n?Vs(Hn):Hn,Ue[Ke]=It}if(Re){var rt=Xi(1,"args");rt.type=Vs(Bc(L,G)),L===r&&(rt.type=Ja(rt.type,i)),Ue[G]=rt}return Ue}function VR(n,r){var i=n.typeParameters||r.typeParameters,o;n.typeParameters&&r.typeParameters&&(o=Nl(r.typeParameters,n.typeParameters));var s=n.declaration,u=UR(n,r,o),L=BR(n.thisParameter,r.thisParameter,o),G=Math.max(n.minArgumentCount,r.minArgumentCount),me=Mc(s,i,L,u,void 0,void 0,G,(n.flags|r.flags)&39);return me.compositeKind=2097152,me.compositeSignatures=e.concatenate(n.compositeKind===2097152&&n.compositeSignatures||[n],[r]),o&&(me.mapper=n.compositeKind===2097152&&n.mapper&&n.compositeSignatures?Em(n.mapper,o):o),me}function GT(n,r){var i=sa(n,0),o=e.filter(i,function(s){return!WR(s,r)});return o.length===1?o[0]:GR(o)}function WR(n,r){for(var i=0;i0&&(L=_p(L,vi(),n.symbol,Hn,Re),u=[],s=e.createSymbolTable(),Er=!1,hr=!1,Ir=!1);var Ui=wn(Za(Ga.expression));if(w_(Ui)){var Ht=kb(Ui,Re);if(o&&wL(Ht,o,Ga),ca=u.length,L===le)continue;L=_p(L,Ht,n.symbol,Hn,Re)}else On(Ga,e.Diagnostics.Spread_types_may_only_be_created_from_object_types),L=le;continue}else e.Debug.assert(Ga.kind===170||Ga.kind===171),Zg(Ga);Ba&&!(Ba.flags&8576)?Fi(Ba,yr)&&(Fi(Ba,gr)?hr=!0:Fi(Ba,Xt)?Ir=!0:Er=!0,i&&($n=!0)):s.set(gi.escapedName,gi),u.push(gi)}if(me&&n.parent.kind!==293)for(var Wa=0,Rt=Hi(G);Wa0&&(L=_p(L,vi(),n.symbol,Hn,Re),u=[],s=e.createSymbolTable(),Er=!1,hr=!1),rs(L,function(mi){return mi===vr?vi():mi});return vi();function vi(){var mi=[];Er&&mi.push(VT(n,ca,u,dr)),hr&&mi.push(VT(n,ca,u,gr)),Ir&&mi.push(VT(n,ca,u,Xt));var Jn=Eo(n.symbol,s,e.emptyArray,e.emptyArray,mi);return Jn.objectFlags|=Hn|128|262144,yn&&(Jn.objectFlags|=8192),$n&&(Jn.objectFlags|=512),i&&(Jn.pattern=n),Jn}}function w_(n){if(n.flags&465829888){var r=$s(n);if(r!==void 0)return w_(r)}return!!(n.flags&(1|67108864|524288|58982400)||cc(n)&117632&&w_(MD(n))||n.flags&3145728&&e.every(n.types,w_))}function XR(n){JT(n)}function YR(n,r){return Zg(n),Yv(n)||fe}function QR(n){JT(n.openingElement),F_(n.closingElement.tagName)?jT(n.closingElement):Za(n.closingElement.tagName),Oy(n)}function ZR(n,r){return Zg(n),Yv(n)||fe}function $R(n){JT(n.openingFragment);var r=e.getSourceFileOfNode(n);return e.getJSXTransformEnabled(Ie)&&(Ie.jsxFactory||r.pragmas.has("jsx"))&&!Ie.jsxFragmentFactory&&!r.pragmas.has("jsxfrag")&&On(n,Ie.jsxFactory?e.Diagnostics.The_jsxFragmentFactory_compiler_option_must_be_provided_to_use_JSX_fragments_with_the_jsxFactory_compiler_option:e.Diagnostics.An_jsxFrag_pragma_is_required_when_using_an_jsx_pragma_with_JSX_fragments),Oy(n),Yv(n)||fe}function WT(n){return e.stringContains(n,"-")}function F_(n){return n.kind===79&&e.isIntrinsicJsxName(n.escapedText)}function ML(n,r){return n.initializer?H_(n.initializer,r):Or}function eO(n,r){for(var i=n.attributes,o=ze?e.createSymbolTable():void 0,s=e.createSymbolTable(),u=Br,L=!1,G,me=!1,Re=2048,Ue=Py(n_(n)),Ke=0,Qe=i.properties;Ke0&&(u=_p(u,Yt(),i.symbol,Re,!1),s=e.createSymbolTable());var $n=wn(Ns(yn.expression,r));Ai($n)&&(L=!0),w_($n)?(u=_p(u,$n,i.symbol,Re,!1),o&&wL($n,o,yn)):G=G?ao([G,$n]):$n}}L||s.size>0&&(u=_p(u,Yt(),i.symbol,Re,!1));var hr=n.parent.kind===276?n.parent:void 0;if(hr&&hr.openingElement===n&&hr.children.length>0){var Ir=Oy(hr,r);if(!L&&Ue&&Ue!==""){me&&On(i,e.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten,e.unescapeLeadingUnderscores(Ue));var Yr=Ep(n.attributes),It=Yr&&$p(Yr,Ue),rt=Xi(4,Ue);rt.type=Ir.length===1?Ir[0]:It&&P_(It,N_)?hu(Ir):Vs(ua(Ir)),rt.valueDeclaration=e.factory.createPropertySignature(void 0,e.unescapeLeadingUnderscores(Ue),void 0,void 0),e.setParent(rt.valueDeclaration,i),rt.valueDeclaration.symbol=rt;var ca=e.createSymbolTable();ca.set(Ue,rt),u=_p(u,Eo(i.symbol,ca,e.emptyArray,e.emptyArray,e.emptyArray),i.symbol,Re,!1)}}if(L)return fe;if(G&&u!==Br)return ao([G,u]);return G||(u===Br?Yt():u);function Yt(){Re|=dn;var qa=Eo(i.symbol,s,e.emptyArray,e.emptyArray,e.emptyArray);return qa.objectFlags|=Re|128|262144,qa}}function Oy(n,r){for(var i=[],o=0,s=n.children;o1&&i.declarations&&On(i.declarations[0],e.Diagnostics.The_global_type_JSX_0_may_not_have_more_than_one_property,e.unescapeLeadingUnderscores(n))}}function rO(n){return n&&Ro(n.exports,f.LibraryManagedAttributes,788968)}function tO(n){return FL(f.ElementAttributesPropertyNameContainer,n)}function Py(n){return FL(f.ElementChildrenAttributeNameContainer,n)}function GL(n,r){if(n.flags&4)return[ni];if(n.flags&128){var i=BL(n,r);if(i){var o=Hy(r,i);return[o]}else return On(r,e.Diagnostics.Property_0_does_not_exist_on_type_1,n.value,"JSX."+f.IntrinsicElements),e.emptyArray}var s=zs(n),u=sa(s,1);return u.length===0&&(u=sa(s,0)),u.length===0&&s.flags&1048576&&(u=mv(e.map(s.types,function(L){return GL(L,r)}))),u}function BL(n,r){var i=bp(f.IntrinsicElements,r);if(i!==le){var o=n.value,s=Gt(i,e.escapeLeadingUnderscores(o));if(s)return ft(s);var u=jl(i,dr);return u||void 0}return fe}function aO(n,r,i){if(n===1){var o=WL(i);o&&$c(r,o,Ft,i.tagName,e.Diagnostics.Its_return_type_0_is_not_a_valid_JSX_element,L)}else if(n===0){var s=VL(i);s&&$c(r,s,Ft,i.tagName,e.Diagnostics.Its_instance_type_0_is_not_a_valid_JSX_element,L)}else{var o=WL(i),s=VL(i);if(!o||!s)return;var u=ua([o,s]);$c(r,u,Ft,i.tagName,e.Diagnostics.Its_element_type_0_is_not_a_valid_JSX_element,L)}function L(){var G=e.getTextOfNode(i.tagName);return e.chainDiagnosticMessages(void 0,e.Diagnostics._0_cannot_be_used_as_a_JSX_component,G)}}function UL(n){e.Debug.assert(F_(n.tagName));var r=aa(n);if(!r.resolvedJsxElementAttributesType){var i=jT(n);return r.jsxFlags&1?r.resolvedJsxElementAttributesType=ft(i)||le:r.jsxFlags&2?r.resolvedJsxElementAttributesType=jl(bp(f.IntrinsicElements,n),dr)||le:r.resolvedJsxElementAttributesType=le}return r.resolvedJsxElementAttributesType}function VL(n){var r=bp(f.ElementClass,n);if(r!==le)return r}function Yv(n){return bp(f.Element,n)}function WL(n){var r=Yv(n);if(r)return ua([r,rr])}function iO(n){var r=bp(f.IntrinsicElements,n);return r?Hi(r):e.emptyArray}function oO(n){(Ie.jsx||0)===0&&On(n,e.Diagnostics.Cannot_use_JSX_unless_the_jsx_flag_is_provided),Yv(n)===void 0&&Nn&&On(n,e.Diagnostics.JSX_element_implicitly_has_type_any_because_the_global_type_JSX_Element_does_not_exist)}function JT(n){var r=e.isJsxOpeningLikeElement(n);if(r&&mF(n),oO(n),!HT(n)){var i=Ut&&Ie.jsx===2?e.Diagnostics.Cannot_find_name_0:void 0,o=go(n),s=r?n.tagName:n,u=void 0;e.isJsxOpeningFragment(n)&&o==="null"||(u=Fo(s,o,111551,i,o,!0)),u&&(u.isReferenced=67108863,u.flags&2097152&&!Nc(u)&&fu(u))}if(r){var L=n,G=U_(L);Ky(G,n),aO(pA(L),eo(G),L)}}function KT(n,r,i){if(n.flags&524288){if(rd(n,r)||Ef(n,r)||Cs(r)&&Is(n,dr)||i&&WT(r))return!0}else if(n.flags&3145728&&Qv(n))for(var o=0,s=n.types;o=1&&Fi(i,Bc(me,0))}return!1}var s=e.isAssignmentTarget(r)?"set":"get";if(!!o(s)){var u=e.tryGetPropertyAccessOrIdentifierToString(r.expression);return u===void 0?u=s:u+="."+s,u}}function Zv(n,r,i){return e.getSpellingSuggestion(n,r,o);function o(s){var u=e.symbolName(s);if(!e.startsWith(u,'"')){if(s.flags&i)return u;if(s.flags&2097152){var L=Sl(s);if(L&&L.flags&i)return u}}}}function Gy(n,r,i){var o=n&&n.flags&106500&&n.valueDeclaration;if(!!o){var s=e.hasEffectiveModifier(o,8),u=n.valueDeclaration&&e.isNamedDeclaration(n.valueDeclaration)&&e.isPrivateIdentifier(n.valueDeclaration.name);if(!(!s&&!u)&&!(r&&e.isWriteOnlyAccess(r)&&!(n.flags&65536))){if(i){var L=e.findAncestor(r,e.isFunctionLikeDeclaration);if(L&&L.symbol===n)return}(e.getCheckFlags(n)&1?ja(n).target:n).isReferenced=67108863}}}function rA(n,r){return n.kind===108||!!r&&e.isEntityNameExpression(n)&&r===eu(e.getFirstIdentifier(n))}function SO(n,r){switch(n.kind){case 204:return $v(n,n.expression.kind===106,r,kl(Za(n.expression)));case 159:return $v(n,!1,r,kl(Za(n.left)));case 198:return $v(n,!1,r,ha(n))}}function tA(n,r,i){return $v(n,n.kind===204&&n.expression.kind===106,i.escapedName,r)}function $v(n,r,i,o){if(o===le||Ai(o))return!0;var s=Gt(o,i);if(s){if(s.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(s.valueDeclaration)){var u=e.getContainingClass(s.valueDeclaration);return!e.isOptionalChain(n)&&!!e.findAncestor(n,function(L){return L===u})}return My(n,r,!1,o,s,!1)}return e.isInJSFile(n)&&(o.flags&1048576)!=0&&o.types.some(function(L){return $v(n,r,i,L)})}function DO(n){var r=n.initializer;if(r.kind===253){var i=r.declarations[0];if(i&&!e.isBindingPattern(i.name))return bt(i)}else if(r.kind===79)return eu(r)}function LO(n){return Oi(n).length===1&&!!Is(n,gr)}function AO(n){var r=e.skipParentheses(n);if(r.kind===79){var i=eu(r);if(i.flags&3)for(var o=n,s=n.parent;s;){if(s.kind===241&&o===s.statement&&DO(s)===i&&LO(Xs(s.expression)))return!0;o=s,s=s.parent}}return!1}function CO(n,r){return n.flags&32?xO(n,r):aA(n,G_(n.expression),r)}function xO(n,r){var i=Za(n.expression),o=Rg(i,n.expression);return fy(aA(n,nu(o,n.expression),r),n,o!==i)}function aA(n,r,i){var o=e.getAssignmentTargetKind(n)!==0||qL(n)?kl(r):r,s=n.argumentExpression,u=Za(s);if(o===le||o===fa)return o;if(pS(o)&&!e.isStringLiteralLike(s))return On(s,e.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal),le;var L=AO(s)?gr:u,G=e.isAssignmentTarget(n)?4|(vm(o)&&!Pv(o)?2:0):32,me=wd(o,L,G,n)||le;return a2(QL(n,aa(n).resolvedSymbol,me,s,i),n)}function iA(n){return e.isCallOrNewExpression(n)||e.isTaggedTemplateExpression(n)||e.isJsxOpeningLikeElement(n)}function r_(n){return iA(n)&&e.forEach(n.typeArguments,ki),n.kind===208?Za(n.template):e.isJsxOpeningLikeElement(n)?Za(n.attributes):n.kind!==163&&e.forEach(n.arguments,function(r){Za(r)}),ni}function bu(n){return r_(n),Ti}function IO(n,r,i){var o,s,u=0,L,G=-1,me;e.Debug.assert(!r.length);for(var Re=0,Ue=n;Re=0)return Ue>=Tu(i)&&(Su(i)||UeL)return!1;if(u||s>=G)return!0;for(var Ke=s;Ke=o&&r.length<=i}function Dm(n){return Ug(n,0,!1)}function lA(n){return Ug(n,0,!1)||Ug(n,1,!1)}function Ug(n,r,i){if(n.flags&524288){var o=Yc(n);if(i||o.properties.length===0&&o.indexInfos.length===0){if(r===0&&o.callSignatures.length===1&&o.constructSignatures.length===0)return o.callSignatures[0];if(r===1&&o.constructSignatures.length===1&&o.callSignatures.length===0)return o.constructSignatures[0]}}}function cA(n,r,i,o){var s=Og(n.typeParameters,n,0,o),u=Wg(r),L=i&&(u&&u.flags&262144?i.nonFixingMapper:i.mapper),G=L?Km(r,L):r;return cT(G,n,function(me,Re){Ku(s.inferences,me,Re)}),i||uT(r,n,function(me,Re){Ku(s.inferences,me,Re,128)}),Nv(n,ET(s),e.isInJSFile(r.declaration))}function kO(n,r,i,o){var s=Ry(r,n),u=t_(n.attributes,s,o,i);return Ku(o.inferences,u,s),ET(o)}function uA(n){if(!n)return fr;var r=Za(n);return e.isOptionalChainRoot(n.parent)?od(r):e.isOptionalChain(n.parent)?oT(r):r}function nS(n,r,i,o,s){if(e.isJsxOpeningLikeElement(n))return kO(n,r,o,s);if(n.kind!==163){var u=Gc(n,e.every(r.typeParameters,function(qa){return!!dp(qa)})?8:0);if(u){var L=Gg(n),G=pT(ck(L,1)),me=Ja(u,G),Re=Dm(me),Ue=Re&&Re.typeParameters?b_(ub(Re,Re.typeParameters)):me,Ke=eo(r);Ku(s.inferences,Ue,Ke,128);var Qe=Og(r.typeParameters,r,s.flags),yn=Ja(u,L&&L.returnMapper);Ku(Qe.inferences,yn,Ke),s.returnMapper=e.some(Qe.inferences,Lm)?pT(uk(Qe)):void 0}}var Hn=jg(r),$n=Hn?Math.min(Ll(r)-1,i.length):i.length;if(Hn&&Hn.flags&262144){var Er=e.find(s.inferences,function(qa){return qa.typeParameter===Hn});Er&&(Er.impliedArity=e.findIndex(i,By,$n)<0?i.length-$n:void 0)}var hr=td(r);if(hr){var Ir=mA(n);Ku(s.inferences,uA(Ir),hr)}for(var Yr=0;Yr<$n;Yr++){var It=i[Yr];if(It.kind!==225){var rt=Bc(r,Yr),ca=t_(It,rt,s,o);Ku(s.inferences,ca,rt)}}if(Hn){var Yt=rS(i,$n,i.length,Hn,s,o);Ku(s.inferences,Yt,Hn)}return ET(s)}function fA(n){return n.flags&1048576?rs(n,fA):n.flags&1||cy($s(n)||n)?n:_i(n)?hu(ro(n),n.target.elementFlags,!1,n.target.labeledElementDeclarations):hu([n],[8])}function rS(n,r,i,o,s,u){if(r>=i-1){var L=n[i-1];if(By(L))return fA(L.kind===230?L.type:t_(L.expression,o,s,u))}for(var G=[],me=[],Re=[],Ue=r;UeIr&&(Ir=Ba)}}if(!hr)return!0;for(var Ui=1/0,to=0,Fr=Qe;to0||e.isJsxOpeningElement(n)&&n.parent.children.length>0?[n.attributes]:e.emptyArray;var o=n.arguments||e.emptyArray,s=Uy(o);if(s>=0){for(var u=o.slice(0,s),L=function(me){var Re=o[me],Ue=Re.kind===223&&(mr?Za(Re.expression):Ns(Re.expression));Ue&&_i(Ue)?e.forEach(ro(Ue),function(Ke,Qe){var yn,Hn=Ue.target.elementFlags[Qe],$n=Tp(Re,Hn&4?Vs(Ke):Ke,!!(Hn&12),(yn=Ue.target.labeledElementDeclarations)===null||yn===void 0?void 0:yn[Qe]);u.push($n)}):u.push(Re)},G=s;G-1)return e.createDiagnosticForNode(i[s],e.Diagnostics.A_spread_argument_must_either_have_a_tuple_type_or_be_passed_to_a_rest_parameter);for(var u=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,G=Number.NEGATIVE_INFINITY,me=Number.POSITIVE_INFINITY,Re,Ue=0,Ke=r;UeG&&(G=yn),i.lengtho?me=Math.min(me,Ke):L1&&(Ir=Ot(Ke,sr,yn,Yr)),Ir||(Ir=Ot(Ke,Ft,yn,Yr)),Ir)return Ir;if(Re)if($n)if($n.length===1||$n.length>3){var It=$n[$n.length-1],rt;$n.length>3&&(rt=e.chainDiagnosticMessages(rt,e.Diagnostics.The_last_overload_gave_the_following_error),rt=e.chainDiagnosticMessages(rt,e.Diagnostics.No_overload_matches_this_call));var ca=eh(n,Qe,It,Ft,0,!0,function(){return rt});if(ca)for(var Yt=0,qa=ca;Yt3&&e.addRelatedInfo(Ga,e.createDiagnosticForNode(It.declaration,e.Diagnostics.The_last_overload_is_declared_here)),xt(It,Ga),Ut.add(Ga)}else e.Debug.fail("No error for last overload signature")}else{for(var gi=[],Ba=0,Ui=Number.MAX_VALUE,to=0,Fr=0,Dr=function($t){var Bn=function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.Overload_0_of_1_2_gave_the_following_error,Fr+1,Ke.length,wl($t))},br=eh(n,Qe,$t,Ft,0,!0,Bn);br?(br.length<=Ui&&(Ui=br.length,to=Fr),Ba=Math.max(Ba,br.length),gi.push(br)):e.Debug.fail("No error for 3 or fewer overload signatures"),Fr++},ma=0,Sa=$n;ma1?gi[to]:e.flatten(gi);e.Debug.assert(Wa.length>0,"No errors reported for 3 or fewer overload signatures");var Rt=e.chainDiagnosticMessages(e.map(Wa,function($t){return typeof $t.messageText=="string"?$t:$t.messageText}),e.Diagnostics.No_overload_matches_this_call),vi=Mr([],e.flatMap(Wa,function($t){return $t.relatedInformation}),!0),mi=void 0;if(e.every(Wa,function($t){return $t.start===Wa[0].start&&$t.length===Wa[0].length&&$t.file===Wa[0].file})){var Jn=Wa[0],mn=Jn.file,et=Jn.start,nt=Jn.length;mi={file:mn,start:et,length:nt,code:Rt.code,category:Rt.category,messageText:Rt,relatedInformation:vi}}else mi=e.createDiagnosticForNodeFromMessageChain(n,Rt,vi);xt($n[0],mi),Ut.add(mi)}else if(Er)Ut.add(vA(n,[Er],Qe));else if(hr)dA(hr,n.typeArguments,!0,u);else{var St=e.filter(r,function($t){return sA($t,Ue)});St.length===0?Ut.add(MO(n,r,Ue)):G?u&&Ut.add(Wy(n,u)):Ut.add(vA(n,St,Qe))}return wO(n,Ke,Qe,!!i);function xt($t,Bn){var br,wr,jr=$n,Zr=Er,_t=hr,ea=((wr=(br=$t.declaration)===null||br===void 0?void 0:br.symbol)===null||wr===void 0?void 0:wr.declarations)||e.emptyArray,ya=ea.length>1,$a=ya?e.find(ea,function(po){return e.isFunctionLikeDeclaration(po)&&e.nodeIsPresent(po.body)}):void 0;if($a){var _a=lc($a),Pi=!_a.typeParameters;Ot([_a],Ft,Pi)&&e.addRelatedInfo(Bn,e.createDiagnosticForNode($a,e.Diagnostics.The_call_would_have_succeeded_against_this_implementation_but_implementation_signatures_of_overloads_are_not_externally_visible))}$n=jr,Er=Zr,hr=_t}function Ot($t,Bn,br,wr){if(wr===void 0&&(wr=!1),$n=void 0,Er=void 0,hr=void 0,br){var jr=$t[0];if(e.some(Ue)||!Vy(n,Qe,jr,wr))return;if(eh(n,Qe,jr,Bn,0,!1,void 0)){$n=[jr];return}return jr}for(var Zr=0;Zr<$t.length;Zr++){var jr=$t[Zr];if(!(!sA(jr,Ue)||!Vy(n,Qe,jr,wr))){var _t=void 0,ea=void 0;if(jr.typeParameters){var ya=void 0;if(e.some(Ue)){if(ya=dA(jr,Ue,!1),!ya){hr=jr;continue}}else ea=Og(jr.typeParameters,jr,e.isInJSFile(n)?2:0),ya=nS(n,jr,Qe,Hn|8,ea),Hn|=ea.flags&4?8:0;if(_t=Nv(jr,ya,e.isInJSFile(jr.declaration),ea&&ea.inferredTypeParameters),jg(jr)&&!Vy(n,Qe,_t,wr)){Er=_t;continue}}else _t=jr;if(eh(n,Qe,_t,Bn,Hn,!1,void 0)){($n||($n=[])).push(_t);continue}if(Hn){if(Hn=0,ea){var ya=nS(n,jr,Qe,Hn,ea);if(_t=Nv(jr,ya,e.isInJSFile(jr.declaration),ea&&ea.inferredTypeParameters),jg(jr)&&!Vy(n,Qe,_t,wr)){Er=_t;continue}}if(eh(n,Qe,_t,Bn,Hn,!1,void 0)){($n||($n=[])).push(_t);continue}}return $t[Zr]=_t,_t}}}}function wO(n,r,i,o){return e.Debug.assert(r.length>0),Zg(n),o||r.length===1||r.some(function(s){return!!s.typeParameters})?BO(n,r,i):FO(r)}function FO(n){var r=e.mapDefined(n,function(Qe){return Qe.thisParameter}),i;r.length&&(i=hA(r,r.map(Vg)));for(var o=e.minAndMax(n,GO),s=o.min,u=o.max,L=[],G=function(Qe){var yn=e.mapDefined(n,function(Hn){return V(Hn)?Qer.length;)o.pop();for(;o.length=r)return s;L>o&&(o=L,i=s)}return i}function jO(n,r,i){if(n.expression.kind===106){var o=kT(n.expression);if(Ai(o)){for(var s=0,u=n.arguments;s=0&&On(n.arguments[o],e.Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_5_and_higher)}var s=G_(n.expression);if(s===fa)return Zi;if(s=zs(s),s===le)return bu(n);if(Ai(s))return n.typeArguments&&On(n,e.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments),r_(n);var u=sa(s,1);if(u.length){if(!KO(n,u[0]))return bu(n);if(u.some(function(Re){return Re.flags&4}))return On(n,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),bu(n);var L=s.symbol&&e.getClassLikeDeclarationOfSymbol(s.symbol);return L&&e.hasSyntacticModifier(L,128)?(On(n,e.Diagnostics.Cannot_create_an_instance_of_an_abstract_class),bu(n)):B_(n,u,r,i,0)}var G=sa(s,0);if(G.length){var me=B_(n,G,r,i,0);return Nn||(me.declaration&&!ru(me.declaration)&&eo(me)!==fr&&On(n,e.Diagnostics.Only_a_void_function_can_be_called_with_the_new_keyword),td(me)===fr&&On(n,e.Diagnostics.A_function_that_is_called_with_the_new_keyword_cannot_have_a_this_type_that_is_void)),me}return iS(n.expression,s,1),bu(n)}function aS(n,r){var i=Gl(r);if(!e.length(i))return!1;var o=i[0];if(o.flags&2097152){for(var s=o.types,u=Mh(s),L=0,G=0,me=o.types;G0;if(r.flags&1048576){for(var G=r.types,me=!1,Re=0,Ue=G;Re=i-1)return r===i-1?s:Vs(Hl(s,gr));for(var u=[],L=[],G=[],me=r;me0&&(s=n.parameters.length-1+G)}}if(s===void 0){if(!i&&n.flags&32)return 0;s=n.minArgumentCount}if(o)return s;for(var me=s-1;me>=0;me--){var Re=Bc(n,me);if(qs(Re,oA).flags&131072)break;s=me}n.resolvedMinArgumentCount=s}return n.resolvedMinArgumentCount}function Su(n){if(V(n)){var r=ft(n.parameters[n.parameters.length-1]);return!_i(r)||r.target.hasRestElement}return!1}function Wg(n){if(V(n)){var r=ft(n.parameters[n.parameters.length-1]);if(!_i(r))return r;if(r.target.hasRestElement)return Ag(r,r.target.fixedLength)}}function jg(n){var r=Wg(n);return r&&!rl(r)&&!Ai(r)&&(wn(r).flags&131072)==0?r:void 0}function lS(n){return cS(n,Pt)}function cS(n,r){return n.parameters.length>0?Bc(n,0):r}function uP(n,r,i){for(var o=n.parameters.length-(V(n)?1:0),s=0;s0&&(u=ua(Re,2)):me=Pt;var Ue=pP(n,r),Ke=Ue.yieldTypes,Qe=Ue.nextTypes;L=e.some(Ke)?ua(Ke,2):void 0,G=e.some(Qe)?ao(Qe):void 0}else{var yn=GA(n,r);if(!yn)return i&2?ah(n,Pt):Pt;if(yn.length===0)return i&2?ah(n,fr):fr;u=ua(yn,2)}if(u||L||G){if(L&&my(n,L,3),u&&my(n,u,1),G&&my(n,G,2),u&&yu(u)||L&&yu(L)||G&&yu(G)){var Hn=UT(n),$n=Hn?Hn===lc(n)?s?void 0:u:Ny(eo(Hn),n):void 0;s?(L=tT(L,$n,0,o),u=tT(u,$n,1,o),G=tT(G,$n,2,o)):u=QN(u,$n,o)}L&&(L=kl(L)),u&&(u=kl(u)),G&&(G=kl(G))}return s?PA(L||Pt,u||me,G||AL(2,n)||bn,o):o?th(u||me):u||me}function PA(n,r,i,o){var s=o?co:za,u=s.getGlobalGeneratorType(!1);if(n=s.resolveIterationType(n,void 0)||bn,r=s.resolveIterationType(r,void 0)||bn,i=s.resolveIterationType(i,void 0)||bn,u===er){var L=s.getGlobalIterableIteratorType(!1),G=L!==er?S2(L,s):void 0,me=G?G.returnType:fe,Re=G?G.nextType:In;return Fi(r,me)&&Fi(Re,i)?L!==er?Lg(L,[n]):(s.getGlobalIterableIteratorType(!0),vr):(s.getGlobalGeneratorType(!0),vr)}return Lg(u,[n,r,i])}function pP(n,r){var i=[],o=[],s=(e.getFunctionFlags(n)&2)!=0;return e.forEachYieldExpression(n.body,function(u){var L=u.expression?Za(u.expression,r):pn;e.pushIfUnique(i,MA(u,L,fe,s));var G;if(u.asteriskToken){var me=ph(L,s?19:17,u.expression);G=me&&me.nextType}else G=Gc(u);G&&e.pushIfUnique(o,G)}),{yieldTypes:i,nextTypes:o}}function MA(n,r,i,o){var s=n.expression||n,u=n.asteriskToken?ld(o?19:17,r,i,s):r;return o?tu(u,s,n.asteriskToken?e.Diagnostics.Type_of_iterated_elements_of_a_yield_Asterisk_operand_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member:e.Diagnostics.Type_of_yield_operand_in_an_async_generator_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member):u}function uS(n,r,i,o){var s=0;if(o){for(var u=r;u1&&r.charCodeAt(i-1)>=48&&r.charCodeAt(i-1)<=57;)i--;for(var o=r.slice(0,i),s=1;;s++){var u=o+s;if(!vS(n,u))return u}}function XA(n){var r=Dm(n);if(r&&!r.typeParameters)return eo(r)}function KP(n){var r=Za(n.expression),i=Rg(r,n.expression),o=XA(r);return o&&fy(o,n,i!==r)}function Xs(n){var r=YA(n);if(r)return r;if(n.flags&67108864&&ci){var i=ci[b(n)];if(i)return i}var o=it,s=Za(n);if(it!==o){var u=ci||(ci=[]);u[b(n)]=s,e.setNodeFlags(n,n.flags|67108864)}return s}function YA(n){var r=e.skipParentheses(n);if(e.isCallExpression(r)&&r.expression.kind!==106&&!e.isRequireCall(r,!0)&&!SA(r)){var i=e.isCallChain(r)?KP(r):XA(G_(r.expression));if(i)return i}else{if(e.isAssertionExpression(r)&&!e.isConstTypeReference(r.type))return ha(r.type);if(n.kind===8||n.kind===10||n.kind===110||n.kind===95)return Za(n)}}function hS(n){var r=aa(n);if(r.contextFreeType)return r.contextFreeType;var i=n.contextualType;n.contextualType=fe;try{var o=r.contextFreeType=Za(n,4);return o}finally{n.contextualType=i}}function Za(n,r,i){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkExpression",{kind:n.kind,pos:n.pos,end:n.end});var o=Ee;Ee=n,Ne=0;var s=XP(n,r,i),u=zA(n,s,r);return pS(u)&&zP(n,u),Ee=o,e.tracing===null||e.tracing===void 0||e.tracing.pop(),u}function zP(n,r){var i=n.parent.kind===204&&n.parent.expression===n||n.parent.kind===205&&n.parent.expression===n||(n.kind===79||n.kind===159)&&fE(n)||n.parent.kind===179&&n.parent.exprName===n||n.parent.kind===273;if(i||On(n,e.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment_or_type_query),Ie.isolatedModules){e.Debug.assert(!!(r.symbol.flags&128));var o=r.symbol.valueDeclaration;o.flags&8388608&&On(n,e.Diagnostics.Cannot_access_ambient_const_enums_when_the_isolatedModules_flag_is_provided)}}function qP(n,r){var i=e.isInJSFile(n)?e.getJSDocTypeTag(n):void 0;return i?CA(i.typeExpression.type,i.typeExpression.type,n.expression,r):Za(n.expression,r)}function XP(n,r,i){var o=n.kind;if(ae)switch(o){case 224:case 211:case 212:ae.throwIfCancellationRequested()}switch(o){case 79:return aR(n,r);case 108:return xy(n);case 106:return kT(n);case 104:return lr;case 14:case 10:return Jm(Tc(n.text));case 8:return qS(n),Jm(Df(+n.text));case 9:return MF(n),Jm(Ob({negative:!1,base10Value:e.parsePseudoBigInt(n.text)}));case 110:return Or;case 95:return Tt;case 221:return FP(n);case 13:return Pr;case 202:return kL(n,r,i);case 203:return qR(n,r);case 204:return KL(n,r);case 159:return zL(n,r);case 205:return CO(n,r);case 206:if(n.expression.kind===100)return nP(n);case 207:return eP(n,r);case 208:return rP(n);case 210:return qP(n,r);case 224:return bw(n);case 211:case 212:return BA(n,r);case 214:return bP(n);case 209:case 227:return tP(n);case 228:return iP(n);case 229:return oP(n);case 213:return yP(n);case 215:return TP(n);case 216:return SP(n);case 217:return DP(n);case 218:return LP(n);case 219:return qn(n,r);case 220:return wP(n,r);case 223:return jR(n,r);case 225:return pn;case 222:return MP(n);case 230:return HR(n);case 286:return sO(n,r);case 276:return ZR(n);case 277:return YR(n);case 280:return $R(n);case 284:return nO(n,r);case 278:e.Debug.fail("Shouldn't ever directly check a JsxOpeningElement")}return le}function QA(n){n.expression&&js(n.expression,e.Diagnostics.Type_expected),ki(n.constraint),ki(n.default);var r=hf(bt(n));$s(r),ib(r)||On(n.default,e.Diagnostics.Type_parameter_0_has_a_circular_default,pt(r));var i=Wl(r),o=dp(r);i&&o&&$l(o,Ul(Ja(i,ym(r,o)),o),n.default,e.Diagnostics.Type_0_does_not_satisfy_the_constraint_1),ce&&q_(n.name,e.Diagnostics.Type_parameter_name_cannot_be_0)}function ZA(n){zu(n),tE(n);var r=e.getContainingFunction(n);e.hasSyntacticModifier(n,16476)&&(r.kind===169&&e.nodeIsPresent(r.body)||On(n,e.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation),r.kind===169&&e.isIdentifier(n.name)&&n.name.escapedText==="constructor"&&On(n.name,e.Diagnostics.constructor_cannot_be_used_as_a_parameter_property_name)),n.questionToken&&e.isBindingPattern(n.name)&&r.body&&On(n,e.Diagnostics.A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature),n.name&&e.isIdentifier(n.name)&&(n.name.escapedText==="this"||n.name.escapedText==="new")&&(r.parameters.indexOf(n)!==0&&On(n,e.Diagnostics.A_0_parameter_must_be_the_first_parameter,n.name.escapedText),(r.kind===169||r.kind===173||r.kind===178)&&On(n,e.Diagnostics.A_constructor_cannot_have_a_this_parameter),r.kind===212&&On(n,e.Diagnostics.An_arrow_function_cannot_have_a_this_parameter),(r.kind===170||r.kind===171)&&On(n,e.Diagnostics.get_and_set_accessors_cannot_declare_this_parameters)),n.dotDotDotToken&&!e.isBindingPattern(n.name)&&!Fi(wn(ft(n.symbol)),Fe)&&On(n,e.Diagnostics.A_rest_parameter_must_be_of_an_array_type)}function YP(n){var r=QP(n);if(!r){On(n,e.Diagnostics.A_type_predicate_is_only_allowed_in_return_type_position_for_functions_and_methods);return}var i=lc(r),o=Zl(i);if(!!o){ki(n.type);var s=n.parameterName;if(o.kind===0||o.kind===2)ny(s);else if(o.parameterIndex>=0){if(V(i)&&o.parameterIndex===i.parameters.length-1)On(s,e.Diagnostics.A_type_predicate_cannot_reference_a_rest_parameter);else if(o.type){var u=function(){return e.chainDiagnosticMessages(void 0,e.Diagnostics.A_type_predicate_s_type_must_be_assignable_to_its_parameter_s_type)};$l(o.type,ft(i.parameters[o.parameterIndex]),n.type,void 0,u)}}else if(s){for(var L=!1,G=0,me=r.parameters;G0&&r.declarations[0]!==n)return}var i=l0(bt(n));if(i==null?void 0:i.declarations){for(var o=new e.Map,s=function(me){me.parameters.length===1&&me.parameters[0].type&&Qm(ha(me.parameters[0].type),function(Re){var Ue=o.get(Fc(Re));Ue?Ue.declarations.push(me):o.set(Fc(Re),{type:Re,declarations:[me]})})},u=0,L=i.declarations;u1)for(var Re=0,Ue=me.declarations;Re0}function tu(n,r,i,o){if(Ai(n))return n;var s=n;return s.awaitedTypeOfType?s.awaitedTypeOfType:s.awaitedTypeOfType=rs(n,r?function(u){return i2(u,r,i,o)}:i2)}function i2(n,r,i,o){var s=n;if(s.awaitedTypeOfType)return s.awaitedTypeOfType;var u=sh(n);if(u){if(n.id===u.id||Jt.lastIndexOf(u.id)>=0){r&&On(r,e.Diagnostics.Type_is_referenced_directly_or_indirectly_in_the_fulfillment_callback_of_its_own_then_method);return}Jt.push(n.id);var L=tu(u,r,i,o);return Jt.pop(),L?s.awaitedTypeOfType=L:void 0}if(EM(n)){if(r){if(!i)return e.Debug.fail();On(r,i,o)}return}return s.awaitedTypeOfType=n}function bM(n,r){var i=ha(r);if(je>=2){if(i===le)return;var o=Yh(!0);if(o!==er&&!W(i,o)){On(r,e.Diagnostics.The_return_type_of_an_async_function_or_method_must_be_the_global_Promise_T_type_Did_you_mean_to_write_Promise_0,pt(tu(i)||fr));return}}else{if(SM(r),i===le)return;var s=e.getEntityNameFromTypeNode(r);if(s===void 0){On(r,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,pt(i));return}var u=fo(s,111551,!0),L=u?ft(u):le;if(L===le){s.kind===79&&s.escapedText==="Promise"&&ve(i)===Yh(!1)?On(r,e.Diagnostics.An_async_function_or_method_in_ES5_SlashES3_requires_the_Promise_constructor_Make_sure_you_have_a_declaration_for_the_Promise_constructor_or_include_ES2015_in_your_lib_option):On(r,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(s));return}var G=Qx(!0);if(G===vr){On(r,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value,e.entityNameToString(s));return}if(!$l(L,G,r,e.Diagnostics.Type_0_is_not_a_valid_async_function_return_type_in_ES5_SlashES3_because_it_does_not_refer_to_a_Promise_compatible_constructor_value))return;var me=s&&e.getFirstIdentifier(s),Re=Ro(n.locals,me.escapedText,111551);if(Re){On(Re.valueDeclaration,e.Diagnostics.Duplicate_identifier_0_Compiler_uses_declaration_1_to_support_async_functions,e.idText(me),e.entityNameToString(s));return}}Xg(i,n,e.Diagnostics.The_return_type_of_an_async_function_must_either_be_a_valid_promise_or_must_not_contain_a_callable_then_member)}function TM(n){var r=U_(n);Ky(r,n);var i=eo(r);if(!(i.flags&1)){var o,s=TA(n),u;switch(n.parent.kind){case 255:var L=bt(n.parent),G=ft(L);o=ua([G,fr]);break;case 162:o=fr,u=e.chainDiagnosticMessages(void 0,e.Diagnostics.The_return_type_of_a_parameter_decorator_function_must_be_either_void_or_any);break;case 165:o=fr,u=e.chainDiagnosticMessages(void 0,e.Diagnostics.The_return_type_of_a_property_decorator_function_must_be_either_void_or_any);break;case 167:case 170:case 171:var me=rm(n.parent),Re=N0(me);o=ua([Re,fr]);break;default:return e.Debug.fail()}$l(i,o,n,s,function(){return u})}}function SM(n){o2(n&&e.getEntityNameFromTypeNode(n))}function o2(n){if(!!n){var r=e.getFirstIdentifier(n),i=(n.kind===79?788968:1920)|2097152,o=Fo(r,r.escapedText,i,void 0,void 0,!0);o&&o.flags&2097152&&Rc(o)&&!$g(Wo(o))&&!Nc(o)&&fu(o)}}function J_(n){var r=SS(n);r&&e.isEntityName(r)&&o2(r)}function SS(n){if(n)switch(n.kind){case 186:case 185:return s2(n.types);case 187:return s2([n.trueType,n.falseType]);case 189:case 195:return SS(n.type);case 176:return n.typeName}}function s2(n){for(var r,i=0,o=n;i-1&&i0),i.length>1&&On(i[1],e.Diagnostics.Class_declarations_cannot_have_more_than_one_augments_or_extends_tag);var o=l2(n.class.expression),s=e.getClassExtendsHeritageElement(r);if(s){var u=l2(s.expression);u&&o.escapedText!==u.escapedText&&On(o,e.Diagnostics.JSDoc_0_1_does_not_match_the_extends_2_clause,e.idText(n.tagName),e.idText(o),e.idText(u))}}function l2(n){switch(n.kind){case 79:return n;case 204:return n.name;default:return}}function c2(n){var r;lh(n),Kg(n);var i=e.getFunctionFlags(n);if(n.name&&n.name.kind===160&&Rf(n.name),Zs(n)){var o=bt(n),s=n.localSymbol||o,u=(r=s.declarations)===null||r===void 0?void 0:r.find(function(me){return me.kind===n.kind&&!(me.flags&131072)});n===u&&eE(s),o.parent&&eE(o)}var L=n.kind===166?void 0:n.body;if(ki(L),fS(n,Vm(n)),ce&&!e.getEffectiveReturnTypeNode(n)&&(e.nodeIsMissing(L)&&!Zy(n)&&hp(n,fe),i&1&&e.nodeIsPresent(L)&&eo(lc(n))),e.isInJSFile(n)){var G=e.getJSDocTypeTag(n);G&&G.typeExpression&&!GT(ha(G.typeExpression),n)&&On(G.typeExpression.type,e.Diagnostics.The_type_of_a_function_declaration_must_match_the_function_s_signature)}}function sd(n){if(ce){var r=e.getSourceFileOfNode(n),i=pe.get(r.path);i||(i=[],pe.set(r.path,i)),i.push(n)}}function u2(n,r){for(var i=0,o=n;i=2||!e.hasRestParameter(n)||n.flags&8388608||e.nodeIsMissing(n.body)||e.forEach(n.parameters,function(r){r.name&&!e.isBindingPattern(r.name)&&r.name.escapedText===be.escapedName&&wo("noEmit",r,e.Diagnostics.Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters)})}function Yg(n,r,i){if((r==null?void 0:r.escapedText)!==i||n.kind===165||n.kind===164||n.kind===167||n.kind===166||n.kind===170||n.kind===171||n.kind===291||n.flags&8388608||(e.isImportClause(n)||e.isImportEqualsDeclaration(n)||e.isImportSpecifier(n))&&e.isTypeOnlyImportOrExportDeclaration(n))return!1;var o=e.getRootDeclaration(n);return!(e.isParameter(o)&&e.nodeIsMissing(o.parent.body))}function GM(n){e.findAncestor(n,function(r){if(o_(r)&4){var i=n.kind!==79;return i?On(e.getNameOfDeclaration(n),e.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference):On(n,e.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference),!0}return!1})}function BM(n){e.findAncestor(n,function(r){if(o_(r)&8){var i=n.kind!==79;return i?On(e.getNameOfDeclaration(n),e.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference):On(n,e.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference),!0}return!1})}function UM(n,r){if(!(Sn>=e.ModuleKind.ES2015)&&!(!r||!Yg(n,r,"require")&&!Yg(n,r,"exports"))&&!(e.isModuleDeclaration(n)&&e.getModuleInstanceState(n)!==1)){var i=_f(n);i.kind===300&&e.isExternalOrCommonJsModule(i)&&wo("noEmit",r,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module,e.declarationNameToString(r),e.declarationNameToString(r))}}function VM(n,r){if(!(!r||je>=4||!Yg(n,r,"Promise"))&&!(e.isModuleDeclaration(n)&&e.getModuleInstanceState(n)!==1)){var i=_f(n);i.kind===300&&e.isExternalOrCommonJsModule(i)&&i.flags&2048&&wo("noEmit",r,e.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_a_module_containing_async_functions,e.declarationNameToString(r),e.declarationNameToString(r))}}function WM(n,r){je<=8&&(Yg(n,r,"WeakMap")||Yg(n,r,"WeakSet"))&&ct.push(n)}function jM(n){var r=e.getEnclosingBlockScopeContainer(n);o_(r)&67108864&&(e.Debug.assert(e.isNamedDeclaration(n)&&e.isIdentifier(n.name)&&typeof n.name.escapedText=="string","The target of a WeakMap/WeakSet collision check should be an identifier"),wo("noEmit",n,e.Diagnostics.Compiler_reserves_name_0_when_emitting_private_identifier_downlevel,n.name.escapedText))}function HM(n,r){r&&je>=2&&je<=8&&Yg(n,r,"Reflect")&&Nt.push(n)}function JM(n){var r=!1;if(e.isClassExpression(n))for(var i=0,o=n.members;i1&&e.some(Qe.declarations,function(hr){return hr!==n&&e.isVariableLike(hr)&&!g2(hr,n)})&&On(n.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(n.name))}else{var Er=Qg(zc(n));yn!==le&&Er!==le&&!Lf(yn,Er)&&!(Qe.flags&67108864)&&_2(Qe.valueDeclaration,yn,n,Er),n.initializer&&Bd(Ns(n.initializer),Er,n,n.initializer,void 0),Qe.valueDeclaration&&!g2(n,Qe.valueDeclaration)&&On(n.name,e.Diagnostics.All_declarations_of_0_must_have_identical_modifiers,e.declarationNameToString(n.name))}n.kind!==165&&n.kind!==164&&(zg(n),(n.kind===252||n.kind===201)&&KM(n),K_(n,n.name))}}function _2(n,r,i,o){var s=e.getNameOfDeclaration(i),u=i.kind===165||i.kind===164?e.Diagnostics.Subsequent_property_declarations_must_have_the_same_type_Property_0_must_be_of_type_1_but_here_has_type_2:e.Diagnostics.Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2,L=e.declarationNameToString(s),G=On(s,u,L,pt(r),pt(o));n&&e.addRelatedInfo(G,e.createDiagnosticForNode(n,e.Diagnostics._0_was_also_declared_here,L))}function g2(n,r){if(n.kind===162&&r.kind===252||n.kind===252&&r.kind===162)return!0;if(e.hasQuestionToken(n)!==e.hasQuestionToken(r))return!1;var i=8|16|256|128|64|32;return e.getSelectedEffectiveModifierFlags(n,i)===e.getSelectedEffectiveModifierFlags(r,i)}function AS(n){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkVariableDeclaration",{kind:n.kind,pos:n.pos,end:n.end}),DF(n),tE(n),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function zM(n){return bF(n),tE(n)}function qM(n){!zu(n)&&!zS(n.declarationList)&&LF(n),e.forEach(n.declarationList.declarations,ki)}function XM(n){qu(n),Za(n.expression)}function YM(n){qu(n);var r=z_(n.expression);CS(n.expression,r,n.thenStatement),ki(n.thenStatement),n.thenStatement.kind===234&&On(n.thenStatement,e.Diagnostics.The_body_of_an_if_statement_cannot_be_the_empty_statement),ki(n.elseStatement)}function CS(n,r,i){if(!!ze&&!cc(r)){var o=e.isBinaryExpression(n)?n.right:n;if(!(e.isPropertyAccessExpression(o)&&e.isAssertionExpression(e.skipParentheses(o.expression)))){var s=e.isIdentifier(o)?o:e.isPropertyAccessExpression(o)?o.name:e.isBinaryExpression(o)&&e.isIdentifier(o.right)?o.right:void 0,u=sa(r,0),L=!!qg(r);if(!(u.length===0&&!L)){var G=s&&Sc(s);if(!(!G&&!L)){var me=G&&e.isBinaryExpression(n.parent)&&ZM(n.parent,G)||G&&i&&QM(n,i,s,G);me||(L?_l(o,!0,e.Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined,pu(r)):On(o,e.Diagnostics.This_condition_will_always_return_true_since_this_function_is_always_defined_Did_you_mean_to_call_it_instead))}}}}}function QM(n,r,i,o){return!!e.forEachChild(r,function s(u){if(e.isIdentifier(u)){var L=Sc(u);if(L&&L===o){if(e.isIdentifier(n))return!0;for(var G=i.parent,me=u.parent;G&&me;){if(e.isIdentifier(G)&&e.isIdentifier(me)||G.kind===108&&me.kind===108)return Sc(G)===Sc(me);if(e.isPropertyAccessExpression(G)&&e.isPropertyAccessExpression(me)){if(Sc(G.name)!==Sc(me.name))return!1;me=me.expression,G=G.expression}else if(e.isCallExpression(G)&&e.isCallExpression(me))me=me.expression,G=G.expression;else return!1}}}return e.forEachChild(u,s)})}function ZM(n,r){for(;e.isBinaryExpression(n)&&n.operatorToken.kind===55;){var i=e.forEachChild(n.right,function o(s){if(e.isIdentifier(s)){var u=Sc(s);if(u&&u===r)return!0}return e.forEachChild(s,o)});if(i)return!0;n=n.parent}return!1}function $M(n){qu(n),ki(n.statement),z_(n.expression)}function ew(n){qu(n),z_(n.expression),ki(n.statement)}function v2(n,r){return n.flags&16384&&On(r,e.Diagnostics.An_expression_of_type_void_cannot_be_tested_for_truthiness),n}function z_(n,r){return v2(Za(n,r),n)}function nw(n){qu(n)||n.initializer&&n.initializer.kind===253&&zS(n.initializer),n.initializer&&(n.initializer.kind===253?e.forEach(n.initializer.declarations,AS):Za(n.initializer)),n.condition&&z_(n.condition),n.incrementor&&Za(n.incrementor),ki(n.statement),n.locals&&sd(n)}function rw(n){oC(n);var r=e.getContainingFunctionOrClassStaticBlock(n);if(n.awaitModifier)if(r&&e.isClassStaticBlockDeclaration(r))mt(n.awaitModifier,e.Diagnostics.For_await_loops_cannot_be_used_inside_a_class_static_block);else{var i=e.getFunctionFlags(r);(i&(4|2))==2&&je<99&&tl(n,16384)}else Ie.downlevelIteration&&je<2&&tl(n,256);if(n.initializer.kind===253)h2(n);else{var o=n.initializer,s=dh(n);if(o.kind===202||o.kind===203)nm(o,s||le);else{var u=Za(o);Hg(o,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_of_statement_may_not_be_an_optional_property_access),s&&Bd(s,u,o,n.expression)}}ki(n.statement),n.locals&&sd(n)}function tw(n){oC(n);var r=qT(Za(n.expression));if(n.initializer.kind===253){var i=n.initializer.declarations[0];i&&e.isBindingPattern(i.name)&&On(i.name,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern),h2(n)}else{var o=n.initializer,s=Za(o);o.kind===202||o.kind===203?On(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_be_a_destructuring_pattern):Fi(wI(r),s)?Hg(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_a_variable_or_a_property_access,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_may_not_be_an_optional_property_access):On(o,e.Diagnostics.The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any)}(r===Pt||!ps(r,67108864|58982400))&&On(n.expression,e.Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter_but_here_has_type_0,pt(r)),ki(n.statement),n.locals&&sd(n)}function h2(n){var r=n.initializer;if(r.declarations.length>=1){var i=r.declarations[0];AS(i)}}function dh(n){var r=n.awaitModifier?15:13;return ld(r,G_(n.expression),In,n.expression)}function ld(n,r,i,o){return Ai(r)?r:xS(n,r,i,o,!0)||fe}function xS(n,r,i,o,s){var u=(n&2)!=0;if(r===Pt){kS(o,r,u);return}var L=je>=2,G=!L&&Ie.downlevelIteration,me=Ie.noUncheckedIndexedAccess&&!!(n&128);if(L||G||u){var Re=ph(r,n,L?o:void 0);if(s&&Re){var Ue=n&8?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_for_of_will_always_send_0:n&32?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_spread_will_always_send_0:n&64?e.Diagnostics.Cannot_iterate_value_because_the_next_method_of_its_iterator_expects_type_1_but_array_destructuring_will_always_send_0:n&16?e.Diagnostics.Cannot_delegate_iteration_to_value_because_the_next_method_of_its_iterator_expects_type_1_but_the_containing_generator_will_always_send_0:void 0;Ue&&$l(i,Re.nextType,o,Ue)}if(Re||L)return me?wg(Re&&Re.yieldType):Re&&Re.yieldType}var Ke=r,Qe=!1,yn=!1;if(n&4){if(Ke.flags&1048576){var Hn=r.types,$n=e.filter(Hn,function(ca){return!(ca.flags&402653316)});$n!==Hn&&(Ke=ua($n,2))}else Ke.flags&402653316&&(Ke=Pt);if(yn=Ke!==r,yn&&(je<1&&o&&(On(o,e.Diagnostics.Using_a_string_in_a_for_of_statement_is_only_supported_in_ECMAScript_5_and_higher),Qe=!0),Ke.flags&131072))return me?wg(dr):dr}if(!Ud(Ke)){if(o&&!Qe){var Er=!!(n&4)&&!yn,hr=rt(Er,G),Ir=hr[0],Yr=hr[1];_l(o,Yr&&!!qg(Ke),Ir,pt(Ke))}return yn?me?wg(dr):dr:void 0}var It=jl(Ke,gr);if(yn&&It)return It.flags&402653316&&!Ie.noUncheckedIndexedAccess?dr:ua(me?[It,dr,In]:[It,dr],2);return n&128?wg(It):It;function rt(ca,Yt){var qa;if(Yt)return ca?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0]:[e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator,!0];var Ga=y2(n,0,r,void 0);return Ga?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators,!1]:aw((qa=r.symbol)===null||qa===void 0?void 0:qa.escapedName)?[e.Diagnostics.Type_0_can_only_be_iterated_through_when_using_the_downlevelIteration_flag_or_with_a_target_of_es2015_or_higher,!0]:ca?[e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type,!0]:[e.Diagnostics.Type_0_is_not_an_array_type,!0]}}function aw(n){switch(n){case"Float32Array":case"Float64Array":case"Int16Array":case"Int32Array":case"Int8Array":case"NodeList":case"Uint16Array":case"Uint32Array":case"Uint8Array":case"Uint8ClampedArray":return!0}return!1}function y2(n,r,i,o){if(!Ai(i)){var s=ph(i,n,o);return s&&s[N(r)]}}function Of(n,r,i){if(n===void 0&&(n=Pt),r===void 0&&(r=Pt),i===void 0&&(i=bn),n.flags&67359327&&r.flags&(1|131072|2|16384|32768)&&i.flags&(1|131072|2|16384|32768)){var o=wc([n,r,i]),s=ho.get(o);return s||(s={yieldType:n,returnType:r,nextType:i},ho.set(o,s)),s}return{yieldType:n,returnType:r,nextType:i}}function E2(n){for(var r,i,o,s=0,u=n;s1)for(var Ke=0,Qe=i;Kei)return!1;for(var Re=0;Re=o&&G.pos<=s){var me=e.factory.createPropertyAccessExpression(e.factory.createThis(),n);e.setParent(me.expression,me),e.setParent(me,G),me.flowNode=G.returnFlowNode;var Re=Zp(me,r,If(r));if(!(cc(Re)&32768))return!0}}return!1}function w2(n,r,i){var o=e.factory.createPropertyAccessExpression(e.factory.createThis(),n);e.setParent(o.expression,o),e.setParent(o,i),o.flowNode=i.returnFlowNode;var s=Zp(o,r,If(r));return!(cc(s)&32768)}function Rw(n){if(zu(n)||dF(n),sE(n.typeParameters),ce){q_(n.name,e.Diagnostics.Interface_name_cannot_be_0),zg(n);var r=bt(n);R2(r);var i=e.getDeclarationOfKind(r,256);if(n===i){var o=Lo(r),s=Ul(o);if(Iw(o,n.name)){for(var u=0,L=Gl(o);u>Ke;case 49:return Ue>>>Ke;case 47:return Ue<1){var o=e.isEnumConst(n);e.forEach(r.declarations,function(u){e.isEnumDeclaration(u)&&e.isEnumConst(u)!==o&&On(e.getNameOfDeclaration(u),e.Diagnostics.Enum_declarations_must_all_be_const_or_non_const)})}var s=!1;e.forEach(r.declarations,function(u){if(u.kind!==258)return!1;var L=u;if(!L.members.length)return!1;var G=L.members[0];G.initializer||(s?On(G.name,e.Diagnostics.In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element):s=!0)})}}}function Fw(n){e.isPrivateIdentifier(n.name)&&On(n,e.Diagnostics.An_enum_member_cannot_be_named_with_a_private_identifier)}function Gw(n){var r=n.declarations;if(r)for(var i=0,o=r;i1&&E(n,e.shouldPreserveConstEnums(Ie))){var L=Gw(u);L&&(e.getSourceFileOfNode(n)!==e.getSourceFileOfNode(L)?On(n.name,e.Diagnostics.A_namespace_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged):n.pos=e.ModuleKind.ES2015&&!n.isTypeOnly&&!(n.flags&8388608)&&mt(n,e.Diagnostics.Import_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_import_Asterisk_as_ns_from_mod_import_a_from_mod_import_d_from_mod_or_another_module_format_instead)}function Hw(n){if(!mh(n,e.Diagnostics.An_export_declaration_can_only_be_used_in_a_module)&&(!zu(n)&&e.hasEffectiveModifiers(n)&&js(n,e.Diagnostics.An_export_declaration_cannot_have_modifiers),n.moduleSpecifier&&n.exportClause&&e.isNamedExports(n.exportClause)&&e.length(n.exportClause.elements)&&je===0&&tl(n,2097152),Jw(n),!n.moduleSpecifier||MS(n)))if(n.exportClause&&!e.isNamespaceExport(n.exportClause)){e.forEach(n.exportClause.elements,Qw);var r=n.parent.kind===260&&e.isAmbientModule(n.parent.parent),i=!r&&n.parent.kind===260&&!n.moduleSpecifier&&n.flags&8388608;n.parent.kind!==300&&!r&&!i&&On(n,e.Diagnostics.Export_declarations_are_not_permitted_in_a_namespace)}else{var o=so(n,n.moduleSpecifier);o&&us(o)?On(n.moduleSpecifier,e.Diagnostics.Module_0_uses_export_and_cannot_be_used_with_export_Asterisk,Oa(o)):n.exportClause&&lE(n.exportClause),Sn!==e.ModuleKind.System&&Sn=e.ModuleKind.ES2015?mt(n,e.Diagnostics.Export_assignment_cannot_be_used_when_targeting_ECMAScript_modules_Consider_using_export_default_or_another_module_format_instead):Sn===e.ModuleKind.System&&mt(n,e.Diagnostics.Export_assignment_is_not_supported_when_module_flag_is_system))}}function $w(n){return e.forEachEntry(n.exports,function(r,i){return i!=="export="})}function G2(n){var r=bt(n),i=ja(r);if(!i.exportsChecked){var o=r.exports.get("export=");if(o&&$w(r)){var s=rc(o)||o.valueDeclaration;s&&!Fp(s)&&!e.isInJSFile(s)&&On(s,e.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements)}var u=tc(r);u&&u.forEach(function(L,G){var me=L.declarations,Re=L.flags;if(G!=="__export"&&!(Re&(1920|64|384))){var Ue=e.countWhere(me,M);if(!(Re&524288&&Ue<=2)&&Ue>1&&!uE(me))for(var Ke=0,Qe=me;Ke1&&n.every(function(r){return e.isInJSFile(r)&&e.isAccessExpression(r)&&(e.isExportsIdentifier(r.expression)||e.isModuleExportsAccessExpression(r.expression))})}function ki(n){if(n){var r=Ee;Ee=n,Ne=0,e6(n),Ee=r}}function e6(n){e.isInJSFile(n)&&e.forEach(n.jsDoc,function(i){var o=i.tags;return e.forEach(o,ki)});var r=n.kind;if(ae)switch(r){case 259:case 255:case 256:case 254:ae.throwIfCancellationRequested()}switch(r>=235&&r<=251&&n.flowNode&&!Jv(n.flowNode)&&Pl(Ie.allowUnreachableCode===!1,n,e.Diagnostics.Unreachable_code_detected),r){case 161:return QA(n);case 162:return ZA(n);case 165:return n2(n);case 164:return eM(n);case 178:case 177:case 172:case 173:case 174:return Kg(n);case 167:case 166:return nM(n);case 168:return rM(n);case 169:return tM(n);case 170:case 171:return r2(n);case 176:return TS(n);case 175:return YP(n);case 179:return oM(n);case 180:return sM(n);case 181:return lM(n);case 182:return cM(n);case 185:case 186:return uM(n);case 189:case 183:case 184:return ki(n.type);case 190:return pM(n);case 191:return mM(n);case 187:return _M(n);case 188:return gM(n);case 196:return vM(n);case 198:return hM(n);case 195:return yM(n);case 323:return RM(n);case 324:return kM(n);case 340:case 333:case 334:return LM(n);case 339:return AM(n);case 338:return CM(n);case 335:return xM(n);case 342:return IM(n);case 312:NM(n);case 310:case 309:case 307:case 308:case 317:B2(n),e.forEachChild(n,ki);return;case 313:n6(n);return;case 304:return ki(n.type);case 192:return fM(n);case 193:return dM(n);case 254:return DM(n);case 233:case 260:return rE(n);case 235:return qM(n);case 236:return XM(n);case 237:return YM(n);case 238:return $M(n);case 239:return ew(n);case 240:return nw(n);case 241:return tw(n);case 242:return rw(n);case 243:case 244:return uw(n);case 245:return fw(n);case 246:return dw(n);case 247:return pw(n);case 248:return mw(n);case 249:return _w(n);case 250:return gw(n);case 252:return AS(n);case 201:return zM(n);case 255:return Sw(n);case 256:return Rw(n);case 257:return Ow(n);case 258:return ww(n);case 259:return Uw(n);case 264:return Ww(n);case 263:return jw(n);case 270:return Hw(n);case 269:return Zw(n);case 234:case 251:qu(n);return;case 274:return aM(n)}}function B2(n){e.isInJSFile(n)||mt(n,e.Diagnostics.JSDoc_types_can_only_be_used_inside_documentation_comments)}function n6(n){B2(n),ki(n.type);var r=n.parent;if(e.isParameter(r)&&e.isJSDocFunctionType(r.parent)){e.last(r.parent.parameters)!==r&&On(n,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list);return}e.isJSDocTypeExpression(r)||On(n,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);var i=n.parent.parent;if(!e.isJSDocParameterTag(i)){On(n,e.Diagnostics.JSDoc_may_only_appear_in_the_last_parameter_of_a_signature);return}var o=e.getParameterSymbolFromJSDoc(i);if(!!o){var s=e.getHostSignatureFromJSDoc(i);(!s||e.last(s.parameters).symbol!==o)&&On(n,e.Diagnostics.A_rest_parameter_must_be_last_in_a_parameter_list)}}function r6(n){var r=ha(n.type),i=n.parent,o=n.parent.parent;if(e.isJSDocTypeExpression(n.parent)&&e.isJSDocParameterTag(o)){var s=e.getHostSignatureFromJSDoc(o),u=e.isJSDocCallbackTag(o.parent.parent);if(s||u){var L=u?e.lastOrUndefined(o.parent.parent.typeExpression.parameters):e.lastOrUndefined(s.parameters),G=e.getParameterSymbolFromJSDoc(o);if(!L||G&&L.symbol===G&&e.isRestParameter(L))return Vs(r)}}return e.isParameter(i)&&e.isJSDocFunctionType(i.parent)?Vs(r):xi(r)}function Zg(n){var r=e.getSourceFileOfNode(n),i=aa(r);if(!(i.flags&1)){i.deferredNodes=i.deferredNodes||new e.Map;var o=b(n);i.deferredNodes.set(o,n)}}function t6(n){var r=aa(n);r.deferredNodes&&r.deferredNodes.forEach(a6)}function a6(n){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkDeferredNode",{kind:n.kind,pos:n.pos,end:n.end});var r=Ee;switch(Ee=n,Ne=0,n.kind){case 206:case 207:case 208:case 163:case 278:r_(n);break;case 211:case 212:case 167:case 166:vP(n);break;case 170:case 171:r2(n);break;case 224:Tw(n);break;case 277:XR(n);break;case 276:QR(n);break}Ee=r,e.tracing===null||e.tracing===void 0||e.tracing.pop()}function wS(n){e.tracing===null||e.tracing===void 0||e.tracing.push("check","checkSourceFile",{path:n.path},!0),e.performance.mark("beforeCheck"),i6(n),e.performance.mark("afterCheck"),e.performance.measure("Check","beforeCheck","afterCheck"),e.tracing===null||e.tracing===void 0||e.tracing.pop()}function U2(n,r){if(r)return!1;switch(n){case 0:return!!Ie.noUnusedLocals;case 1:return!!Ie.noUnusedParameters;default:return e.Debug.assertNever(n)}}function V2(n){return pe.get(n.path)||e.emptyArray}function i6(n){var r=aa(n);if(!(r.flags&1)){if(e.skipTypeChecking(n,Ie,S))return;OF(n),e.clear(Qr),e.clear(lt),e.clear(ct),e.clear(Nt),e.forEach(n.statements,ki),ki(n.endOfFileToken),t6(n),e.isExternalOrCommonJsModule(n)&&sd(n),!n.isDeclarationFile&&(Ie.noUnusedLocals||Ie.noUnusedParameters)&&u2(V2(n),function(i,o,s){!e.containsParseError(i)&&U2(o,!!(i.flags&8388608))&&Ut.add(s)}),Ie.importsNotUsedAsValues===2&&!n.isDeclarationFile&&e.isExternalModule(n)&&Yw(n),e.isExternalOrCommonJsModule(n)&&G2(n),Qr.length&&(e.forEach(Qr,GM),e.clear(Qr)),lt.length&&(e.forEach(lt,BM),e.clear(lt)),ct.length&&(e.forEach(ct,jM),e.clear(ct)),Nt.length&&(e.forEach(Nt,JM),e.clear(Nt)),r.flags|=1}}function W2(n,r){try{return ae=r,o6(n)}finally{ae=void 0}}function o6(n){if(j2(),n){var r=Ut.getGlobalDiagnostics(),i=r.length;wS(n);var o=Ut.getDiagnostics(n.fileName),s=Ut.getGlobalDiagnostics();if(s!==r){var u=e.relativeComplement(r,s,e.compareDiagnostics);return e.concatenate(u,o)}else if(i===0&&s.length>0)return e.concatenate(s,o);return o}return e.forEach(S.getSourceFiles(),wS),Ut.getDiagnostics()}function s6(){return j2(),Ut.getGlobalDiagnostics()}function j2(){if(!ce)throw new Error("Trying to get diagnostics from a type checker that does not produce them.")}function l6(n,r){if(n.flags&16777216)return[];var i=e.createSymbolTable(),o=!1;return s(),i.delete("this"),Um(i);function s(){for(;n;){switch(n.locals&&!Cc(n)&&L(n.locals,r),n.kind){case 300:if(!e.isExternalModule(n))break;case 259:G(bt(n).exports,r&2623475);break;case 258:L(bt(n).exports,r&8);break;case 224:var me=n.name;me&&u(n.symbol,r);case 255:case 256:o||L(Yl(bt(n)),r&788968);break;case 211:var Re=n.name;Re&&u(n.symbol,r);break}e.introducesArgumentsExoticObject(n)&&u(be,r),o=e.isStatic(n),n=n.parent}L(Te,r)}function u(me,Re){if(e.getCombinedLocalAndExportSymbolFlags(me)&Re){var Ue=me.escapedName;i.has(Ue)||i.set(Ue,me)}}function L(me,Re){Re&&me.forEach(function(Ue){u(Ue,Re)})}function G(me,Re){Re&&me.forEach(function(Ue){!e.getDeclarationOfKind(Ue,273)&&!e.getDeclarationOfKind(Ue,272)&&u(Ue,Re)})}}function c6(n){return n.kind===79&&_h(n.parent)&&e.getNameOfDeclaration(n.parent)===n}function _h(n){switch(n.kind){case 161:case 255:case 256:case 257:case 258:case 340:case 333:case 334:return!0;case 265:return n.isTypeOnly;case 268:case 273:return n.parent.parent.isTypeOnly;default:return!1}}function H2(n){for(;n.parent.kind===159;)n=n.parent;return n.parent.kind===176}function u6(n){for(;n.parent.kind===204;)n=n.parent;return n.parent.kind===226}function J2(n,r){for(var i;n=e.getContainingClass(n),!(!n||(i=r(n))););return i}function f6(n){return!!e.findAncestor(n,function(r){return e.isConstructorDeclaration(r)&&e.nodeIsPresent(r.body)||e.isPropertyDeclaration(r)?!0:e.isClassLike(r)||e.isFunctionLikeDeclaration(r)?"quit":!1})}function FS(n,r){return!!J2(n,function(i){return i===r})}function d6(n){for(;n.parent.kind===159;)n=n.parent;if(n.parent.kind===263)return n.parent.moduleReference===n?n.parent:void 0;if(n.parent.kind===269)return n.parent.expression===n?n.parent:void 0}function fE(n){return d6(n)!==void 0}function p6(n){var r=e.getAssignmentDeclarationKind(n.parent.parent);switch(r){case 1:case 3:return bt(n.parent);case 4:case 2:case 5:return bt(n.parent.parent)}}function m6(n){for(var r=n.parent;e.isQualifiedName(r);)n=r,r=r.parent;if(r&&r.kind===198&&r.qualifier===n)return r}function K2(n){if(e.isDeclarationName(n))return bt(n.parent);if(e.isInJSFile(n)&&n.parent.kind===204&&n.parent===n.parent.parent.left&&!e.isPrivateIdentifier(n)&&!e.isJSDocMemberName(n)){var r=p6(n);if(r)return r}if(n.parent.kind===269&&e.isEntityNameExpression(n)){var i=fo(n,111551|788968|1920|2097152,!0);if(i&&i!==jn)return i}else if(e.isEntityName(n)&&fE(n)){var o=e.getAncestor(n,263);return e.Debug.assert(o!==void 0),af(n,!0)}if(e.isEntityName(n)){var s=m6(n);if(s){ha(s);var u=aa(n).resolvedSymbol;return u===jn?void 0:u}}for(;e.isRightSideOfQualifiedNameOrPropertyAccessOrJSDocMemberName(n);)n=n.parent;if(u6(n)){var L=0;n.parent.kind===226?(L=788968,e.isExpressionWithTypeArgumentsInClassExtendsClause(n.parent)&&(L|=111551)):L=1920,L|=2097152;var G=e.isEntityNameExpression(n)?fo(n,L):void 0;if(G)return G}if(n.parent.kind===335)return e.getParameterSymbolFromJSDoc(n.parent);if(n.parent.kind===161&&n.parent.parent.kind===339){e.Debug.assert(!e.isInJSFile(n));var me=e.getTypeParameterFromJsDoc(n.parent);return me&&me.symbol}if(e.isExpressionNode(n)){if(e.nodeIsMissing(n))return;var Re=e.findAncestor(n,e.or(e.isJSDocLinkLike,e.isJSDocNameReference,e.isJSDocMemberName)),L=Re?788968|1920|111551:111551;if(n.kind===79){if(e.isJSXTagName(n)&&F_(n)){var Ue=jT(n.parent);return Ue===jn?void 0:Ue}var Ke=fo(n,L,!1,!Re,e.getHostSignatureFromJSDoc(n));if(!Ke&&Re){var Qe=e.findAncestor(n,e.or(e.isClassLike,e.isInterfaceDeclaration));if(Qe)return dE(n,bt(Qe))}return Ke}else if(n.kind===204||n.kind===159){var yn=aa(n);return yn.resolvedSymbol?yn.resolvedSymbol:(n.kind===204?KL(n,0):zL(n,0),!yn.resolvedSymbol&&Re&&e.isQualifiedName(n)?dE(n):yn.resolvedSymbol)}else if(e.isJSDocMemberName(n))return dE(n)}else if(H2(n)){var L=n.parent.kind===176?788968:1920;return fo(n,L,!1,!0)}if(n.parent.kind===175)return fo(n,1)}function dE(n,r){if(e.isEntityName(n)){var i=788968|1920|111551,o=fo(n,i,!1,!0,e.getHostSignatureFromJSDoc(n));if(!o&&e.isIdentifier(n)&&r&&(o=Ji(Ro(Ls(r),n.escapedText,i))),o)return o}var s=e.isIdentifier(n)?r:dE(n.left),u=e.isIdentifier(n)?n.escapedText:n.right.escapedText;if(s){var L=s.flags&111551&&Gt(ft(s),"prototype"),G=L?ft(L):Lo(s);return Gt(G,u)}}function Sc(n,r){if(n.kind===300)return e.isExternalModule(n)?Ji(n.symbol):void 0;var i=n.parent,o=i.parent;if(!(n.flags&16777216)){if(c(n)){var s=bt(i);return e.isImportOrExportSpecifier(n.parent)&&n.parent.propertyName===n?PL(s):s}else if(e.isLiteralComputedPropertyDeclarationName(n))return bt(i.parent);if(n.kind===79){if(fE(n))return K2(n);if(i.kind===201&&o.kind===199&&n===i.propertyName){var u=rm(o),L=Gt(u,n.escapedText);if(L)return L}else if(e.isMetaProperty(i)){var G=rm(i),L=Gt(G,n.escapedText);if(L)return L;if(i.keywordToken===103)return sS(i).symbol}}switch(n.kind){case 79:case 80:case 204:case 159:return K2(n);case 108:var me=e.getThisContainer(n,!1);if(e.isFunctionLike(me)){var Re=lc(me);if(Re.thisParameter)return Re.thisParameter}if(e.isInExpressionContext(n))return Za(n).symbol;case 190:return ny(n).symbol;case 106:return Za(n).symbol;case 133:var Ue=n.parent;return Ue&&Ue.kind===169?Ue.parent.symbol:void 0;case 10:case 14:if(e.isExternalModuleImportEqualsDeclaration(n.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(n.parent.parent)===n||(n.parent.kind===264||n.parent.kind===270)&&n.parent.moduleSpecifier===n||e.isInJSFile(n)&&e.isRequireCall(n.parent,!1)||e.isImportCall(n.parent)||e.isLiteralTypeNode(n.parent)&&e.isLiteralImportTypeNode(n.parent.parent)&&n.parent.parent.argument===n.parent)return so(n,n,r);if(e.isCallExpression(i)&&e.isBindableObjectDefinePropertyCall(i)&&i.arguments[1]===n)return bt(i);case 8:var Ke=e.isElementAccessExpression(i)?i.argumentExpression===n?Xs(i.expression):void 0:e.isLiteralTypeNode(i)&&e.isIndexedAccessTypeNode(o)?ha(o.objectType):void 0;return Ke&&Gt(Ke,e.escapeLeadingUnderscores(n.text));case 88:case 98:case 38:case 84:return bt(n.parent);case 198:return e.isLiteralImportTypeNode(n)?Sc(n.argument.literal,r):void 0;case 93:return e.isExportAssignment(n.parent)?e.Debug.checkDefined(n.parent.symbol):void 0;case 100:case 103:return e.isMetaProperty(n.parent)?xA(n.parent).symbol:void 0;case 229:return Za(n).symbol;default:return}}}function _6(n){if(e.isIdentifier(n)&&e.isPropertyAccessExpression(n.parent)&&n.parent.name===n){var r=Md(n),i=Xs(n.parent.expression),o=i.flags&1048576?i.types:[i];return e.flatMap(o,function(s){return e.filter(Oi(s),function(u){return jo(r,u.keyType)})})}}function g6(n){if(n&&n.kind===292)return fo(n.name,111551|2097152)}function v6(n){return e.isExportSpecifier(n)?n.parent.parent.moduleSpecifier?Yd(n.parent.parent,n):fo(n.propertyName||n.name,111551|788968|1920|2097152):fo(n,111551|788968|1920|2097152)}function rm(n){if(e.isSourceFile(n)&&!e.isExternalModule(n)||n.flags&16777216)return le;var r=e.tryGetClassImplementingOrExtendingExpressionWithTypeArguments(n),i=r&&Bl(bt(r.class));if(e.isPartOfTypeNode(n)){var o=ha(n);return i?Ul(o,i.thisType):o}if(e.isExpressionNode(n))return z2(n);if(i&&!r.isImplements){var s=e.firstOrUndefined(Gl(i));return s?Ul(s,i.thisType):le}if(_h(n)){var u=bt(n);return Lo(u)}if(c6(n)){var u=Sc(n);return u?Lo(u):le}if(e.isDeclaration(n)){var u=bt(n);return ft(u)}if(c(n)){var u=Sc(n);return u?ft(u):le}if(e.isBindingPattern(n))return Do(n.parent,!0)||le;if(fE(n)){var u=Sc(n);if(u){var L=Lo(u);return L!==le?L:ft(u)}}return e.isMetaProperty(n.parent)&&n.parent.keywordToken===n.kind?xA(n.parent):le}function pE(n){if(e.Debug.assert(n.kind===203||n.kind===202),n.parent.kind===242){var r=dh(n.parent);return nm(n,r||le)}if(n.parent.kind===219){var r=Xs(n.parent.right);return nm(n,r||le)}if(n.parent.kind===291){var i=e.cast(n.parent.parent,e.isObjectLiteralExpression),o=pE(i)||le,s=e.indexOfNode(i.properties,n.parent);return VA(i,o,s)}var u=e.cast(n.parent,e.isArrayLiteralExpression),L=pE(u)||le,G=ld(65,L,In,n.parent)||le;return WA(u,L,u.elements.indexOf(n),G)}function h6(n){var r=pE(e.cast(n.parent.parent,e.isAssignmentPattern));return r&&Gt(r,n.escapedText)}function z2(n){return e.isRightSideOfQualifiedNameOrPropertyAccess(n)&&(n=n.parent),Il(Xs(n))}function y6(n){var r=bt(n.parent);return e.isStatic(n)?ft(r):Lo(r)}function E6(n){var r=n.name;switch(r.kind){case 79:return Tc(e.idText(r));case 8:case 10:return Tc(r.text);case 160:var i=Rf(r);return ps(i,12288)?i:dr;default:return e.Debug.fail("Unsupported property name.")}}function GS(n){n=zs(n);var r=e.createSymbolTable(Hi(n)),i=sa(n,0).length?Zo:sa(n,1).length?fn:void 0;return i&&e.forEach(Hi(i),function(o){r.has(o.escapedName)||r.set(o.escapedName,o)}),du(r)}function BS(n){return e.typeHasCallOrConstructSignatures(n,Pe)}function q2(n){var r=b6(n);return r?e.flatMap(r,q2):[n]}function b6(n){if(e.getCheckFlags(n)&6)return e.mapDefined(ja(n).containingType.types,function(u){return Gt(u,n.escapedName)});if(n.flags&33554432){var r=n,i=r.leftSpread,o=r.rightSpread,s=r.syntheticOrigin;return i?[i,o]:s?[s]:e.singleElementArray(T6(n))}}function T6(n){for(var r,i=n;i=ja(i).target;)r=i;return r}function S6(n){if(e.isGeneratedIdentifier(n))return!1;var r=e.getParseTreeNode(n,e.isIdentifier);if(!r)return!1;var i=r.parent;if(!i)return!1;var o=(e.isPropertyAccessExpression(i)||e.isPropertyAssignment(i))&&i.name===r;return!o&&gh(r)===be}function D6(n){var r=so(n.parent,n);if(!r||e.isShorthandAmbientModuleSymbol(r))return!0;var i=us(r);r=ut(r);var o=ja(r);return o.exportsSomeValue===void 0&&(o.exportsSomeValue=i?!!(r.flags&111551):e.forEachEntry(tc(r),s)),o.exportsSomeValue;function s(u){return u=Yi(u),u&&!!(u.flags&111551)}}function L6(n){return e.isModuleOrEnumDeclaration(n.parent)&&n===n.parent.name}function A6(n,r){var i,o=e.getParseTreeNode(n,e.isIdentifier);if(o){var s=gh(o,L6(o));if(s){if(s.flags&1048576){var u=Ji(s.exportSymbol);if(!r&&u.flags&944&&!(u.flags&3))return;s=u}var L=hl(s);if(L){if(L.flags&512&&((i=L.valueDeclaration)===null||i===void 0?void 0:i.kind)===300){var G=L.valueDeclaration,me=e.getSourceFileOfNode(o),Re=G!==me;return Re?void 0:G}return e.findAncestor(o.parent,function(Ue){return e.isModuleOrEnumDeclaration(Ue)&&bt(Ue)===L})}}}}function C6(n){if(n.generatedImportReference)return n.generatedImportReference;var r=e.getParseTreeNode(n,e.isIdentifier);if(r){var i=gh(r);if(jc(i,111551)&&!Nc(i))return rc(i)}}function x6(n){return n.valueDeclaration&&e.isBindingElement(n.valueDeclaration)&&e.walkUpBindingElementsAndPatterns(n.valueDeclaration).parent.kind===290}function X2(n){if(n.flags&418&&n.valueDeclaration&&!e.isSourceFile(n.valueDeclaration)){var r=ja(n);if(r.isDeclarationWithCollidingName===void 0){var i=e.getEnclosingBlockScopeContainer(n.valueDeclaration);if(e.isStatementWithLocals(i)||x6(n)){var o=aa(n.valueDeclaration);if(Fo(i.parent,n.escapedName,111551,void 0,void 0,!1))r.isDeclarationWithCollidingName=!0;else if(o.flags&262144){var s=o.flags&524288,u=e.isIterationStatement(i,!1),L=i.kind===233&&e.isIterationStatement(i.parent,!1);r.isDeclarationWithCollidingName=!e.isBlockScopedContainerTopLevel(i)&&(!s||!u&&!L)}else r.isDeclarationWithCollidingName=!1}}return r.isDeclarationWithCollidingName}return!1}function I6(n){if(!e.isGeneratedIdentifier(n)){var r=e.getParseTreeNode(n,e.isIdentifier);if(r){var i=gh(r);if(i&&X2(i))return i.valueDeclaration}}}function N6(n){var r=e.getParseTreeNode(n,e.isDeclaration);if(r){var i=bt(r);if(i)return X2(i)}return!1}function Y2(n){switch(n.kind){case 263:return mE(bt(n)||jn);case 265:case 266:case 268:case 273:var r=bt(n)||jn;return mE(r)&&!Nc(r);case 270:var i=n.exportClause;return!!i&&(e.isNamespaceExport(i)||e.some(i.elements,Y2));case 269:return n.expression&&n.expression.kind===79?mE(bt(n)||jn):!0}return!1}function k6(n){var r=e.getParseTreeNode(n,e.isImportEqualsDeclaration);if(r===void 0||r.parent.kind!==300||!e.isInternalModuleImportEqualsDeclaration(r))return!1;var i=mE(bt(r));return i&&r.moduleReference&&!e.nodeIsMissing(r.moduleReference)}function mE(n){var r=Wo(n);return r===jn?!0:!!(r.flags&111551)&&(e.shouldPreserveConstEnums(Ie)||!$g(r))}function $g(n){return mS(n)||!!n.constEnumOnlyModule}function _E(n,r){if(Vf(n)){var i=bt(n),o=i&&ja(i);if(o==null?void 0:o.referenced)return!0;var s=ja(i).target;if(s&&e.getEffectiveModifierFlags(n)&1&&s.flags&111551&&(e.shouldPreserveConstEnums(Ie)||!$g(s)))return!0}return r?!!e.forEachChild(n,function(u){return _E(u,r)}):!1}function Q2(n){if(e.nodeIsPresent(n.body)){if(e.isGetAccessor(n)||e.isSetAccessor(n))return!1;var r=bt(n),i=Ju(r);return i.length>1||i.length===1&&i[0].declaration!==n}return!1}function Z2(n){return!!ze&&!_m(n)&&!e.isJSDocParameterTag(n)&&!!n.initializer&&!e.hasSyntacticModifier(n,16476)}function R6(n){return ze&&_m(n)&&!n.initializer&&e.hasSyntacticModifier(n,16476)}function O6(n){return!!ze&&_m(n)&&!n.initializer}function P6(n){var r=e.getParseTreeNode(n,e.isFunctionDeclaration);if(!r)return!1;var i=bt(r);return!i||!(i.flags&16)?!1:!!e.forEachEntry(Ls(i),function(o){return o.flags&111551&&o.valueDeclaration&&e.isPropertyAccessExpression(o.valueDeclaration)})}function M6(n){var r=e.getParseTreeNode(n,e.isFunctionDeclaration);if(!r)return e.emptyArray;var i=bt(r);return i&&Hi(ft(i))||e.emptyArray}function o_(n){var r,i=n.id||0;return i<0||i>=ql.length?0:((r=ql[i])===null||r===void 0?void 0:r.flags)||0}function gE(n){return F2(n.parent),aa(n).enumMemberValue}function $2(n){switch(n.kind){case 294:case 204:case 205:return!0}return!1}function US(n){if(n.kind===294)return gE(n);var r=aa(n).resolvedSymbol;if(r&&r.flags&8){var i=r.valueDeclaration;if(e.isEnumConst(i.parent))return gE(i)}}function VS(n){return!!(n.flags&524288)&&sa(n,0).length>0}function w6(n,r){var i,o,s=e.getParseTreeNode(n,e.isEntityName);if(!s||r&&(r=e.getParseTreeNode(r),!r))return e.TypeReferenceSerializationKind.Unknown;var u=!1;if(e.isQualifiedName(s)){var L=fo(e.getFirstIdentifier(s),111551,!0,!0,r);u=!!((i=L==null?void 0:L.declarations)===null||i===void 0?void 0:i.every(e.isTypeOnlyImportOrExportDeclaration))}var G=fo(s,111551,!0,!0,r),me=G&&G.flags&2097152?Wo(G):G;u||(u=!!((o=G==null?void 0:G.declarations)===null||o===void 0?void 0:o.every(e.isTypeOnlyImportOrExportDeclaration)));var Re=fo(s,788968,!0,!1,r);if(me&&me===Re){var Ue=_b(!1);if(Ue&&me===Ue)return e.TypeReferenceSerializationKind.Promise;var Ke=ft(me);if(Ke&&lp(Ke))return u?e.TypeReferenceSerializationKind.TypeWithCallSignature:e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue}if(!Re)return u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown;var Qe=Lo(Re);return Qe===le?u?e.TypeReferenceSerializationKind.ObjectType:e.TypeReferenceSerializationKind.Unknown:Qe.flags&3?e.TypeReferenceSerializationKind.ObjectType:ps(Qe,16384|98304|131072)?e.TypeReferenceSerializationKind.VoidNullableOrNeverType:ps(Qe,528)?e.TypeReferenceSerializationKind.BooleanType:ps(Qe,296)?e.TypeReferenceSerializationKind.NumberLikeType:ps(Qe,2112)?e.TypeReferenceSerializationKind.BigIntLikeType:ps(Qe,402653316)?e.TypeReferenceSerializationKind.StringLikeType:_i(Qe)?e.TypeReferenceSerializationKind.ArrayLikeType:ps(Qe,12288)?e.TypeReferenceSerializationKind.ESSymbolType:VS(Qe)?e.TypeReferenceSerializationKind.TypeWithCallSignature:rl(Qe)?e.TypeReferenceSerializationKind.ArrayLikeType:e.TypeReferenceSerializationKind.ObjectType}function F6(n,r,i,o,s){var u=e.getParseTreeNode(n,e.isVariableLikeOrAccessor);if(!u)return e.factory.createToken(129);var L=bt(u),G=L&&!(L.flags&(2048|131072))?vp(ft(L)):le;return G.flags&8192&&G.symbol===L&&(i|=1048576),s&&(G=If(G)),Be.typeToTypeNode(G,r,i|1024,o)}function G6(n,r,i,o){var s=e.getParseTreeNode(n,e.isFunctionLike);if(!s)return e.factory.createToken(129);var u=lc(s);return Be.typeToTypeNode(eo(u),r,i|1024,o)}function B6(n,r,i,o){var s=e.getParseTreeNode(n,e.isExpression);if(!s)return e.factory.createToken(129);var u=kl(z2(s));return Be.typeToTypeNode(u,r,i|1024,o)}function U6(n){return Te.has(e.escapeLeadingUnderscores(n))}function gh(n,r){var i=aa(n).resolvedSymbol;if(i)return i;var o=n;if(r){var s=n.parent;e.isDeclaration(s)&&n===s.name&&(o=_f(s))}return Fo(o,n.escapedText,111551|1048576|2097152,void 0,void 0,!0)}function V6(n){if(!e.isGeneratedIdentifier(n)){var r=e.getParseTreeNode(n,e.isIdentifier);if(r){var i=gh(r);if(i)return _c(i).valueDeclaration}}}function W6(n){return e.isDeclarationReadonly(n)||e.isVariableDeclaration(n)&&e.isVarConst(n)?gp(ft(bt(n))):!1}function j6(n,r,i){var o=n.flags&1024?Be.symbolToExpression(n.symbol,111551,r,void 0,i):n===Or?e.factory.createTrue():n===Tt&&e.factory.createFalse();if(o)return o;var s=n.value;return typeof s=="object"?e.factory.createBigIntLiteral(s):typeof s=="number"?e.factory.createNumericLiteral(s):e.factory.createStringLiteral(s)}function H6(n,r){var i=ft(bt(n));return j6(i,n,r)}function eC(n){return n?(go(n),e.getSourceFileOfNode(n).localJsxFactory||nn):nn}function WS(n){if(n){var r=e.getSourceFileOfNode(n);if(r){if(r.localJsxFragmentFactory)return r.localJsxFragmentFactory;var i=r.pragmas.get("jsxfrag"),o=e.isArray(i)?i[0]:i;if(o)return r.localJsxFragmentFactory=e.parseIsolatedEntityName(o.arguments.factory,je),r.localJsxFragmentFactory}}if(Ie.jsxFragmentFactory)return e.parseIsolatedEntityName(Ie.jsxFragmentFactory,je)}function J6(){var n=S.getResolvedTypeReferenceDirectives(),r;return n&&(r=new e.Map,n.forEach(function(me,Re){if(!(!me||!me.resolvedFileName)){var Ue=S.getSourceFile(me.resolvedFileName);Ue&&G(Ue,Re)}})),{getReferencedExportContainer:A6,getReferencedImportDeclaration:C6,getReferencedDeclarationWithCollidingName:I6,isDeclarationWithCollidingName:N6,isValueAliasDeclaration:function(me){var Re=e.getParseTreeNode(me);return Re?Y2(Re):!0},hasGlobalName:U6,isReferencedAliasDeclaration:function(me,Re){var Ue=e.getParseTreeNode(me);return Ue?_E(Ue,Re):!0},getNodeCheckFlags:function(me){var Re=e.getParseTreeNode(me);return Re?o_(Re):0},isTopLevelValueImportEqualsWithEntityName:k6,isDeclarationVisible:Kc,isImplementationOfOverload:Q2,isRequiredInitializedParameter:Z2,isOptionalUninitializedParameterProperty:R6,isExpandoFunctionDeclaration:P6,getPropertiesOfContainerFunction:M6,createTypeOfDeclaration:F6,createReturnTypeOfSignatureDeclaration:G6,createTypeOfExpression:B6,createLiteralConstValue:H6,isSymbolAccessible:xu,isEntityNameVisible:Qf,getConstantValue:function(me){var Re=e.getParseTreeNode(me,$2);return Re?US(Re):void 0},collectLinkedAliases:Ad,getReferencedValueDeclaration:V6,getTypeReferenceSerializationKind:w6,isOptionalParameter:_m,moduleExportsSomeValue:D6,isArgumentsLocalBinding:S6,getExternalModuleFileFromDeclaration:function(me){var Re=e.getParseTreeNode(me,e.hasPossibleExternalModuleReference);return Re&&jS(Re)},getTypeReferenceDirectivesForEntityName:s,getTypeReferenceDirectivesForSymbol:u,isLiteralConstDeclaration:W6,isLateBound:function(me){var Re=e.getParseTreeNode(me,e.isDeclaration),Ue=Re&&bt(Re);return!!(Ue&&e.getCheckFlags(Ue)&4096)},getJsxFactoryEntity:eC,getJsxFragmentFactoryEntity:WS,getAllAccessorDeclarations:function(me){me=e.getParseTreeNode(me,e.isGetOrSetAccessorDeclaration);var Re=me.kind===171?170:171,Ue=e.getDeclarationOfKind(bt(me),Re),Ke=Ue&&Ue.pos3})||On(n,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,L,4):u&1048576?e.some(Ju(G),function(me){return Ll(me)>4})||On(n,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,L,5):u&1024&&(e.some(Ju(G),function(me){return Ll(me)>2})||On(n,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_with_2_parameters_which_is_not_compatible_with_the_one_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,L,3)):On(n,e.Diagnostics.This_syntax_requires_an_imported_helper_named_1_which_does_not_exist_in_0_Consider_upgrading_your_version_of_0,e.externalHelpersModuleNameText,L)}}F|=r}}}function z6(n){switch(n){case 1:return"__extends";case 2:return"__assign";case 4:return"__rest";case 8:return"__decorate";case 16:return"__metadata";case 32:return"__param";case 64:return"__awaiter";case 128:return"__generator";case 256:return"__values";case 512:return"__read";case 1024:return"__spreadArray";case 2048:return"__await";case 4096:return"__asyncGenerator";case 8192:return"__asyncDelegator";case 16384:return"__asyncValues";case 32768:return"__exportStar";case 65536:return"__importStar";case 131072:return"__importDefault";case 262144:return"__makeTemplateObject";case 524288:return"__classPrivateFieldGet";case 1048576:return"__classPrivateFieldSet";case 2097152:return"__createBinding";default:return e.Debug.fail("Unrecognized helper")}}function q6(n,r){return re||(re=mc(n,e.externalHelpersModuleNameText,e.Diagnostics.This_syntax_requires_an_imported_helper_but_module_0_cannot_be_found,r)||jn),re}function zu(n){return X6(n)||Y6(n)}function X6(n){if(!n.decorators)return!1;if(e.nodeCanBeDecorated(n,n.parent,n.parent.parent)){if(n.kind===170||n.kind===171){var r=e.getAllAccessorDeclarations(n.parent.members,n);if(r.firstAccessor.decorators&&n===r.secondAccessor)return js(n,e.Diagnostics.Decorators_cannot_be_applied_to_multiple_get_Slashset_accessors_of_the_same_name)}}else return n.kind===167&&!e.nodeIsPresent(n.body)?js(n,e.Diagnostics.A_decorator_can_only_decorate_a_method_implementation_not_an_overload):js(n,e.Diagnostics.Decorators_are_not_valid_here);return!1}function Y6(n){var r=Q6(n);if(r!==void 0)return r;for(var i,o,s,u,L,G=0,me=0,Re=n.modifiers;me1||n.modifiers[0].kind!==r}function $6(n,r){switch(n.kind){case 167:case 254:case 211:case 212:return!1}return mt(r,e.Diagnostics._0_modifier_cannot_be_used_here,"async")}function Am(n,r){return r===void 0&&(r=e.Diagnostics.Trailing_comma_not_allowed),n&&n.hasTrailingComma?Wd(n[0],n.end-",".length,",".length,r):!1}function nC(n,r){if(n&&n.length===0){var i=n.pos-"<".length,o=e.skipTrivia(r.text,n.end)+">".length;return Wd(r,i,o-i,e.Diagnostics.Type_parameter_list_cannot_be_empty)}return!1}function eF(n){for(var r=!1,i=n.length,o=0;o=3){var r=n.body&&e.isBlock(n.body)&&e.findUseStrictPrologue(n.body.statements);if(r){var i=nF(n.parameters);if(e.length(i)){e.forEach(i,function(s){e.addRelatedInfo(On(s,e.Diagnostics.This_parameter_is_not_allowed_with_use_strict_directive),e.createDiagnosticForNode(r,e.Diagnostics.use_strict_directive_used_here))});var o=i.map(function(s,u){return u===0?e.createDiagnosticForNode(s,e.Diagnostics.Non_simple_parameter_declared_here):e.createDiagnosticForNode(s,e.Diagnostics.and_here)});return e.addRelatedInfo.apply(void 0,Mr([On(r,e.Diagnostics.use_strict_directive_cannot_be_used_with_non_simple_parameter_list)],o,!1)),!0}}}return!1}function vE(n){var r=e.getSourceFileOfNode(n);return zu(n)||nC(n.typeParameters,r)||eF(n.parameters)||aF(n,r)||e.isFunctionLikeDeclaration(n)&&rF(n)}function tF(n){var r=e.getSourceFileOfNode(n);return fF(n)||nC(n.typeParameters,r)}function aF(n,r){if(!e.isArrowFunction(n))return!1;var i=n.equalsGreaterThanToken,o=e.getLineAndCharacterOfPosition(r,i.pos).line,s=e.getLineAndCharacterOfPosition(r,i.end).line;return o!==s&&mt(i,e.Diagnostics.Line_terminator_not_permitted_before_arrow)}function iF(n){var r=n.parameters[0];if(n.parameters.length!==1)return mt(r?r.name:n,e.Diagnostics.An_index_signature_must_have_exactly_one_parameter);if(Am(n.parameters,e.Diagnostics.An_index_signature_cannot_have_a_trailing_comma),r.dotDotDotToken)return mt(r.dotDotDotToken,e.Diagnostics.An_index_signature_cannot_have_a_rest_parameter);if(e.hasEffectiveModifiers(r))return mt(r.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier);if(r.questionToken)return mt(r.questionToken,e.Diagnostics.An_index_signature_parameter_cannot_have_a_question_mark);if(r.initializer)return mt(r.name,e.Diagnostics.An_index_signature_parameter_cannot_have_an_initializer);if(!r.type)return mt(r.name,e.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation);var i=ha(r.type);return P_(i,function(o){return!!(o.flags&8576)})||$h(i)?mt(r.name,e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead):Nf(i,zh)?n.type?!1:mt(n,e.Diagnostics.An_index_signature_must_have_a_type_annotation):mt(r.name,e.Diagnostics.An_index_signature_parameter_type_must_be_string_number_symbol_or_a_template_literal_type)}function oF(n){return zu(n)||iF(n)}function sF(n,r){if(r&&r.length===0){var i=e.getSourceFileOfNode(n),o=r.pos-"<".length,s=e.skipTrivia(i.text,r.end)+">".length;return Wd(i,o,s-o,e.Diagnostics.Type_argument_list_cannot_be_empty)}return!1}function vh(n,r){return Am(r)||sF(n,r)}function lF(n){return n.questionDotToken||n.flags&32?mt(n.template,e.Diagnostics.Tagged_template_expressions_are_not_permitted_in_an_optional_chain):!1}function cF(n){if(n)for(var r=0,i=n;r1)return js(u.types[1],e.Diagnostics.Classes_can_only_extend_a_single_class);r=!0}else{if(e.Debug.assert(u.token===117),i)return js(u,e.Diagnostics.implements_clause_already_seen);i=!0}tC(u)}}function dF(n){var r=!1;if(n.heritageClauses)for(var i=0,o=n.heritageClauses;i1){var i=n.kind===241?e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement:e.Diagnostics.Only_a_single_variable_declaration_is_allowed_in_a_for_of_statement;return js(u.declarations[1],i)}var G=L[0];if(G.initializer){var i=n.kind===241?e.Diagnostics.The_variable_declaration_of_a_for_in_statement_cannot_have_an_initializer:e.Diagnostics.The_variable_declaration_of_a_for_of_statement_cannot_have_an_initializer;return mt(G.name,i)}if(G.type){var i=n.kind===241?e.Diagnostics.The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation:e.Diagnostics.The_left_hand_side_of_a_for_of_statement_cannot_use_a_type_annotation;return mt(G,i)}}}return!1}function vF(n){if(!(n.flags&8388608)&&n.parent.kind!==180&&n.parent.kind!==256){if(je<1)return mt(n.name,e.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher);if(je<2&&e.isPrivateIdentifier(n.name))return mt(n.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(n.body===void 0&&!e.hasSyntacticModifier(n,128))return Wd(n,n.end-1,";".length,e.Diagnostics._0_expected,"{")}if(n.body){if(e.hasSyntacticModifier(n,128))return mt(n,e.Diagnostics.An_abstract_accessor_cannot_have_an_implementation);if(n.parent.kind===180||n.parent.kind===256)return mt(n.body,e.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts)}if(n.typeParameters)return mt(n.name,e.Diagnostics.An_accessor_cannot_have_type_parameters);if(!hF(n))return mt(n.name,n.kind===170?e.Diagnostics.A_get_accessor_cannot_have_parameters:e.Diagnostics.A_set_accessor_must_have_exactly_one_parameter);if(n.kind===171){if(n.type)return mt(n.name,e.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation);var r=e.Debug.checkDefined(e.getSetAccessorValueParameter(n),"Return value does not match parameter count assertion.");if(r.dotDotDotToken)return mt(r.dotDotDotToken,e.Diagnostics.A_set_accessor_cannot_have_rest_parameter);if(r.questionToken)return mt(r.questionToken,e.Diagnostics.A_set_accessor_cannot_have_an_optional_parameter);if(r.initializer)return mt(n.name,e.Diagnostics.A_set_accessor_parameter_cannot_have_an_initializer)}return!1}function hF(n){return KS(n)||n.parameters.length===(n.kind===170?0:1)}function KS(n){if(n.parameters.length===(n.kind===170?1:2))return e.getThisParameter(n)}function yF(n){if(n.operator===152){if(n.type.kind!==149)return mt(n.type,e.Diagnostics._0_expected,e.tokenToString(149));var r=e.walkUpParenthesizedTypes(n.parent);switch(e.isInJSFile(r)&&e.isJSDocTypeExpression(r)&&(r=r.parent,e.isJSDocTypeTag(r)&&(r=r.parent.parent)),r.kind){case 252:var i=r;if(i.name.kind!==79)return mt(n,e.Diagnostics.unique_symbol_types_may_not_be_used_on_a_variable_declaration_with_a_binding_name);if(!e.isVariableDeclarationInVariableStatement(i))return mt(n,e.Diagnostics.unique_symbol_types_are_only_allowed_on_variables_in_a_variable_statement);if(!(i.parent.flags&2))return mt(r.name,e.Diagnostics.A_variable_whose_type_is_a_unique_symbol_type_must_be_const);break;case 165:if(!e.isStatic(r)||!e.hasEffectiveReadonlyModifier(r))return mt(r.name,e.Diagnostics.A_property_of_a_class_whose_type_is_a_unique_symbol_type_must_be_both_static_and_readonly);break;case 164:if(!e.hasSyntacticModifier(r,64))return mt(r.name,e.Diagnostics.A_property_of_an_interface_or_type_literal_whose_type_is_a_unique_symbol_type_must_be_readonly);break;default:return mt(n,e.Diagnostics.unique_symbol_types_are_not_allowed_here)}}else if(n.operator===143&&n.type.kind!==181&&n.type.kind!==182)return js(n,e.Diagnostics.readonly_type_modifier_is_only_permitted_on_array_and_tuple_literal_types,e.tokenToString(149))}function X_(n,r){if(Pc(n))return mt(n,r)}function sC(n){if(vE(n))return!0;if(n.kind===167){if(n.parent.kind===203){if(n.modifiers&&!(n.modifiers.length===1&&e.first(n.modifiers).kind===130))return js(n,e.Diagnostics.Modifiers_cannot_appear_here);if(aC(n.questionToken,e.Diagnostics.An_object_member_cannot_be_declared_optional))return!0;if(iC(n.exclamationToken,e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context))return!0;if(n.body===void 0)return Wd(n,n.end-1,";".length,e.Diagnostics._0_expected,"{")}if(JS(n))return!0}if(e.isClassLike(n.parent)){if(je<2&&e.isPrivateIdentifier(n.name))return mt(n.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher);if(n.flags&8388608)return X_(n.name,e.Diagnostics.A_computed_property_name_in_an_ambient_context_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(n.kind===167&&!n.body)return X_(n.name,e.Diagnostics.A_computed_property_name_in_a_method_overload_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}else{if(n.parent.kind===256)return X_(n.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type);if(n.parent.kind===180)return X_(n.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type)}}function EF(n){for(var r=n;r;){if(e.isFunctionLikeOrClassStaticBlockDeclaration(r))return mt(n,e.Diagnostics.Jump_target_cannot_cross_function_boundary);switch(r.kind){case 248:if(n.label&&r.label.escapedText===n.label.escapedText){var i=n.kind===243&&!e.isIterationStatement(r.statement,!0);return i?mt(n,e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement):!1}break;case 247:if(n.kind===244&&!n.label)return!1;break;default:if(e.isIterationStatement(r,!1)&&!n.label)return!1;break}r=r.parent}if(n.label){var o=n.kind===244?e.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement:e.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement;return mt(n,o)}else{var o=n.kind===244?e.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement:e.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement;return mt(n,o)}}function bF(n){if(n.dotDotDotToken){var r=n.parent.elements;if(n!==e.last(r))return mt(n,e.Diagnostics.A_rest_element_must_be_last_in_a_destructuring_pattern);if(Am(r,e.Diagnostics.A_rest_parameter_or_binding_pattern_may_not_have_a_trailing_comma),n.propertyName)return mt(n.name,e.Diagnostics.A_rest_element_cannot_have_a_property_name)}if(n.dotDotDotToken&&n.initializer)return Wd(n,n.initializer.pos-1,1,e.Diagnostics.A_rest_element_cannot_have_an_initializer)}function lC(n){return e.isStringOrNumericLiteralLike(n)||n.kind===217&&n.operator===40&&n.operand.kind===8}function TF(n){return n.kind===9||n.kind===217&&n.operator===40&&n.operand.kind===9}function SF(n){if((e.isPropertyAccessExpression(n)||e.isElementAccessExpression(n)&&lC(n.argumentExpression))&&e.isEntityNameExpression(n.expression))return!!(Ns(n).flags&1024)}function cC(n){var r=n.initializer;if(r){var i=!(lC(r)||SF(r)||r.kind===110||r.kind===95||TF(r)),o=e.isDeclarationReadonly(n)||e.isVariableDeclaration(n)&&e.isVarConst(n);if(o&&!n.type){if(i)return mt(r,e.Diagnostics.A_const_initializer_in_an_ambient_context_must_be_a_string_or_numeric_literal_or_literal_enum_reference)}else return mt(r,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts);if(!o||i)return mt(r,e.Diagnostics.Initializers_are_not_allowed_in_ambient_contexts)}}function DF(n){if(n.parent.parent.kind!==241&&n.parent.parent.kind!==242){if(n.flags&8388608)cC(n);else if(!n.initializer){if(e.isBindingPattern(n.name)&&!e.isBindingPattern(n.parent))return mt(n,e.Diagnostics.A_destructuring_declaration_must_have_an_initializer);if(e.isVarConst(n))return mt(n,e.Diagnostics.const_declarations_must_be_initialized)}}if(n.exclamationToken&&(n.parent.parent.kind!==235||!n.type||n.initializer||n.flags&8388608)){var r=n.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:n.type?e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context:e.Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;return mt(n.exclamationToken,r)}var i=e.getEmitModuleKind(Ie);i0}function js(n,r,i,o,s){var u=e.getSourceFileOfNode(n);if(!tm(u)){var L=e.getSpanOfTokenAtPosition(u,n.pos);return Ut.add(e.createFileDiagnostic(u,L.start,L.length,r,i,o,s)),!0}return!1}function Wd(n,r,i,o,s,u,L){var G=e.getSourceFileOfNode(n);return tm(G)?!1:(Ut.add(e.createFileDiagnostic(G,r,i,o,s,u,L)),!0)}function CF(n,r,i,o,s,u){var L=e.getSourceFileOfNode(r);return tm(L)?!1:(wo(n,r,i,o,s,u),!0)}function mt(n,r,i,o,s){var u=e.getSourceFileOfNode(n);return tm(u)?!1:(Ut.add(e.createDiagnosticForNode(n,r,i,o,s)),!0)}function xF(n){var r=e.isInJSFile(n)?e.getJSDocTypeParameterDeclarations(n):void 0,i=n.typeParameters||r&&e.firstOrUndefined(r);if(i){var o=i.pos===i.end?i.pos:e.skipTrivia(e.getSourceFileOfNode(n).text,i.pos);return Wd(n,o,i.end-o,e.Diagnostics.Type_parameters_cannot_appear_on_a_constructor_declaration)}}function IF(n){var r=e.getEffectiveReturnTypeNode(n);if(r)return mt(r,e.Diagnostics.Type_annotation_cannot_appear_on_a_constructor_declaration)}function NF(n){if(e.isClassLike(n.parent)){if(e.isStringLiteral(n.name)&&n.name.text==="constructor")return mt(n.name,e.Diagnostics.Classes_may_not_have_a_field_named_constructor);if(X_(n.name,e.Diagnostics.A_computed_property_name_in_a_class_property_declaration_must_have_a_simple_literal_type_or_a_unique_symbol_type))return!0;if(je<2&&e.isPrivateIdentifier(n.name))return mt(n.name,e.Diagnostics.Private_identifiers_are_only_available_when_targeting_ECMAScript_2015_and_higher)}else if(n.parent.kind===256){if(X_(n.name,e.Diagnostics.A_computed_property_name_in_an_interface_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(n.initializer)return mt(n.initializer,e.Diagnostics.An_interface_property_cannot_have_an_initializer)}else if(n.parent.kind===180){if(X_(n.name,e.Diagnostics.A_computed_property_name_in_a_type_literal_must_refer_to_an_expression_whose_type_is_a_literal_type_or_a_unique_symbol_type))return!0;if(n.initializer)return mt(n.initializer,e.Diagnostics.A_type_literal_property_cannot_have_an_initializer)}if(n.flags&8388608&&cC(n),e.isPropertyDeclaration(n)&&n.exclamationToken&&(!e.isClassLike(n.parent)||!n.type||n.initializer||n.flags&8388608||e.isStatic(n)||e.hasAbstractModifier(n))){var r=n.initializer?e.Diagnostics.Declarations_with_initializers_cannot_also_have_definite_assignment_assertions:n.type?e.Diagnostics.A_definite_assignment_assertion_is_not_permitted_in_this_context:e.Diagnostics.Declarations_with_definite_assignment_assertions_must_also_have_type_annotations;return mt(n.exclamationToken,r)}}function kF(n){return n.kind===256||n.kind===257||n.kind===264||n.kind===263||n.kind===270||n.kind===269||n.kind===262||e.hasSyntacticModifier(n,2|1|512)?!1:js(n,e.Diagnostics.Top_level_declarations_in_d_ts_files_must_start_with_either_a_declare_or_export_modifier)}function RF(n){for(var r=0,i=n.statements;r=1?r=e.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher_Use_the_syntax_0:e.isChildOfNodeWithKind(n,194)?r=e.Diagnostics.Octal_literal_types_must_use_ES2015_syntax_Use_the_syntax_0:e.isChildOfNodeWithKind(n,294)&&(r=e.Diagnostics.Octal_literals_are_not_allowed_in_enums_members_initializer_Use_the_syntax_0),r){var i=e.isPrefixUnaryExpression(n.parent)&&n.parent.operator===40,o=(i?"-":"")+"0o"+n.text;return mt(i?n.parent:n,r,o)}}return PF(n),!1}function PF(n){if(!(n.numericLiteralFlags&16||n.text.length<=15||n.text.indexOf(".")!==-1)){var r=+e.getTextOfNode(n);r<=Math.pow(2,53)-1&&r+1>r||Rs(!1,e.createDiagnosticForNode(n,e.Diagnostics.Numeric_literals_with_absolute_values_equal_to_2_53_or_greater_are_too_large_to_be_represented_accurately_as_integers))}}function MF(n){var r=e.isLiteralTypeNode(n.parent)||e.isPrefixUnaryExpression(n.parent)&&e.isLiteralTypeNode(n.parent.parent);return!!(!r&&je<7&&mt(n,e.Diagnostics.BigInt_literals_are_not_available_when_targeting_lower_than_ES2020))}function wF(n,r,i,o,s){var u=e.getSourceFileOfNode(n);if(!tm(u)){var L=e.getSpanOfTokenAtPosition(u,n.pos);return Ut.add(e.createFileDiagnostic(u,e.textSpanEnd(L),0,r,i,o,s)),!0}return!1}function FF(){return No||(No=[],Te.forEach(function(n,r){a.test(r)&&No.push(n)})),No}function GF(n){return n.isTypeOnly&&n.name&&n.namedBindings?mt(n,e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both):!1}function BF(n){if(Sn===e.ModuleKind.ES2015)return mt(n,e.Diagnostics.Dynamic_imports_are_only_supported_when_the_module_flag_is_set_to_es2020_esnext_commonjs_amd_system_or_umd);if(n.typeArguments)return mt(n,e.Diagnostics.Dynamic_import_cannot_have_type_arguments);var r=n.arguments;return r.length!==1?mt(n,e.Diagnostics.Dynamic_import_must_have_one_specifier_as_an_argument):(Am(r),e.isSpreadElement(r[0])?mt(r[0],e.Diagnostics.Specifier_of_dynamic_import_cannot_be_spread_element):!1)}function UF(n,r){var i=e.getObjectFlags(n);if(i&(4|16)&&r.flags&1048576)return e.find(r.types,function(o){if(o.flags&524288){var s=i&e.getObjectFlags(o);if(s&4)return n.target===o.target;if(s&16)return!!n.aliasSymbol&&n.aliasSymbol===o.aliasSymbol}return!1})}function VF(n,r){if(e.getObjectFlags(n)&128&&P_(r,Ud))return e.find(r.types,function(i){return!Ud(i)})}function WF(n,r){var i=0,o=sa(n,i).length>0||(i=1,sa(n,i).length>0);if(o)return e.find(r.types,function(s){return sa(s,i).length>0})}function jF(n,r){for(var i,o=0,s=0,u=r.types;s=o&&(i=L,o=me)}else yu(G)&&1>=o&&(i=L,o=1)}return i}function HF(n){if(Bo(n,67108864)){var r=qs(n,function(i){return!(i.flags&131068)});if(!(r.flags&131072))return r}return n}function pC(n,r,i,o){if(r.flags&1048576&&n.flags&(2097152|524288)){var s=ZD(r,n);if(s)return s;var u=Hi(n);if(u){var L=QD(u,r);if(L)return qb(r,e.map(L,function(G){return[function(){return ft(G)},G.escapedName]}),i,void 0,o)}}}}e.createTypeChecker=x;function C(S){return!e.isAccessor(S)}function m(S){return S.kind!==254&&S.kind!==167||!!S.body}function c(S){switch(S.parent.kind){case 268:case 273:return e.isIdentifier(S);default:return e.isDeclarationName(S)}}var f;(function(S){S.JSX="JSX",S.IntrinsicElements="IntrinsicElements",S.ElementClass="ElementClass",S.ElementAttributesPropertyNameContainer="ElementAttributesProperty",S.ElementChildrenAttributeNameContainer="ElementChildrenAttribute",S.Element="Element",S.IntrinsicAttributes="IntrinsicAttributes",S.IntrinsicClassAttributes="IntrinsicClassAttributes",S.LibraryManagedAttributes="LibraryManagedAttributes"})(f||(f={}));function N(S){switch(S){case 0:return"yieldType";case 1:return"returnType";case 2:return"nextType"}}function V(S){return!!(S.flags&1)}e.signatureHasRestParameter=V;function Z(S){return!!(S.flags&2)}e.signatureHasLiteralTypes=Z})(un||(un={}));var un;(function(e){function a(y,w,D,U){if(y===void 0||w===void 0)return y;var B=w(y);if(B===y)return y;var R;if(B!==void 0)return e.isArray(B)?R=(U||se)(B):R=B,e.Debug.assertNode(R,D),R}e.visitNode=a;function d(y,w,D,U,B){if(y===void 0||w===void 0)return y;var R,O=y.length;(U===void 0||U<0)&&(U=0),(B===void 0||B>O-U)&&(B=O-U);var k,M=-1,z=-1;(U>0||B=2&&(B=p(B,D)),D.setLexicalEnvironmentFlags(1,!1)),D.suspendLexicalEnvironment(),B}e.visitParameterList=t;function p(y,w){for(var D,U=0;U0&&O<=158||O===190)return y;var k=D.factory;switch(O){case 79:return e.Debug.type(y),k.updateIdentifier(y,U(y.typeArguments,w,e.isTypeNodeOrTypeParameterDeclaration));case 159:return e.Debug.type(y),k.updateQualifiedName(y,R(y.left,w,e.isEntityName),R(y.right,w,e.isIdentifier));case 160:return e.Debug.type(y),k.updateComputedPropertyName(y,R(y.expression,w,e.isExpression));case 161:return e.Debug.type(y),k.updateTypeParameterDeclaration(y,R(y.name,w,e.isIdentifier),R(y.constraint,w,e.isTypeNode),R(y.default,w,e.isTypeNode));case 162:return e.Debug.type(y),k.updateParameterDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.dotDotDotToken,B,e.isDotDotDotToken),R(y.name,w,e.isBindingName),R(y.questionToken,B,e.isQuestionToken),R(y.type,w,e.isTypeNode),R(y.initializer,w,e.isExpression));case 163:return e.Debug.type(y),k.updateDecorator(y,R(y.expression,w,e.isExpression));case 164:return e.Debug.type(y),k.updatePropertySignature(y,U(y.modifiers,w,e.isModifier),R(y.name,w,e.isPropertyName),R(y.questionToken,B,e.isToken),R(y.type,w,e.isTypeNode));case 165:return e.Debug.type(y),k.updatePropertyDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.name,w,e.isPropertyName),R(y.questionToken||y.exclamationToken,B,e.isQuestionOrExclamationToken),R(y.type,w,e.isTypeNode),R(y.initializer,w,e.isExpression));case 166:return e.Debug.type(y),k.updateMethodSignature(y,U(y.modifiers,w,e.isModifier),R(y.name,w,e.isPropertyName),R(y.questionToken,B,e.isQuestionToken),U(y.typeParameters,w,e.isTypeParameterDeclaration),U(y.parameters,w,e.isParameterDeclaration),R(y.type,w,e.isTypeNode));case 167:return e.Debug.type(y),k.updateMethodDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.asteriskToken,B,e.isAsteriskToken),R(y.name,w,e.isPropertyName),R(y.questionToken,B,e.isQuestionToken),U(y.typeParameters,w,e.isTypeParameterDeclaration),t(y.parameters,w,D,U),R(y.type,w,e.isTypeNode),v(y.body,w,D,R));case 169:return e.Debug.type(y),k.updateConstructorDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),t(y.parameters,w,D,U),v(y.body,w,D,R));case 170:return e.Debug.type(y),k.updateGetAccessorDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.name,w,e.isPropertyName),t(y.parameters,w,D,U),R(y.type,w,e.isTypeNode),v(y.body,w,D,R));case 171:return e.Debug.type(y),k.updateSetAccessorDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.name,w,e.isPropertyName),t(y.parameters,w,D,U),v(y.body,w,D,R));case 168:return e.Debug.type(y),D.startLexicalEnvironment(),D.suspendLexicalEnvironment(),k.updateClassStaticBlockDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),v(y.body,w,D,R));case 172:return e.Debug.type(y),k.updateCallSignature(y,U(y.typeParameters,w,e.isTypeParameterDeclaration),U(y.parameters,w,e.isParameterDeclaration),R(y.type,w,e.isTypeNode));case 173:return e.Debug.type(y),k.updateConstructSignature(y,U(y.typeParameters,w,e.isTypeParameterDeclaration),U(y.parameters,w,e.isParameterDeclaration),R(y.type,w,e.isTypeNode));case 174:return e.Debug.type(y),k.updateIndexSignature(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),U(y.parameters,w,e.isParameterDeclaration),R(y.type,w,e.isTypeNode));case 175:return e.Debug.type(y),k.updateTypePredicateNode(y,R(y.assertsModifier,w,e.isAssertsKeyword),R(y.parameterName,w,e.isIdentifierOrThisTypeNode),R(y.type,w,e.isTypeNode));case 176:return e.Debug.type(y),k.updateTypeReferenceNode(y,R(y.typeName,w,e.isEntityName),U(y.typeArguments,w,e.isTypeNode));case 177:return e.Debug.type(y),k.updateFunctionTypeNode(y,U(y.typeParameters,w,e.isTypeParameterDeclaration),U(y.parameters,w,e.isParameterDeclaration),R(y.type,w,e.isTypeNode));case 178:return e.Debug.type(y),k.updateConstructorTypeNode(y,U(y.modifiers,w,e.isModifier),U(y.typeParameters,w,e.isTypeParameterDeclaration),U(y.parameters,w,e.isParameterDeclaration),R(y.type,w,e.isTypeNode));case 179:return e.Debug.type(y),k.updateTypeQueryNode(y,R(y.exprName,w,e.isEntityName));case 180:return e.Debug.type(y),k.updateTypeLiteralNode(y,U(y.members,w,e.isTypeElement));case 181:return e.Debug.type(y),k.updateArrayTypeNode(y,R(y.elementType,w,e.isTypeNode));case 182:return e.Debug.type(y),k.updateTupleTypeNode(y,U(y.elements,w,e.isTypeNode));case 183:return e.Debug.type(y),k.updateOptionalTypeNode(y,R(y.type,w,e.isTypeNode));case 184:return e.Debug.type(y),k.updateRestTypeNode(y,R(y.type,w,e.isTypeNode));case 185:return e.Debug.type(y),k.updateUnionTypeNode(y,U(y.types,w,e.isTypeNode));case 186:return e.Debug.type(y),k.updateIntersectionTypeNode(y,U(y.types,w,e.isTypeNode));case 187:return e.Debug.type(y),k.updateConditionalTypeNode(y,R(y.checkType,w,e.isTypeNode),R(y.extendsType,w,e.isTypeNode),R(y.trueType,w,e.isTypeNode),R(y.falseType,w,e.isTypeNode));case 188:return e.Debug.type(y),k.updateInferTypeNode(y,R(y.typeParameter,w,e.isTypeParameterDeclaration));case 198:return e.Debug.type(y),k.updateImportTypeNode(y,R(y.argument,w,e.isTypeNode),R(y.qualifier,w,e.isEntityName),d(y.typeArguments,w,e.isTypeNode),y.isTypeOf);case 195:return e.Debug.type(y),k.updateNamedTupleMember(y,a(y.dotDotDotToken,w,e.isDotDotDotToken),a(y.name,w,e.isIdentifier),a(y.questionToken,w,e.isQuestionToken),a(y.type,w,e.isTypeNode));case 189:return e.Debug.type(y),k.updateParenthesizedType(y,R(y.type,w,e.isTypeNode));case 191:return e.Debug.type(y),k.updateTypeOperatorNode(y,R(y.type,w,e.isTypeNode));case 192:return e.Debug.type(y),k.updateIndexedAccessTypeNode(y,R(y.objectType,w,e.isTypeNode),R(y.indexType,w,e.isTypeNode));case 193:return e.Debug.type(y),k.updateMappedTypeNode(y,R(y.readonlyToken,B,e.isReadonlyKeywordOrPlusOrMinusToken),R(y.typeParameter,w,e.isTypeParameterDeclaration),R(y.nameType,w,e.isTypeNode),R(y.questionToken,B,e.isQuestionOrPlusOrMinusToken),R(y.type,w,e.isTypeNode));case 194:return e.Debug.type(y),k.updateLiteralTypeNode(y,R(y.literal,w,e.isExpression));case 196:return e.Debug.type(y),k.updateTemplateLiteralType(y,R(y.head,w,e.isTemplateHead),U(y.templateSpans,w,e.isTemplateLiteralTypeSpan));case 197:return e.Debug.type(y),k.updateTemplateLiteralTypeSpan(y,R(y.type,w,e.isTypeNode),R(y.literal,w,e.isTemplateMiddleOrTemplateTail));case 199:return e.Debug.type(y),k.updateObjectBindingPattern(y,U(y.elements,w,e.isBindingElement));case 200:return e.Debug.type(y),k.updateArrayBindingPattern(y,U(y.elements,w,e.isArrayBindingElement));case 201:return e.Debug.type(y),k.updateBindingElement(y,R(y.dotDotDotToken,B,e.isDotDotDotToken),R(y.propertyName,w,e.isPropertyName),R(y.name,w,e.isBindingName),R(y.initializer,w,e.isExpression));case 202:return e.Debug.type(y),k.updateArrayLiteralExpression(y,U(y.elements,w,e.isExpression));case 203:return e.Debug.type(y),k.updateObjectLiteralExpression(y,U(y.properties,w,e.isObjectLiteralElementLike));case 204:return y.flags&32?(e.Debug.type(y),k.updatePropertyAccessChain(y,R(y.expression,w,e.isExpression),R(y.questionDotToken,B,e.isQuestionDotToken),R(y.name,w,e.isMemberName))):(e.Debug.type(y),k.updatePropertyAccessExpression(y,R(y.expression,w,e.isExpression),R(y.name,w,e.isMemberName)));case 205:return y.flags&32?(e.Debug.type(y),k.updateElementAccessChain(y,R(y.expression,w,e.isExpression),R(y.questionDotToken,B,e.isQuestionDotToken),R(y.argumentExpression,w,e.isExpression))):(e.Debug.type(y),k.updateElementAccessExpression(y,R(y.expression,w,e.isExpression),R(y.argumentExpression,w,e.isExpression)));case 206:return y.flags&32?(e.Debug.type(y),k.updateCallChain(y,R(y.expression,w,e.isExpression),R(y.questionDotToken,B,e.isQuestionDotToken),U(y.typeArguments,w,e.isTypeNode),U(y.arguments,w,e.isExpression))):(e.Debug.type(y),k.updateCallExpression(y,R(y.expression,w,e.isExpression),U(y.typeArguments,w,e.isTypeNode),U(y.arguments,w,e.isExpression)));case 207:return e.Debug.type(y),k.updateNewExpression(y,R(y.expression,w,e.isExpression),U(y.typeArguments,w,e.isTypeNode),U(y.arguments,w,e.isExpression));case 208:return e.Debug.type(y),k.updateTaggedTemplateExpression(y,R(y.tag,w,e.isExpression),d(y.typeArguments,w,e.isTypeNode),R(y.template,w,e.isTemplateLiteral));case 209:return e.Debug.type(y),k.updateTypeAssertion(y,R(y.type,w,e.isTypeNode),R(y.expression,w,e.isExpression));case 210:return e.Debug.type(y),k.updateParenthesizedExpression(y,R(y.expression,w,e.isExpression));case 211:return e.Debug.type(y),k.updateFunctionExpression(y,U(y.modifiers,w,e.isModifier),R(y.asteriskToken,B,e.isAsteriskToken),R(y.name,w,e.isIdentifier),U(y.typeParameters,w,e.isTypeParameterDeclaration),t(y.parameters,w,D,U),R(y.type,w,e.isTypeNode),v(y.body,w,D,R));case 212:return e.Debug.type(y),k.updateArrowFunction(y,U(y.modifiers,w,e.isModifier),U(y.typeParameters,w,e.isTypeParameterDeclaration),t(y.parameters,w,D,U),R(y.type,w,e.isTypeNode),R(y.equalsGreaterThanToken,B,e.isEqualsGreaterThanToken),v(y.body,w,D,R));case 213:return e.Debug.type(y),k.updateDeleteExpression(y,R(y.expression,w,e.isExpression));case 214:return e.Debug.type(y),k.updateTypeOfExpression(y,R(y.expression,w,e.isExpression));case 215:return e.Debug.type(y),k.updateVoidExpression(y,R(y.expression,w,e.isExpression));case 216:return e.Debug.type(y),k.updateAwaitExpression(y,R(y.expression,w,e.isExpression));case 217:return e.Debug.type(y),k.updatePrefixUnaryExpression(y,R(y.operand,w,e.isExpression));case 218:return e.Debug.type(y),k.updatePostfixUnaryExpression(y,R(y.operand,w,e.isExpression));case 219:return e.Debug.type(y),k.updateBinaryExpression(y,R(y.left,w,e.isExpression),R(y.operatorToken,B,e.isBinaryOperatorToken),R(y.right,w,e.isExpression));case 220:return e.Debug.type(y),k.updateConditionalExpression(y,R(y.condition,w,e.isExpression),R(y.questionToken,B,e.isQuestionToken),R(y.whenTrue,w,e.isExpression),R(y.colonToken,B,e.isColonToken),R(y.whenFalse,w,e.isExpression));case 221:return e.Debug.type(y),k.updateTemplateExpression(y,R(y.head,w,e.isTemplateHead),U(y.templateSpans,w,e.isTemplateSpan));case 222:return e.Debug.type(y),k.updateYieldExpression(y,R(y.asteriskToken,B,e.isAsteriskToken),R(y.expression,w,e.isExpression));case 223:return e.Debug.type(y),k.updateSpreadElement(y,R(y.expression,w,e.isExpression));case 224:return e.Debug.type(y),k.updateClassExpression(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.name,w,e.isIdentifier),U(y.typeParameters,w,e.isTypeParameterDeclaration),U(y.heritageClauses,w,e.isHeritageClause),U(y.members,w,e.isClassElement));case 226:return e.Debug.type(y),k.updateExpressionWithTypeArguments(y,R(y.expression,w,e.isExpression),U(y.typeArguments,w,e.isTypeNode));case 227:return e.Debug.type(y),k.updateAsExpression(y,R(y.expression,w,e.isExpression),R(y.type,w,e.isTypeNode));case 228:return y.flags&32?(e.Debug.type(y),k.updateNonNullChain(y,R(y.expression,w,e.isExpression))):(e.Debug.type(y),k.updateNonNullExpression(y,R(y.expression,w,e.isExpression)));case 229:return e.Debug.type(y),k.updateMetaProperty(y,R(y.name,w,e.isIdentifier));case 231:return e.Debug.type(y),k.updateTemplateSpan(y,R(y.expression,w,e.isExpression),R(y.literal,w,e.isTemplateMiddleOrTemplateTail));case 233:return e.Debug.type(y),k.updateBlock(y,U(y.statements,w,e.isStatement));case 235:return e.Debug.type(y),k.updateVariableStatement(y,U(y.modifiers,w,e.isModifier),R(y.declarationList,w,e.isVariableDeclarationList));case 236:return e.Debug.type(y),k.updateExpressionStatement(y,R(y.expression,w,e.isExpression));case 237:return e.Debug.type(y),k.updateIfStatement(y,R(y.expression,w,e.isExpression),R(y.thenStatement,w,e.isStatement,k.liftToBlock),R(y.elseStatement,w,e.isStatement,k.liftToBlock));case 238:return e.Debug.type(y),k.updateDoStatement(y,I(y.statement,w,D),R(y.expression,w,e.isExpression));case 239:return e.Debug.type(y),k.updateWhileStatement(y,R(y.expression,w,e.isExpression),I(y.statement,w,D));case 240:return e.Debug.type(y),k.updateForStatement(y,R(y.initializer,w,e.isForInitializer),R(y.condition,w,e.isExpression),R(y.incrementor,w,e.isExpression),I(y.statement,w,D));case 241:return e.Debug.type(y),k.updateForInStatement(y,R(y.initializer,w,e.isForInitializer),R(y.expression,w,e.isExpression),I(y.statement,w,D));case 242:return e.Debug.type(y),k.updateForOfStatement(y,R(y.awaitModifier,B,e.isAwaitKeyword),R(y.initializer,w,e.isForInitializer),R(y.expression,w,e.isExpression),I(y.statement,w,D));case 243:return e.Debug.type(y),k.updateContinueStatement(y,R(y.label,w,e.isIdentifier));case 244:return e.Debug.type(y),k.updateBreakStatement(y,R(y.label,w,e.isIdentifier));case 245:return e.Debug.type(y),k.updateReturnStatement(y,R(y.expression,w,e.isExpression));case 246:return e.Debug.type(y),k.updateWithStatement(y,R(y.expression,w,e.isExpression),R(y.statement,w,e.isStatement,k.liftToBlock));case 247:return e.Debug.type(y),k.updateSwitchStatement(y,R(y.expression,w,e.isExpression),R(y.caseBlock,w,e.isCaseBlock));case 248:return e.Debug.type(y),k.updateLabeledStatement(y,R(y.label,w,e.isIdentifier),R(y.statement,w,e.isStatement,k.liftToBlock));case 249:return e.Debug.type(y),k.updateThrowStatement(y,R(y.expression,w,e.isExpression));case 250:return e.Debug.type(y),k.updateTryStatement(y,R(y.tryBlock,w,e.isBlock),R(y.catchClause,w,e.isCatchClause),R(y.finallyBlock,w,e.isBlock));case 252:return e.Debug.type(y),k.updateVariableDeclaration(y,R(y.name,w,e.isBindingName),R(y.exclamationToken,B,e.isExclamationToken),R(y.type,w,e.isTypeNode),R(y.initializer,w,e.isExpression));case 253:return e.Debug.type(y),k.updateVariableDeclarationList(y,U(y.declarations,w,e.isVariableDeclaration));case 254:return e.Debug.type(y),k.updateFunctionDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.asteriskToken,B,e.isAsteriskToken),R(y.name,w,e.isIdentifier),U(y.typeParameters,w,e.isTypeParameterDeclaration),t(y.parameters,w,D,U),R(y.type,w,e.isTypeNode),v(y.body,w,D,R));case 255:return e.Debug.type(y),k.updateClassDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.name,w,e.isIdentifier),U(y.typeParameters,w,e.isTypeParameterDeclaration),U(y.heritageClauses,w,e.isHeritageClause),U(y.members,w,e.isClassElement));case 256:return e.Debug.type(y),k.updateInterfaceDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.name,w,e.isIdentifier),U(y.typeParameters,w,e.isTypeParameterDeclaration),U(y.heritageClauses,w,e.isHeritageClause),U(y.members,w,e.isTypeElement));case 257:return e.Debug.type(y),k.updateTypeAliasDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.name,w,e.isIdentifier),U(y.typeParameters,w,e.isTypeParameterDeclaration),R(y.type,w,e.isTypeNode));case 258:return e.Debug.type(y),k.updateEnumDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.name,w,e.isIdentifier),U(y.members,w,e.isEnumMember));case 259:return e.Debug.type(y),k.updateModuleDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.name,w,e.isModuleName),R(y.body,w,e.isModuleBody));case 260:return e.Debug.type(y),k.updateModuleBlock(y,U(y.statements,w,e.isStatement));case 261:return e.Debug.type(y),k.updateCaseBlock(y,U(y.clauses,w,e.isCaseOrDefaultClause));case 262:return e.Debug.type(y),k.updateNamespaceExportDeclaration(y,R(y.name,w,e.isIdentifier));case 263:return e.Debug.type(y),k.updateImportEqualsDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),y.isTypeOnly,R(y.name,w,e.isIdentifier),R(y.moduleReference,w,e.isModuleReference));case 264:return e.Debug.type(y),k.updateImportDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.importClause,w,e.isImportClause),R(y.moduleSpecifier,w,e.isExpression));case 265:return e.Debug.type(y),k.updateImportClause(y,y.isTypeOnly,R(y.name,w,e.isIdentifier),R(y.namedBindings,w,e.isNamedImportBindings));case 266:return e.Debug.type(y),k.updateNamespaceImport(y,R(y.name,w,e.isIdentifier));case 272:return e.Debug.type(y),k.updateNamespaceExport(y,R(y.name,w,e.isIdentifier));case 267:return e.Debug.type(y),k.updateNamedImports(y,U(y.elements,w,e.isImportSpecifier));case 268:return e.Debug.type(y),k.updateImportSpecifier(y,R(y.propertyName,w,e.isIdentifier),R(y.name,w,e.isIdentifier));case 269:return e.Debug.type(y),k.updateExportAssignment(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),R(y.expression,w,e.isExpression));case 270:return e.Debug.type(y),k.updateExportDeclaration(y,U(y.decorators,w,e.isDecorator),U(y.modifiers,w,e.isModifier),y.isTypeOnly,R(y.exportClause,w,e.isNamedExportBindings),R(y.moduleSpecifier,w,e.isExpression));case 271:return e.Debug.type(y),k.updateNamedExports(y,U(y.elements,w,e.isExportSpecifier));case 273:return e.Debug.type(y),k.updateExportSpecifier(y,R(y.propertyName,w,e.isIdentifier),R(y.name,w,e.isIdentifier));case 275:return e.Debug.type(y),k.updateExternalModuleReference(y,R(y.expression,w,e.isExpression));case 276:return e.Debug.type(y),k.updateJsxElement(y,R(y.openingElement,w,e.isJsxOpeningElement),U(y.children,w,e.isJsxChild),R(y.closingElement,w,e.isJsxClosingElement));case 277:return e.Debug.type(y),k.updateJsxSelfClosingElement(y,R(y.tagName,w,e.isJsxTagNameExpression),U(y.typeArguments,w,e.isTypeNode),R(y.attributes,w,e.isJsxAttributes));case 278:return e.Debug.type(y),k.updateJsxOpeningElement(y,R(y.tagName,w,e.isJsxTagNameExpression),U(y.typeArguments,w,e.isTypeNode),R(y.attributes,w,e.isJsxAttributes));case 279:return e.Debug.type(y),k.updateJsxClosingElement(y,R(y.tagName,w,e.isJsxTagNameExpression));case 280:return e.Debug.type(y),k.updateJsxFragment(y,R(y.openingFragment,w,e.isJsxOpeningFragment),U(y.children,w,e.isJsxChild),R(y.closingFragment,w,e.isJsxClosingFragment));case 283:return e.Debug.type(y),k.updateJsxAttribute(y,R(y.name,w,e.isIdentifier),R(y.initializer,w,e.isStringLiteralOrJsxExpression));case 284:return e.Debug.type(y),k.updateJsxAttributes(y,U(y.properties,w,e.isJsxAttributeLike));case 285:return e.Debug.type(y),k.updateJsxSpreadAttribute(y,R(y.expression,w,e.isExpression));case 286:return e.Debug.type(y),k.updateJsxExpression(y,R(y.expression,w,e.isExpression));case 287:return e.Debug.type(y),k.updateCaseClause(y,R(y.expression,w,e.isExpression),U(y.statements,w,e.isStatement));case 288:return e.Debug.type(y),k.updateDefaultClause(y,U(y.statements,w,e.isStatement));case 289:return e.Debug.type(y),k.updateHeritageClause(y,U(y.types,w,e.isExpressionWithTypeArguments));case 290:return e.Debug.type(y),k.updateCatchClause(y,R(y.variableDeclaration,w,e.isVariableDeclaration),R(y.block,w,e.isBlock));case 291:return e.Debug.type(y),k.updatePropertyAssignment(y,R(y.name,w,e.isPropertyName),R(y.initializer,w,e.isExpression));case 292:return e.Debug.type(y),k.updateShorthandPropertyAssignment(y,R(y.name,w,e.isIdentifier),R(y.objectAssignmentInitializer,w,e.isExpression));case 293:return e.Debug.type(y),k.updateSpreadAssignment(y,R(y.expression,w,e.isExpression));case 294:return e.Debug.type(y),k.updateEnumMember(y,R(y.name,w,e.isPropertyName),R(y.initializer,w,e.isExpression));case 300:return e.Debug.type(y),k.updateSourceFile(y,g(y.statements,w,D));case 345:return e.Debug.type(y),k.updatePartiallyEmittedExpression(y,R(y.expression,w,e.isExpression));case 346:return e.Debug.type(y),k.updateCommaListExpression(y,U(y.elements,w,e.isExpression));default:return y}}}e.visitEachChild=X;function se(y){return e.Debug.assert(y.length<=1,"Too many nodes written to output."),e.singleOrUndefined(y)}})(un||(un={}));var un;(function(e){function a(M,z,Y,ne,j){var H=j.extendedDiagnostics?e.performance.createTimer("Source Map","beforeSourcemap","afterSourcemap"):e.performance.nullTimer,K=H.enter,ee=H.exit,b=[],A=[],E=new e.Map,x,C=[],m,c=[],f="",N=0,V=0,Z=0,S=0,ce=0,ge=0,ae=!1,F=0,re=0,q=0,ue=0,ke=0,de=0,xe=!1,Le=!1,He=!1;return{getSources:function(){return b},addSource:Ne,setSourceContent:De,addName:Ee,addMapping:Ie,appendSourceMap:je,toJSON:Cn,toString:function(){return JSON.stringify(Cn())}};function Ne(vn){K();var Nn=e.getRelativePathToDirectoryOrUrl(ne,vn,M.getCurrentDirectory(),M.getCanonicalFileName,!0),Kn=E.get(Nn);return Kn===void 0&&(Kn=A.length,A.push(Nn),b.push(vn),E.set(Nn,Kn)),ee(),Kn}function De(vn,Nn){if(K(),Nn!==null){for(x||(x=[]);x.lengthNn||ue===Nn&&ke>Kn)}function Ie(vn,Nn,Kn,$e,ie,dn){e.Debug.assert(vn>=F,"generatedLine cannot backtrack"),e.Debug.assert(Nn>=0,"generatedCharacter cannot be negative"),e.Debug.assert(Kn===void 0||Kn>=0,"sourceIndex cannot be negative"),e.Debug.assert($e===void 0||$e>=0,"sourceLine cannot be negative"),e.Debug.assert(ie===void 0||ie>=0,"sourceCharacter cannot be negative"),K(),(We(vn,Nn)||ye(Kn,$e,ie))&&(we(),F=vn,re=Nn,Le=!1,He=!1,xe=!0),Kn!==void 0&&$e!==void 0&&ie!==void 0&&(q=Kn,ue=$e,ke=ie,Le=!0,dn!==void 0&&(de=dn,He=!0)),ee()}function je(vn,Nn,Kn,$e,ie,dn){e.Debug.assert(vn>=F,"generatedLine cannot backtrack"),e.Debug.assert(Nn>=0,"generatedCharacter cannot be negative"),K();for(var Tn=[],qn,oe=v(Kn.mappings),Be=oe.next();!Be.done;Be=oe.next()){var Te=Be.value;if(dn&&(Te.generatedLine>dn.line||Te.generatedLine===dn.line&&Te.generatedCharacter>dn.character))break;if(!(ie&&(Te.generatedLine=1024&&ze()}function we(){if(!(!xe||!Sn())){if(K(),N0&&(f+=String.fromCharCode.apply(void 0,c),c.length=0)}function Cn(){return we(),ze(),{version:3,file:z,sourceRoot:Y,sources:A,names:C,mappings:f,sourcesContent:x}}function an(vn){vn<0?vn=(-vn<<1)+1:vn=vn<<1;do{var Nn=vn&31;vn=vn>>5,vn>0&&(Nn=Nn|32),Me(se(Nn))}while(vn>0)}}e.createSourceMapGenerator=a;var d=/^\/\/[@#] source[M]appingURL=(.+)$/,g=/^\s*(\/\/[@#] .*)?$/;function t(M,z){return{getLineCount:function(){return z.length},getLineText:function(Y){return M.substring(z[Y],z[Y+1])}}}e.getLineInfo=t;function p(M){for(var z=M.getLineCount()-1;z>=0;z--){var Y=M.getLineText(z),ne=d.exec(Y);if(ne)return e.trimStringEnd(ne[1]);if(!Y.match(g))break}}e.tryGetSourceMappingURL=p;function P(M){return typeof M=="string"||M===null}function J(M){return M!==null&&typeof M=="object"&&M.version===3&&typeof M.file=="string"&&typeof M.mappings=="string"&&e.isArray(M.sources)&&e.every(M.sources,e.isString)&&(M.sourceRoot===void 0||M.sourceRoot===null||typeof M.sourceRoot=="string")&&(M.sourcesContent===void 0||M.sourcesContent===null||e.isArray(M.sourcesContent)&&e.every(M.sourcesContent,P))&&(M.names===void 0||M.names===null||e.isArray(M.names)&&e.every(M.names,e.isString))}e.isRawSourceMap=J;function h(M){try{var z=JSON.parse(M);if(J(z))return z}catch{}}e.tryParseRawSourceMap=h;function v(M){var z=!1,Y=0,ne=0,j=0,H=0,K=0,ee=0,b=0,A;return{get pos(){return Y},get error(){return A},get state(){return E(!0,!0)},next:function(){for(;!z&&Y=M.length)return C("Error in decoding base64VLQFormatDecode, past the mapping string"),-1;var ce=y(M.charCodeAt(Y));if(ce===-1)return C("Invalid character in VLQ"),-1;V=(ce&32)!=0,S=S|(ce&31)<>1:(S=S>>1,S=-S),S}}e.decodeMappings=v;function I(M,z){return M===z||M.generatedLine===z.generatedLine&&M.generatedCharacter===z.generatedCharacter&&M.sourceIndex===z.sourceIndex&&M.sourceLine===z.sourceLine&&M.sourceCharacter===z.sourceCharacter&&M.nameIndex===z.nameIndex}e.sameMapping=I;function X(M){return M.sourceIndex!==void 0&&M.sourceLine!==void 0&&M.sourceCharacter!==void 0}e.isSourceMapping=X;function se(M){return M>=0&&M<26?65+M:M>=26&&M<52?97+M-26:M>=52&&M<62?48+M-52:M===62?43:M===63?47:e.Debug.fail(M+": not a base64 value")}function y(M){return M>=65&&M<=90?M-65:M>=97&&M<=122?M-97+26:M>=48&&M<=57?M-48+52:M===43?62:M===47?63:-1}function w(M){return M.sourceIndex!==void 0&&M.sourcePosition!==void 0}function D(M,z){return M.generatedPosition===z.generatedPosition&&M.sourceIndex===z.sourceIndex&&M.sourcePosition===z.sourcePosition}function U(M,z){return e.Debug.assert(M.sourceIndex===z.sourceIndex),e.compareValues(M.sourcePosition,z.sourcePosition)}function B(M,z){return e.compareValues(M.generatedPosition,z.generatedPosition)}function R(M){return M.sourcePosition}function O(M){return M.generatedPosition}function k(M,z,Y){var ne=e.getDirectoryPath(Y),j=z.sourceRoot?e.getNormalizedAbsolutePath(z.sourceRoot,ne):ne,H=e.getNormalizedAbsolutePath(z.file,ne),K=M.getSourceFileLike(H),ee=z.sources.map(function(Z){return e.getNormalizedAbsolutePath(Z,j)}),b=new e.Map(ee.map(function(Z,S){return[M.getCanonicalFileName(Z),S]})),A,E,x;return{getSourcePosition:V,getGeneratedPosition:N};function C(Z){var S=K!==void 0?e.getPositionOfLineAndCharacter(K,Z.generatedLine,Z.generatedCharacter,!0):-1,ce,ge;if(X(Z)){var ae=M.getSourceFileLike(ee[Z.sourceIndex]);ce=z.sources[Z.sourceIndex],ge=ae!==void 0?e.getPositionOfLineAndCharacter(ae,Z.sourceLine,Z.sourceCharacter,!0):-1}return{generatedPosition:S,source:ce,sourceIndex:Z.sourceIndex,sourcePosition:ge,nameIndex:Z.nameIndex}}function m(){if(A===void 0){var Z=v(z.mappings),S=e.arrayFrom(Z,C);Z.error!==void 0?(M.log&&M.log("Encountered error while decoding sourcemap: "+Z.error),A=e.emptyArray):A=S}return A}function c(Z){if(x===void 0){for(var S=[],ce=0,ge=m();ce0&&j!==ne.elements.length||!!(ne.elements.length-j)&&e.isDefaultImport(Y)}e.getImportNeedsImportStarHelper=P;function J(Y){return!P(Y)&&(e.isDefaultImport(Y)||!!Y.importClause&&e.isNamedImports(Y.importClause.namedBindings)&&d(Y.importClause.namedBindings))}e.getImportNeedsImportDefaultHelper=J;function h(Y,ne,j,H){for(var K=[],ee=e.createMultiMap(),b=[],A=new e.Map,E,x=!1,C,m=!1,c=!1,f=!1,N=0,V=ne.statements;N=64&&Y<=78}e.isCompoundAssignment=y;function w(Y){switch(Y){case 64:return 39;case 65:return 40;case 66:return 41;case 67:return 42;case 68:return 43;case 69:return 44;case 70:return 47;case 71:return 48;case 72:return 49;case 73:return 50;case 74:return 51;case 78:return 52;case 75:return 56;case 76:return 55;case 77:return 60}}e.getNonAssignmentOperatorForCompoundAssignment=w;function D(Y,ne,j,H){if(ne.body){var K=ne.body.statements,ee=Y.copyPrologue(K,j,!1,H);if(ee===K.length)return ee;var b=e.findIndex(K,function(E){return e.isExpressionStatement(E)&&e.isSuperCall(E.expression)},ee);if(b>-1){for(var A=ee;A<=b;A++)j.push(e.visitNode(K[A],H,e.isStatement));return b+1}return ee}return 0}e.addPrologueDirectivesAndInitialSuperCall=D;function U(Y,ne,j){return e.filter(Y.members,function(H){return O(H,ne,j)})}e.getProperties=U;function B(Y){return k(Y)||e.isClassStaticBlockDeclaration(Y)}function R(Y){return e.filter(Y.members,B)}e.getStaticPropertiesAndClassStaticBlock=R;function O(Y,ne,j){return e.isPropertyDeclaration(Y)&&(!!Y.initializer||!ne)&&e.hasStaticModifier(Y)===j}function k(Y){return e.isPropertyDeclaration(Y)&&e.hasStaticModifier(Y)}function M(Y){return Y.kind===165&&Y.initializer!==void 0}e.isInitializedProperty=M;function z(Y){return!e.isStatic(Y)&&e.isMethodOrAccessor(Y)&&e.isPrivateIdentifier(Y.name)}e.isNonStaticMethodOrAccessorWithPrivateName=z})(un||(un={}));var un;(function(e){(function(k){k[k.All=0]="All",k[k.ObjectRest=1]="ObjectRest"})(e.FlattenLevel||(e.FlattenLevel={}));function a(k,M,z,Y,ne,j){var H=k,K;if(e.isDestructuringAssignment(k))for(K=k.right;e.isEmptyArrayLiteral(k.left)||e.isEmptyObjectLiteral(k.left);)if(e.isDestructuringAssignment(K))H=k=K,K=k.right;else return e.visitNode(K,M,e.isExpression);var ee,b={context:z,level:Y,downlevelIteration:!!z.getCompilerOptions().downlevelIteration,hoistTempVariables:!0,emitExpression:A,emitBindingOrAssignment:E,createArrayBindingOrAssignmentPattern:function(x){return D(z.factory,x)},createObjectBindingOrAssignmentPattern:function(x){return B(z.factory,x)},createArrayBindingOrAssignmentElement:O,visitor:M};if(K&&(K=e.visitNode(K,M,e.isExpression),e.isIdentifier(K)&&d(k,K.escapedText)||t(k)?K=y(b,K,!1,H):ne?K=y(b,K,!0,H):e.nodeIsSynthesized(k)&&(H=K)),J(b,k,K,H,e.isDestructuringAssignment(k)),K&&ne){if(!e.some(ee))return K;ee.push(K)}return z.factory.inlineExpressions(ee)||z.factory.createOmittedExpression();function A(x){ee=e.append(ee,x)}function E(x,C,m,c){e.Debug.assertNode(x,j?e.isIdentifier:e.isExpression);var f=j?j(x,C,m):e.setTextRange(z.factory.createAssignment(e.visitNode(x,M,e.isExpression),C),m);f.original=c,A(f)}}e.flattenDestructuringAssignment=a;function d(k,M){var z=e.getTargetOfBindingOrAssignmentElement(k);return e.isBindingOrAssignmentPattern(z)?g(z,M):e.isIdentifier(z)?z.escapedText===M:!1}function g(k,M){for(var z=e.getElementsOfBindingOrAssignmentPattern(k),Y=0,ne=z;Y=1&&!(E.transformFlags&(16384|32768))&&!(e.getTargetOfBindingOrAssignmentElement(E).transformFlags&(16384|32768))&&!e.isComputedPropertyName(x))ee=e.append(ee,e.visitNode(E,k.visitor));else{ee&&(k.emitBindingOrAssignment(k.createObjectBindingOrAssignmentPattern(ee),Y,ne,z),ee=void 0);var C=se(k,Y,x);e.isComputedPropertyName(x)&&(b=e.append(b,C.argumentExpression)),J(k,E,C,E)}}}ee&&k.emitBindingOrAssignment(k.createObjectBindingOrAssignmentPattern(ee),Y,ne,z)}function v(k,M,z,Y,ne){var j=e.getElementsOfBindingOrAssignmentPattern(z),H=j.length;if(k.level<1&&k.downlevelIteration)Y=y(k,e.setTextRange(k.context.getEmitHelperFactory().createReadHelper(Y,H>0&&e.getRestIndicatorOfBindingOrAssignmentElement(j[H-1])?void 0:H),ne),!1,ne);else if(H!==1&&(k.level<1||H===0)||e.every(j,e.isOmittedExpression)){var K=!e.isDeclarationBindingElement(M)||H!==0;Y=y(k,Y,K,ne)}for(var ee,b,A=0;A=1)if(E.transformFlags&32768||k.hasTransformedPriorElement&&!I(E)){k.hasTransformedPriorElement=!0;var x=k.context.factory.createTempVariable(void 0);k.hoistTempVariables&&k.context.hoistVariableDeclaration(x),b=e.append(b,[x,E]),ee=e.append(ee,k.createArrayBindingOrAssignmentElement(x))}else ee=e.append(ee,E);else{if(e.isOmittedExpression(E))continue;if(e.getRestIndicatorOfBindingOrAssignmentElement(E)){if(A===H-1){var C=k.context.factory.createArraySliceCall(Y,A);J(k,E,C,E)}}else{var C=k.context.factory.createElementAccessExpression(Y,A);J(k,E,C,E)}}}if(ee&&k.emitBindingOrAssignment(k.createArrayBindingOrAssignmentPattern(ee),Y,ne,z),b)for(var m=0,c=b;m=e.ModuleKind.ES2015)&&!e.isJsonSourceFile(Oe);return p.updateSourceFile(Oe,e.visitLexicalEnvironment(Oe.statements,c,t,0,Zn))}function re(Oe,Zn){var Pr=0;e.some(Zn)&&(Pr|=1);var te=e.getEffectiveBaseTypeNode(Oe);return te&&e.skipOuterExpressions(te.expression).kind!==104&&(Pr|=64),e.classOrConstructorParameterIsDecorated(Oe)&&(Pr|=2),e.childIsDecorated(Oe)&&(Pr|=4),bi(Oe)?Pr|=8:Di(Oe)?Pr|=32:ei(Oe)&&(Pr|=16),w<=1&&Pr&7&&(Pr|=128),Pr}function q(Oe){return!!(Oe.transformFlags&4096)}function ue(Oe){return e.some(Oe.decorators)||e.some(Oe.typeParameters)||e.some(Oe.heritageClauses,q)||e.some(Oe.members,q)}function ke(Oe){if(!ue(Oe)&&!(O&&e.hasSyntacticModifier(Oe,1)))return e.visitEachChild(Oe,C,t);var Zn=e.getProperties(Oe,!0,!0),Pr=re(Oe,Zn);Pr&128&&t.startLexicalEnvironment();var te=Oe.name||(Pr&5?p.getGeneratedNameForNode(Oe):void 0),Q=Pr&2?xe(Oe,te):de(Oe,te,Pr),Ae=[Q];if(Cn(Ae,Oe,!1),Cn(Ae,Oe,!0),Nn(Ae,Oe),Pr&128){var Fe=e.createTokenRange(e.skipTrivia(R.text,Oe.members.end),19),Ze=p.getInternalName(Oe),Gn=p.createPartiallyEmittedExpression(Ze);e.setTextRangeEnd(Gn,Fe.end),e.setEmitFlags(Gn,1536);var Yn=p.createReturnStatement(Gn);e.setTextRangePos(Yn,Fe.pos),e.setEmitFlags(Yn,1536|384),Ae.push(Yn),e.insertStatementsAfterStandardPrologue(Ae,t.endLexicalEnvironment());var _r=p.createImmediatelyInvokedArrowFunction(Ae);e.setEmitFlags(_r,33554432);var kr=p.createVariableStatement(void 0,p.createVariableDeclarationList([p.createVariableDeclaration(p.getLocalName(Oe,!1,!1),void 0,void 0,_r)]));e.setOriginalNode(kr,Oe),e.setCommentRange(kr,Oe),e.setSourceMapRange(kr,e.moveRangePastDecorators(Oe)),e.startOnNewLine(kr),Ae=[kr]}return Pr&8?ni(Ae,Oe):(Pr&128||Pr&2)&&(Pr&32?Ae.push(p.createExportDefault(p.getLocalName(Oe,!1,!0))):Pr&16&&Ae.push(p.createExternalModuleExport(p.getLocalName(Oe,!1,!0)))),Ae.length>1&&(Ae.push(p.createEndOfDeclarationMarker(Oe)),e.setEmitFlags(Q,e.getEmitFlags(Q)|4194304)),e.singleOrMany(Ae)}function de(Oe,Zn,Pr){var te=Pr&128?void 0:e.visitNodes(Oe.modifiers,ge,e.isModifier),Q=p.createClassDeclaration(void 0,te,Zn,void 0,e.visitNodes(Oe.heritageClauses,C,e.isHeritageClause),He(Oe)),Ae=e.getEmitFlags(Oe);return Pr&1&&(Ae|=32),e.setTextRange(Q,Oe),e.setOriginalNode(Q,Oe),e.setEmitFlags(Q,Ae),Q}function xe(Oe,Zn){var Pr=e.moveRangePastDecorators(Oe),te=Ri(Oe),Q=w<=2?p.getInternalName(Oe,!1,!0):p.getLocalName(Oe,!1,!0),Ae=e.visitNodes(Oe.heritageClauses,C,e.isHeritageClause),Fe=He(Oe),Ze=p.createClassExpression(void 0,void 0,Zn,void 0,Ae,Fe);e.setOriginalNode(Ze,Oe),e.setTextRange(Ze,Pr);var Gn=p.createVariableStatement(void 0,p.createVariableDeclarationList([p.createVariableDeclaration(Q,void 0,void 0,te?p.createAssignment(te,Ze):Ze)],1));return e.setOriginalNode(Gn,Oe),e.setTextRange(Gn,Pr),e.setCommentRange(Gn,Oe),Gn}function Le(Oe){if(!ue(Oe))return e.visitEachChild(Oe,C,t);var Zn=p.createClassExpression(void 0,void 0,Oe.name,void 0,e.visitNodes(Oe.heritageClauses,C,e.isHeritageClause),He(Oe));return e.setOriginalNode(Zn,Oe),e.setTextRange(Zn,Oe),Zn}function He(Oe){var Zn=[],Pr=e.getFirstConstructorWithBody(Oe),te=Pr&&e.filter(Pr.parameters,function(Ze){return e.isParameterPropertyDeclaration(Ze,Pr)});if(te)for(var Q=0,Ae=te;Q0&&e.parameterIsThisKeyword(Pr[0]),Q=te?1:0,Ae=te?Pr.length-1:Pr.length,Fe=0;Fe0?Zn.kind===165?p.createVoidZero():p.createNull():void 0,Ze=P().createDecorateHelper(te,Q,Ae,Fe);return e.setTextRange(Ze,e.moveRangePastDecorators(Zn)),e.setEmitFlags(Ze,1536),Ze}}function Nn(Oe,Zn){var Pr=Kn(Zn);Pr&&Oe.push(e.setOriginalNode(p.createExpressionStatement(Pr),Zn))}function Kn(Oe){var Zn=Ie(Oe),Pr=ze(Oe,Oe,Zn);if(!!Pr){var te=H&&H[e.getOriginalNodeId(Oe)],Q=w<=2?p.getInternalName(Oe,!1,!0):p.getLocalName(Oe,!1,!0),Ae=P().createDecorateHelper(Pr,Q),Fe=p.createAssignment(Q,te?p.createAssignment(te,Ae):Ae);return e.setEmitFlags(Fe,1536),e.setSourceMapRange(Fe,e.moveRangePastDecorators(Oe)),Fe}}function $e(Oe){return e.visitNode(Oe.expression,C,e.isExpression)}function ie(Oe,Zn){var Pr;if(Oe){Pr=[];for(var te=0,Q=Oe;te=2,M=B<=8||!R,z=h.onSubstituteNode;h.onSubstituteNode=En;var Y=h.onEmitNode;h.onEmitNode=Xe;var ne,j,H,K,ee=[],b=new e.Map,A,E,x;return e.chainBundle(h,C);function C(fe){var Ge=h.getCompilerOptions();if(fe.isDeclarationFile||R&&Ge.target===99)return fe;var tn=e.visitEachChild(fe,f,h);return e.addEmitHelpers(tn,h.readEmitHelpers()),tn}function m(fe,Ge){if(fe.transformFlags&8388608)switch(fe.kind){case 224:case 255:return je(fe);case 165:return re(fe);case 235:return ce(fe);case 80:return Z(fe);case 168:return vn(fe)}if(fe.transformFlags&8388608||fe.transformFlags&33554432&&k&&x&&A)switch(fe.kind){case 217:case 218:return xe(fe,Ge);case 219:return ye(fe,Ge);case 206:return De(fe);case 208:return Ee(fe);case 204:return ke(fe);case 205:return de(fe);case 236:return He(fe);case 240:return Le(fe);case 254:case 211:case 169:case 167:case 170:case 171:{var tn=x;x=void 0;var le=e.visitEachChild(fe,f,h);return x=tn,le}}return e.visitEachChild(fe,f,h)}function c(fe){return m(fe,!0)}function f(fe){return m(fe,!1)}function N(fe){switch(fe.kind){case 289:return e.visitEachChild(fe,N,h);case 226:return ze(fe)}return f(fe)}function V(fe){switch(fe.kind){case 203:case 202:return on(fe);default:return f(fe)}}function Z(fe){return O?e.setOriginalNode(v.createIdentifier(""),fe):fe}function S(fe){switch(fe.kind){case 169:return;case 170:case 171:case 167:return ae(fe);case 165:return re(fe);case 160:return ge(fe);case 232:return fe;default:return f(fe)}}function ce(fe){var Ge=K;K=[];var tn=e.visitEachChild(fe,f,h),le=e.some(K)?Mr([tn],K,!0):tn;return K=Ge,le}function ge(fe){var Ge=e.visitEachChild(fe,f,h);if(e.some(H)){var tn=H;tn.push(Ge.expression),H=[],Ge=v.updateComputedPropertyName(Ge,v.inlineExpressions(tn))}return Ge}function ae(fe){if(e.Debug.assert(!e.some(fe.decorators)),!O||!e.isPrivateIdentifier(fe.name))return e.visitEachChild(fe,S,h);var Ge=Je(fe.name);if(e.Debug.assert(Ge,"Undeclared private name for property declaration."),!Ge.isValid)return fe;var tn=F(fe);tn&&Gr().push(v.createAssignment(tn,v.createFunctionExpression(e.filter(fe.modifiers,function(le){return!e.isStaticModifier(le)}),fe.asteriskToken,tn,void 0,e.visitParameterList(fe.parameters,S,h),void 0,e.visitFunctionBody(fe.body,S,h))))}function F(fe){e.Debug.assert(e.isPrivateIdentifier(fe.name));var Ge=Je(fe.name);if(e.Debug.assert(Ge,"Undeclared private name for property declaration."),Ge.kind==="m")return Ge.methodName;if(Ge.kind==="a"){if(e.isGetAccessor(fe))return Ge.getterName;if(e.isSetAccessor(fe))return Ge.setterName}}function re(fe){if(e.Debug.assert(!e.some(fe.decorators)),e.isPrivateIdentifier(fe.name)){if(!O)return v.updatePropertyDeclaration(fe,void 0,e.visitNodes(fe.modifiers,f,e.isModifier),fe.name,void 0,void 0,void 0);var Ge=Je(fe.name);if(e.Debug.assert(Ge,"Undeclared private name for property declaration."),!Ge.isValid)return fe}var tn=An(fe.name,!!fe.initializer||R);tn&&!e.isSimpleInlineableExpression(tn)&&Gr().push(tn)}function q(fe,Ge){return ue(fe,e.visitNode(Ge,f,e.isExpression))}function ue(fe,Ge){switch(e.setCommentRange(Ge,e.moveRangePos(Ge,-1)),fe.kind){case"a":return h.getEmitHelperFactory().createClassPrivateFieldGetHelper(Ge,fe.brandCheckIdentifier,fe.kind,fe.getterName);case"m":return h.getEmitHelperFactory().createClassPrivateFieldGetHelper(Ge,fe.brandCheckIdentifier,fe.kind,fe.methodName);case"f":return h.getEmitHelperFactory().createClassPrivateFieldGetHelper(Ge,fe.brandCheckIdentifier,fe.kind,fe.variableName);default:e.Debug.assertNever(fe,"Unknown private element type")}}function ke(fe){if(O&&e.isPrivateIdentifier(fe.name)){var Ge=Je(fe.name);if(Ge)return e.setTextRange(e.setOriginalNode(q(Ge,fe.expression),fe),fe)}if(k&&e.isSuperProperty(fe)&&e.isIdentifier(fe.name)&&x&&A){var tn=A.classConstructor,le=A.superClassReference,Vn=A.facts;if(Vn&1)return be(fe);if(tn&&le){var or=v.createReflectGetCall(le,v.createStringLiteralFromNode(fe.name),tn);return e.setOriginalNode(or,fe.expression),e.setTextRange(or,fe.expression),or}}return e.visitEachChild(fe,f,h)}function de(fe){if(k&&e.isSuperProperty(fe)&&x&&A){var Ge=A.classConstructor,tn=A.superClassReference,le=A.facts;if(le&1)return be(fe);if(Ge&&tn){var Vn=v.createReflectGetCall(tn,e.visitNode(fe.argumentExpression,f,e.isExpression),Ge);return e.setOriginalNode(Vn,fe.expression),e.setTextRange(Vn,fe.expression),Vn}}return e.visitEachChild(fe,f,h)}function xe(fe,Ge){if(fe.operator===45||fe.operator===46){if(O&&e.isPrivateIdentifierPropertyAccessExpression(fe.operand)){var tn=void 0;if(tn=Je(fe.operand.name)){var le=e.visitNode(fe.operand.expression,f,e.isExpression),Vn=Ne(le),or=Vn.readExpression,bn=Vn.initializeExpression,In=q(tn,or),pn=e.isPrefixUnaryExpression(fe)||Ge?void 0:v.createTempVariable(I);return In=e.expandPreOrPostfixIncrementOrDecrementExpression(v,fe,In,I,pn),In=Ie(tn,bn||or,In,63),e.setOriginalNode(In,fe),e.setTextRange(In,fe),pn&&(In=v.createComma(In,pn),e.setTextRange(In,fe)),In}}else if(k&&e.isSuperProperty(fe.operand)&&x&&A){var Rn=A.classConstructor,hn=A.superClassReference,rr=A.facts;if(rr&1){var lr=be(fe.operand);return e.isPrefixUnaryExpression(fe)?v.updatePrefixUnaryExpression(fe,lr):v.updatePostfixUnaryExpression(fe,lr)}if(Rn&&hn){var dr=void 0,gr=void 0;if(e.isPropertyAccessExpression(fe.operand)?e.isIdentifier(fe.operand.name)&&(gr=dr=v.createStringLiteralFromNode(fe.operand.name)):e.isSimpleInlineableExpression(fe.operand.argumentExpression)?gr=dr=fe.operand.argumentExpression:(gr=v.createTempVariable(I),dr=v.createAssignment(gr,e.visitNode(fe.operand.argumentExpression,f,e.isExpression))),dr&&gr){var In=v.createReflectGetCall(hn,gr,Rn);e.setTextRange(In,fe.operand);var pn=Ge?void 0:v.createTempVariable(I);return In=e.expandPreOrPostfixIncrementOrDecrementExpression(v,fe,In,I,pn),In=v.createReflectSetCall(hn,dr,In,Rn),e.setOriginalNode(In,fe),e.setTextRange(In,fe),pn&&(In=v.createComma(In,pn),e.setTextRange(In,fe)),In}}}}return e.visitEachChild(fe,f,h)}function Le(fe){return v.updateForStatement(fe,e.visitNode(fe.initializer,c,e.isForInitializer),e.visitNode(fe.condition,f,e.isExpression),e.visitNode(fe.incrementor,c,e.isExpression),e.visitIterationBody(fe.statement,f,h))}function He(fe){return v.updateExpressionStatement(fe,e.visitNode(fe.expression,c,e.isExpression))}function Ne(fe){var Ge=e.nodeIsSynthesized(fe)?fe:v.cloneNode(fe);if(e.isSimpleInlineableExpression(fe))return{readExpression:Ge,initializeExpression:void 0};var tn=v.createTempVariable(I),le=v.createAssignment(tn,Ge);return{readExpression:tn,initializeExpression:le}}function De(fe){if(O&&e.isPrivateIdentifierPropertyAccessExpression(fe.expression)){var Ge=v.createCallBinding(fe.expression,I,B),tn=Ge.thisArg,le=Ge.target;return e.isCallChain(fe)?v.updateCallChain(fe,v.createPropertyAccessChain(e.visitNode(le,f),fe.questionDotToken,"call"),void 0,void 0,Mr([e.visitNode(tn,f,e.isExpression)],e.visitNodes(fe.arguments,f,e.isExpression),!0)):v.updateCallExpression(fe,v.createPropertyAccessExpression(e.visitNode(le,f),"call"),void 0,Mr([e.visitNode(tn,f,e.isExpression)],e.visitNodes(fe.arguments,f,e.isExpression),!0))}if(k&&e.isSuperProperty(fe.expression)&&x&&(A==null?void 0:A.classConstructor)){var Vn=v.createFunctionCallCall(e.visitNode(fe.expression,f,e.isExpression),A.classConstructor,e.visitNodes(fe.arguments,f,e.isExpression));return e.setOriginalNode(Vn,fe),e.setTextRange(Vn,fe),Vn}return e.visitEachChild(fe,f,h)}function Ee(fe){if(O&&e.isPrivateIdentifierPropertyAccessExpression(fe.tag)){var Ge=v.createCallBinding(fe.tag,I,B),tn=Ge.thisArg,le=Ge.target;return v.updateTaggedTemplateExpression(fe,v.createCallExpression(v.createPropertyAccessExpression(e.visitNode(le,f),"bind"),void 0,[e.visitNode(tn,f,e.isExpression)]),void 0,e.visitNode(fe.template,f,e.isTemplateLiteral))}if(k&&e.isSuperProperty(fe.tag)&&x&&(A==null?void 0:A.classConstructor)){var Vn=v.createFunctionBindCall(e.visitNode(fe.tag,f,e.isExpression),A.classConstructor,[]);return e.setOriginalNode(Vn,fe),e.setTextRange(Vn,fe),v.updateTaggedTemplateExpression(fe,Vn,void 0,e.visitNode(fe.template,f,e.isTemplateLiteral))}return e.visitEachChild(fe,f,h)}function We(fe){if(O){A&&b.set(e.getOriginalNodeId(fe),A),se();var Ge=x;x=fe;var tn=e.visitNodes(fe.body.statements,f,e.isStatement);tn=v.mergeLexicalEnvironment(tn,X()),x=Ge;var le=v.createImmediatelyInvokedArrowFunction(tn);return e.setOriginalNode(le,fe),e.setTextRange(le,fe),e.addEmitFlags(le,2),le}}function ye(fe,Ge){if(e.isDestructuringAssignment(fe)){var tn=H;H=void 0,fe=v.updateBinaryExpression(fe,e.visitNode(fe.left,V),fe.operatorToken,e.visitNode(fe.right,f));var le=e.some(H)?v.inlineExpressions(e.compact(Mr(Mr([],H,!0),[fe],!1))):fe;return H=tn,le}if(e.isAssignmentExpression(fe)){if(O&&e.isPrivateIdentifierPropertyAccessExpression(fe.left)){var Vn=Je(fe.left.name);if(Vn)return e.setTextRange(e.setOriginalNode(Ie(Vn,fe.left.expression,fe.right,fe.operatorToken.kind),fe),fe)}else if(k&&e.isSuperProperty(fe.left)&&x&&A){var or=A.classConstructor,bn=A.superClassReference,In=A.facts;if(In&1)return v.updateBinaryExpression(fe,be(fe.left),fe.operatorToken,e.visitNode(fe.right,f,e.isExpression));if(or&&bn){var pn=e.isElementAccessExpression(fe.left)?e.visitNode(fe.left.argumentExpression,f,e.isExpression):e.isIdentifier(fe.left.name)?v.createStringLiteralFromNode(fe.left.name):void 0;if(pn){var Rn=e.visitNode(fe.right,f,e.isExpression);if(e.isCompoundAssignment(fe.operatorToken.kind)){var hn=pn;e.isSimpleInlineableExpression(pn)||(hn=v.createTempVariable(I),pn=v.createAssignment(hn,pn));var rr=v.createReflectGetCall(bn,hn,or);e.setOriginalNode(rr,fe.left),e.setTextRange(rr,fe.left),Rn=v.createBinaryExpression(rr,e.getNonAssignmentOperatorForCompoundAssignment(fe.operatorToken.kind),Rn),e.setTextRange(Rn,fe)}var lr=Ge?void 0:v.createTempVariable(I);return lr&&(Rn=v.createAssignment(lr,Rn),e.setTextRange(lr,fe)),Rn=v.createReflectSetCall(bn,pn,Rn,or),e.setOriginalNode(Rn,fe),e.setTextRange(Rn,fe),lr&&(Rn=v.createComma(Rn,lr),e.setTextRange(Rn,fe)),Rn}}}}return e.visitEachChild(fe,f,h)}function Ie(fe,Ge,tn,le){if(Ge=e.visitNode(Ge,f,e.isExpression),tn=e.visitNode(tn,f,e.isExpression),e.isCompoundAssignment(le)){var Vn=Ne(Ge),or=Vn.readExpression,bn=Vn.initializeExpression;Ge=bn||or,tn=v.createBinaryExpression(ue(fe,or),e.getNonAssignmentOperatorForCompoundAssignment(le),tn)}switch(e.setCommentRange(Ge,e.moveRangePos(Ge,-1)),fe.kind){case"a":return h.getEmitHelperFactory().createClassPrivateFieldSetHelper(Ge,fe.brandCheckIdentifier,tn,fe.kind,fe.setterName);case"m":return h.getEmitHelperFactory().createClassPrivateFieldSetHelper(Ge,fe.brandCheckIdentifier,tn,fe.kind,void 0);case"f":return h.getEmitHelperFactory().createClassPrivateFieldSetHelper(Ge,fe.brandCheckIdentifier,tn,fe.kind,fe.variableName);default:e.Debug.assertNever(fe,"Unknown private element type")}}function je(fe){if(!e.forEach(fe.members,Sn))return e.visitEachChild(fe,f,h);var Ge=H;if(H=void 0,Un(),O){var tn=e.getNameOfDeclaration(fe);tn&&e.isIdentifier(tn)&&(xr().className=e.idText(tn));var le=Me(fe);e.some(le)&&(xr().weakSetName=Ln("instances",le[0].name))}var Vn=e.isClassDeclaration(fe)?Cn(fe):an(fe);return pr(),H=Ge,Vn}function Sn(fe){return e.isPropertyDeclaration(fe)||e.isClassStaticBlockDeclaration(fe)||O&&fe.name&&e.isPrivateIdentifier(fe.name)}function Me(fe){return e.filter(fe.members,e.isNonStaticMethodOrAccessorWithPrivateName)}function we(fe){var Ge=0,tn=e.getOriginalNode(fe);e.isClassDeclaration(tn)&&e.classOrConstructorParameterIsDecorated(tn)&&(Ge|=1);for(var le=0,Vn=fe.members;lebn&&(R||e.addRange(In,e.visitNodes(Ge.body.statements,f,e.isStatement,bn,pn-bn)),bn=pn)}var Rn=v.createThis();return cn(In,Vn,Rn),Tn(In,le,Rn),Ge&&e.addRange(In,e.visitNodes(Ge.body.statements,f,e.isStatement,bn)),In=v.mergeLexicalEnvironment(In,X()),e.setTextRange(v.createBlock(e.setTextRange(v.createNodeArray(In),Ge?Ge.body.statements:fe.members),!0),Ge?Ge.body:void 0)}function Tn(fe,Ge,tn){for(var le=0,Vn=Ge;le=0;--le){var Vn=ee[le];if(!!Vn){var tn=(Ge=Vn.privateIdentifierEnvironment)===null||Ge===void 0?void 0:Ge.identifiers.get(fe.escapedText);if(tn)return tn}}}function kn(fe){var Ge=v.getGeneratedNameForNode(fe),tn=Je(fe.name);if(!tn)return e.visitEachChild(fe,f,h);var le=fe.expression;return(e.isThisProperty(fe)||e.isSuperProperty(fe)||!e.isSimpleCopiableExpression(fe.expression))&&(le=v.createTempVariable(I,!0),Gr().push(v.createBinaryExpression(le,63,e.visitNode(fe.expression,f,e.isExpression)))),v.createAssignmentTargetWrapper(Ge,Ie(tn,le,Ge,63))}function Qn(fe){var Ge=e.getTargetOfBindingOrAssignmentElement(fe);if(Ge){var tn=void 0;if(e.isPrivateIdentifierPropertyAccessExpression(Ge))tn=kn(Ge);else if(k&&e.isSuperProperty(Ge)&&x&&A){var le=A.classConstructor,Vn=A.superClassReference,or=A.facts;if(or&1)tn=be(Ge);else if(le&&Vn){var bn=e.isElementAccessExpression(Ge)?e.visitNode(Ge.argumentExpression,f,e.isExpression):e.isIdentifier(Ge.name)?v.createStringLiteralFromNode(Ge.name):void 0;if(bn){var In=v.createTempVariable(void 0);tn=v.createAssignmentTargetWrapper(In,v.createReflectSetCall(Vn,bn,In,le))}}}if(tn)return e.isAssignmentExpression(fe)?v.updateBinaryExpression(fe,tn,fe.operatorToken,e.visitNode(fe.right,f,e.isExpression)):e.isSpreadElement(fe)?v.updateSpreadElement(fe,tn):tn}return e.visitNode(fe,V)}function jn(fe){if(e.isObjectBindingOrAssignmentElement(fe)&&!e.isShorthandPropertyAssignment(fe)){var Ge=e.getTargetOfBindingOrAssignmentElement(fe),tn=void 0;if(Ge){if(e.isPrivateIdentifierPropertyAccessExpression(Ge))tn=kn(Ge);else if(k&&e.isSuperProperty(Ge)&&x&&A){var le=A.classConstructor,Vn=A.superClassReference,or=A.facts;if(or&1)tn=be(Ge);else if(le&&Vn){var bn=e.isElementAccessExpression(Ge)?e.visitNode(Ge.argumentExpression,f,e.isExpression):e.isIdentifier(Ge.name)?v.createStringLiteralFromNode(Ge.name):void 0;if(bn){var In=v.createTempVariable(void 0);tn=v.createAssignmentTargetWrapper(In,v.createReflectSetCall(Vn,bn,In,le))}}}}if(e.isPropertyAssignment(fe)){var pn=e.getInitializerOfBindingOrAssignmentElement(fe);return v.updatePropertyAssignment(fe,e.visitNode(fe.name,f,e.isPropertyName),tn?pn?v.createAssignment(tn,e.visitNode(pn,f)):tn:e.visitNode(fe.initializer,V,e.isExpression))}if(e.isSpreadAssignment(fe))return v.updateSpreadAssignment(fe,tn||e.visitNode(fe.expression,V,e.isExpression));e.Debug.assert(tn===void 0,"Should not have generated a wrapped target")}return e.visitNode(fe,f)}function on(fe){return e.isArrayLiteralExpression(fe)?v.updateArrayLiteralExpression(fe,e.visitNodes(fe.elements,Qn,e.isExpression)):v.updateObjectLiteralExpression(fe,e.visitNodes(fe.properties,jn,e.isObjectLiteralElementLike))}}e.transformClassFields=g;function t(h,v){return e.factory.createAssignment(h,e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment("value",v||e.factory.createVoidZero())]))}function p(h,v,I){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(I,"set"),void 0,[h,v||e.factory.createVoidZero()])}function P(h,v){return e.factory.createCallExpression(e.factory.createPropertyAccessExpression(v,"add"),void 0,[h])}function J(h){return h.escapedText==="#constructor"}})(un||(un={}));var un;(function(e){var a;(function(p){p[p.AsyncMethodsWithSuper=1]="AsyncMethodsWithSuper"})(a||(a={}));var d;(function(p){p[p.NonTopLevel=1]="NonTopLevel",p[p.HasLexicalThis=2]="HasLexicalThis"})(d||(d={}));function g(p){var P=p.factory,J=p.getEmitHelperFactory,h=p.resumeLexicalEnvironment,v=p.endLexicalEnvironment,I=p.hoistVariableDeclaration,X=p.getEmitResolver(),se=p.getCompilerOptions(),y=e.getEmitScriptTarget(se),w,D=0,U,B,R,O=[],k=0,M=p.onEmitNode,z=p.onSubstituteNode;return p.onEmitNode=Ne,p.onSubstituteNode=De,e.chainBundle(p,Y);function Y(Me){if(Me.isDeclarationFile)return Me;ne(1,!1),ne(2,!e.isEffectiveStrictModeSourceFile(Me,se));var we=e.visitEachChild(Me,A,p);return e.addEmitHelpers(we,p.readEmitHelpers()),we}function ne(Me,we){k=we?k|Me:k&~Me}function j(Me){return(k&Me)!=0}function H(){return!j(1)}function K(){return j(2)}function ee(Me,we,ze){var Cn=Me&~k;if(Cn){ne(Cn,!0);var an=we(ze);return ne(Cn,!1),an}return we(ze)}function b(Me){return e.visitEachChild(Me,A,p)}function A(Me){if((Me.transformFlags&128)==0)return Me;switch(Me.kind){case 130:return;case 216:return N(Me);case 167:return ee(1|2,V,Me);case 254:return ee(1|2,Z,Me);case 211:return ee(1|2,S,Me);case 212:return ee(1,ce,Me);case 204:return B&&e.isPropertyAccessExpression(Me)&&Me.expression.kind===106&&B.add(Me.name.escapedText),e.visitEachChild(Me,A,p);case 205:return B&&Me.expression.kind===106&&(R=!0),e.visitEachChild(Me,A,p);case 170:case 171:case 169:case 255:case 224:return ee(1|2,b,Me);default:return e.visitEachChild(Me,A,p)}}function E(Me){if(e.isNodeWithPossibleHoistedDeclaration(Me))switch(Me.kind){case 235:return C(Me);case 240:return f(Me);case 241:return m(Me);case 242:return c(Me);case 290:return x(Me);case 233:case 247:case 261:case 287:case 288:case 250:case 238:case 239:case 237:case 246:case 248:return e.visitEachChild(Me,E,p);default:return e.Debug.assertNever(Me,"Unhandled node.")}return A(Me)}function x(Me){var we=new e.Set;ge(Me.variableDeclaration,we);var ze;if(we.forEach(function(vn,Nn){U.has(Nn)&&(ze||(ze=new e.Set(U)),ze.delete(Nn))}),ze){var Cn=U;U=ze;var an=e.visitEachChild(Me,E,p);return U=Cn,an}else return e.visitEachChild(Me,E,p)}function C(Me){if(ae(Me.declarationList)){var we=F(Me.declarationList,!1);return we?P.createExpressionStatement(we):void 0}return e.visitEachChild(Me,A,p)}function m(Me){return P.updateForInStatement(Me,ae(Me.initializer)?F(Me.initializer,!0):e.visitNode(Me.initializer,A,e.isForInitializer),e.visitNode(Me.expression,A,e.isExpression),e.visitIterationBody(Me.statement,E,p))}function c(Me){return P.updateForOfStatement(Me,e.visitNode(Me.awaitModifier,A,e.isToken),ae(Me.initializer)?F(Me.initializer,!0):e.visitNode(Me.initializer,A,e.isForInitializer),e.visitNode(Me.expression,A,e.isExpression),e.visitIterationBody(Me.statement,E,p))}function f(Me){var we=Me.initializer;return P.updateForStatement(Me,ae(we)?F(we,!1):e.visitNode(Me.initializer,A,e.isForInitializer),e.visitNode(Me.condition,A,e.isExpression),e.visitNode(Me.incrementor,A,e.isExpression),e.visitIterationBody(Me.statement,E,p))}function N(Me){return H()?e.visitEachChild(Me,A,p):e.setOriginalNode(e.setTextRange(P.createYieldExpression(void 0,e.visitNode(Me.expression,A,e.isExpression)),Me),Me)}function V(Me){return P.updateMethodDeclaration(Me,void 0,e.visitNodes(Me.modifiers,A,e.isModifier),Me.asteriskToken,Me.name,void 0,void 0,e.visitParameterList(Me.parameters,A,p),void 0,e.getFunctionFlags(Me)&2?de(Me):e.visitFunctionBody(Me.body,A,p))}function Z(Me){return P.updateFunctionDeclaration(Me,void 0,e.visitNodes(Me.modifiers,A,e.isModifier),Me.asteriskToken,Me.name,void 0,e.visitParameterList(Me.parameters,A,p),void 0,e.getFunctionFlags(Me)&2?de(Me):e.visitFunctionBody(Me.body,A,p))}function S(Me){return P.updateFunctionExpression(Me,e.visitNodes(Me.modifiers,A,e.isModifier),Me.asteriskToken,Me.name,void 0,e.visitParameterList(Me.parameters,A,p),void 0,e.getFunctionFlags(Me)&2?de(Me):e.visitFunctionBody(Me.body,A,p))}function ce(Me){return P.updateArrowFunction(Me,e.visitNodes(Me.modifiers,A,e.isModifier),void 0,e.visitParameterList(Me.parameters,A,p),void 0,Me.equalsGreaterThanToken,e.getFunctionFlags(Me)&2?de(Me):e.visitFunctionBody(Me.body,A,p))}function ge(Me,we){var ze=Me.name;if(e.isIdentifier(ze))we.add(ze.escapedText);else for(var Cn=0,an=ze.elements;Cn=2&&X.getNodeCheckFlags(Me)&(4096|2048);if(Te&&(He(),B.size)){var qe=t(P,X,Me,B);O[e.getNodeId(qe)]=!0,e.insertStatementsAfterStandardPrologue(oe,[qe])}var cn=P.createBlock(oe,!0);e.setTextRange(cn,Me.body),Te&&R&&(X.getNodeCheckFlags(Me)&4096?e.addEmitHelper(cn,e.advancedAsyncSuperHelper):X.getNodeCheckFlags(Me)&2048&&e.addEmitHelper(cn,e.asyncSuperHelper)),qn=cn}return U=Nn,an||(B=dn,R=Tn),qn}function xe(Me,we){return e.isBlock(Me)?P.updateBlock(Me,e.visitNodes(Me.statements,E,e.isStatement,we)):P.converters.convertToFunctionBlock(e.visitNode(Me,E,e.isConciseBody))}function Le(Me){var we=Me&&e.getEntityNameFromTypeNode(Me);if(we&&e.isEntityName(we)){var ze=X.getTypeReferenceSerializationKind(we);if(ze===e.TypeReferenceSerializationKind.TypeWithConstructSignatureAndValue||ze===e.TypeReferenceSerializationKind.Unknown)return we}}function He(){(w&1)==0&&(w|=1,p.enableSubstitution(206),p.enableSubstitution(204),p.enableSubstitution(205),p.enableEmitNotification(255),p.enableEmitNotification(167),p.enableEmitNotification(170),p.enableEmitNotification(171),p.enableEmitNotification(169),p.enableEmitNotification(235))}function Ne(Me,we,ze){if(w&1&&je(we)){var Cn=X.getNodeCheckFlags(we)&(2048|4096);if(Cn!==D){var an=D;D=Cn,M(Me,we,ze),D=an;return}}else if(w&&O[e.getNodeId(we)]){var an=D;D=0,M(Me,we,ze),D=an;return}M(Me,we,ze)}function De(Me,we){return we=z(Me,we),Me===1&&D?Ee(we):we}function Ee(Me){switch(Me.kind){case 204:return We(Me);case 205:return ye(Me);case 206:return Ie(Me)}return Me}function We(Me){return Me.expression.kind===106?e.setTextRange(P.createPropertyAccessExpression(P.createUniqueName("_super",16|32),Me.name),Me):Me}function ye(Me){return Me.expression.kind===106?Sn(Me.argumentExpression,Me):Me}function Ie(Me){var we=Me.expression;if(e.isSuperProperty(we)){var ze=e.isPropertyAccessExpression(we)?We(we):ye(we);return P.createCallExpression(P.createPropertyAccessExpression(ze,"call"),void 0,Mr([P.createThis()],Me.arguments,!0))}return Me}function je(Me){var we=Me.kind;return we===255||we===169||we===167||we===170||we===171}function Sn(Me,we){return D&4096?e.setTextRange(P.createPropertyAccessExpression(P.createCallExpression(P.createUniqueName("_superIndex",16|32),void 0,[Me]),"value"),we):e.setTextRange(P.createCallExpression(P.createUniqueName("_superIndex",16|32),void 0,[Me]),we)}}e.transformES2017=g;function t(p,P,J,h){var v=(P.getNodeCheckFlags(J)&4096)!=0,I=[];return h.forEach(function(X,se){var y=e.unescapeLeadingUnderscores(se),w=[];w.push(p.createPropertyAssignment("get",p.createArrowFunction(void 0,void 0,[],void 0,void 0,e.setEmitFlags(p.createPropertyAccessExpression(e.setEmitFlags(p.createSuper(),4),y),4)))),v&&w.push(p.createPropertyAssignment("set",p.createArrowFunction(void 0,void 0,[p.createParameterDeclaration(void 0,void 0,void 0,"v",void 0,void 0,void 0)],void 0,void 0,p.createAssignment(e.setEmitFlags(p.createPropertyAccessExpression(e.setEmitFlags(p.createSuper(),4),y),4),p.createIdentifier("v"))))),I.push(p.createPropertyAssignment(y,p.createObjectLiteralExpression(w)))}),p.createVariableStatement(void 0,p.createVariableDeclarationList([p.createVariableDeclaration(p.createUniqueName("_super",16|32),void 0,void 0,p.createCallExpression(p.createPropertyAccessExpression(p.createIdentifier("Object"),"create"),void 0,[p.createNull(),p.createObjectLiteralExpression(I,!0)]))],2))}e.createSuperAccessVariableStatement=t})(un||(un={}));var un;(function(e){var a;(function(t){t[t.AsyncMethodsWithSuper=1]="AsyncMethodsWithSuper"})(a||(a={}));var d;(function(t){t[t.None=0]="None",t[t.HasLexicalThis=1]="HasLexicalThis",t[t.IterationContainer=2]="IterationContainer",t[t.AncestorFactsMask=3]="AncestorFactsMask",t[t.SourceFileIncludes=1]="SourceFileIncludes",t[t.SourceFileExcludes=2]="SourceFileExcludes",t[t.StrictModeSourceFileIncludes=0]="StrictModeSourceFileIncludes",t[t.ClassOrFunctionIncludes=1]="ClassOrFunctionIncludes",t[t.ClassOrFunctionExcludes=2]="ClassOrFunctionExcludes",t[t.ArrowFunctionIncludes=0]="ArrowFunctionIncludes",t[t.ArrowFunctionExcludes=2]="ArrowFunctionExcludes",t[t.IterationStatementIncludes=2]="IterationStatementIncludes",t[t.IterationStatementExcludes=0]="IterationStatementExcludes"})(d||(d={}));function g(t){var p=t.factory,P=t.getEmitHelperFactory,J=t.resumeLexicalEnvironment,h=t.endLexicalEnvironment,v=t.hoistVariableDeclaration,I=t.getEmitResolver(),X=t.getCompilerOptions(),se=e.getEmitScriptTarget(X),y=t.onEmitNode;t.onEmitNode=dn;var w=t.onSubstituteNode;t.onSubstituteNode=Tn;var D=!1,U,B,R=0,O=0,k,M,z,Y,ne=[];return e.chainBundle(t,b);function j(be,Xe){return O!==(O&~be|Xe)}function H(be,Xe){var En=O;return O=(O&~be|Xe)&3,En}function K(be){O=be}function ee(be){M=e.append(M,p.createVariableDeclaration(be))}function b(be){if(be.isDeclarationFile)return be;k=be;var Xe=F(be);return e.addEmitHelpers(Xe,t.readEmitHelpers()),k=void 0,M=void 0,Xe}function A(be){return c(be,!1)}function E(be){return c(be,!0)}function x(be){if(be.kind!==130)return be}function C(be,Xe,En,Pe){if(j(En,Pe)){var he=H(En,Pe),ln=be(Xe);return K(he),ln}return be(Xe)}function m(be){return e.visitEachChild(be,A,t)}function c(be,Xe){if((be.transformFlags&64)==0)return be;switch(be.kind){case 216:return f(be);case 222:return N(be);case 245:return V(be);case 248:return Z(be);case 203:return ce(be);case 219:return q(be,Xe);case 346:return ue(be,Xe);case 290:return ke(be);case 235:return de(be);case 252:return xe(be);case 238:case 239:case 241:return C(m,be,0,2);case 242:return De(be,void 0);case 240:return C(He,be,0,2);case 215:return Ne(be);case 169:return C(Sn,be,2,1);case 167:return C(ze,be,2,1);case 170:return C(Me,be,2,1);case 171:return C(we,be,2,1);case 254:return C(Cn,be,2,1);case 211:return C(vn,be,2,1);case 212:return C(an,be,2,0);case 162:return je(be);case 236:return ge(be);case 210:return ae(be,Xe);case 208:return re(be);case 204:return z&&e.isPropertyAccessExpression(be)&&be.expression.kind===106&&z.add(be.name.escapedText),e.visitEachChild(be,A,t);case 205:return z&&be.expression.kind===106&&(Y=!0),e.visitEachChild(be,A,t);case 255:case 224:return C(m,be,2,1);default:return e.visitEachChild(be,A,t)}}function f(be){return B&2&&B&1?e.setOriginalNode(e.setTextRange(p.createYieldExpression(void 0,P().createAwaitHelper(e.visitNode(be.expression,A,e.isExpression))),be),be):e.visitEachChild(be,A,t)}function N(be){if(B&2&&B&1){if(be.asteriskToken){var Xe=e.visitNode(e.Debug.assertDefined(be.expression),A,e.isExpression);return e.setOriginalNode(e.setTextRange(p.createYieldExpression(void 0,P().createAwaitHelper(p.updateYieldExpression(be,be.asteriskToken,e.setTextRange(P().createAsyncDelegatorHelper(e.setTextRange(P().createAsyncValuesHelper(Xe),Xe)),Xe)))),be),be)}return e.setOriginalNode(e.setTextRange(p.createYieldExpression(void 0,ye(be.expression?e.visitNode(be.expression,A,e.isExpression):p.createVoidZero())),be),be)}return e.visitEachChild(be,A,t)}function V(be){return B&2&&B&1?p.updateReturnStatement(be,ye(be.expression?e.visitNode(be.expression,A,e.isExpression):p.createVoidZero())):e.visitEachChild(be,A,t)}function Z(be){if(B&2){var Xe=e.unwrapInnermostStatementOfLabel(be);return Xe.kind===242&&Xe.awaitModifier?De(Xe,be):p.restoreEnclosingLabel(e.visitNode(Xe,A,e.isStatement,p.liftToBlock),be)}return e.visitEachChild(be,A,t)}function S(be){for(var Xe,En=[],Pe=0,he=be;Pe1){for(var Pe=1;Pe=2&&I.getNodeCheckFlags(be)&(4096|2048);if(sn){ie();var An=e.createSuperAccessVariableStatement(p,I,be,z);ne[e.getNodeId(An)]=!0,e.insertStatementsAfterStandardPrologue(Xe,[An])}Xe.push(ln),e.insertStatementsAfterStandardPrologue(Xe,h());var Un=p.updateBlock(be.body,Xe);return sn&&Y&&(I.getNodeCheckFlags(be)&4096?e.addEmitHelper(Un,e.advancedAsyncSuperHelper):I.getNodeCheckFlags(be)&2048&&e.addEmitHelper(Un,e.asyncSuperHelper)),z=Pe,Y=he,Un}function Kn(be){var Xe;J();var En=0,Pe=[],he=(Xe=e.visitNode(be.body,A,e.isConciseBody))!==null&&Xe!==void 0?Xe:p.createBlock([]);e.isBlock(he)&&(En=p.copyPrologue(he.statements,Pe,!1,A)),e.addRange(Pe,$e(void 0,be));var ln=h();if(En>0||e.some(Pe)||e.some(ln)){var sn=p.converters.convertToFunctionBlock(he,!0);return e.insertStatementsAfterStandardPrologue(Pe,ln),e.addRange(Pe,sn.statements.slice(En)),p.updateBlock(sn,e.setTextRange(p.createNodeArray(Pe),sn.statements))}return he}function $e(be,Xe){for(var En=0,Pe=Xe.parameters;En1?"jsxs":"jsx"}function X(ce){var ge=I(ce);return y(ge)}function se(){return y("Fragment")}function y(ce){var ge,ae,F=ce==="createElement"?h.importSpecifier:e.getJSXRuntimeImport(h.importSpecifier,P),re=(ae=(ge=h.utilizedImplicitRuntimeImports)===null||ge===void 0?void 0:ge.get(F))===null||ae===void 0?void 0:ae.get(ce);if(re)return re.name;h.utilizedImplicitRuntimeImports||(h.utilizedImplicitRuntimeImports=e.createMap());var q=h.utilizedImplicitRuntimeImports.get(F);q||(q=e.createMap(),h.utilizedImplicitRuntimeImports.set(F,q));var ue=t.createUniqueName("_"+ce,16|32|64),ke=t.createImportSpecifier(t.createIdentifier(ce),ue);return ue.generatedImportReference=ke,q.set(ce,ke),ue}function w(ce){if(ce.isDeclarationFile)return ce;J=ce,h={},h.importSpecifier=e.getJSXImplicitImportBase(P,ce);var ge=e.visitEachChild(ce,D,g);e.addEmitHelpers(ge,g.readEmitHelpers());var ae=ge.statements;if(h.filenameDeclaration&&(ae=e.insertStatementAfterCustomPrologue(ae.slice(),t.createVariableStatement(void 0,t.createVariableDeclarationList([h.filenameDeclaration],2)))),h.utilizedImplicitRuntimeImports)for(var F=0,re=e.arrayFrom(h.utilizedImplicitRuntimeImports.entries());F1?t.createTrue():t.createFalse());var de=e.getLineAndCharacterOfPosition(ke,q.pos);ue.push(t.createObjectLiteralExpression([t.createPropertyAssignment("fileName",v()),t.createPropertyAssignment("lineNumber",t.createNumericLiteral(de.line+1)),t.createPropertyAssignment("columnNumber",t.createNumericLiteral(de.character+1))])),ue.push(t.createThis())}}var xe=e.setTextRange(t.createCallExpression(X(F),void 0,ue),q);return re&&e.startOnNewLine(xe),xe}function H(ce,ge,ae,F){var re=V(ce),q,ue=ce.attributes.properties;if(ue.length===0)q=t.createNull();else{var ke=P.target;if(ke&&ke>=5)q=t.createObjectLiteralExpression(e.flatten(e.spanMap(ue,e.isJsxSpreadAttribute,function(He,Ne){return Ne?e.map(He,b):e.map(He,E)})));else{var de=e.flatten(e.spanMap(ue,e.isJsxSpreadAttribute,function(He,Ne){return Ne?e.map(He,A):t.createObjectLiteralExpression(e.map(He,E))}));e.isJsxSpreadAttribute(ue[0])&&de.unshift(t.createObjectLiteralExpression()),q=e.singleOrUndefined(de),q||(q=p().createAssignHelper(de))}}var xe=h.importSpecifier===void 0?e.createJsxFactoryExpression(t,g.getEmitResolver().getJsxFactoryEntity(J),P.reactNamespace,ce):y("createElement"),Le=e.createExpressionForJsxElement(t,xe,re,q,e.mapDefined(ge,B),F);return ae&&e.startOnNewLine(Le),Le}function K(ce,ge,ae,F){var re;if(ge&&ge.length){var q=Y(ge);q&&(re=q)}return j(se(),re||t.createObjectLiteralExpression([]),void 0,e.length(e.getSemanticJsxChildren(ge)),ae,F)}function ee(ce,ge,ae,F){var re=e.createExpressionForJsxFragment(t,g.getEmitResolver().getJsxFactoryEntity(J),g.getEmitResolver().getJsxFragmentFactoryEntity(J),P.reactNamespace,e.mapDefined(ge,B),ce,F);return ae&&e.startOnNewLine(re),re}function b(ce){return t.createSpreadAssignment(e.visitNode(ce.expression,D,e.isExpression))}function A(ce){return e.visitNode(ce.expression,D,e.isExpression)}function E(ce){var ge=Z(ce),ae=x(ce.initializer);return t.createPropertyAssignment(ge,ae)}function x(ce){if(ce===void 0)return t.createTrue();if(ce.kind===10){var ge=ce.singleQuote!==void 0?ce.singleQuote:!e.isStringDoubleQuoted(ce,J),ae=t.createStringLiteral(N(ce.text)||ce.text,ge);return e.setTextRange(ae,ce)}else return ce.kind===286?ce.expression===void 0?t.createTrue():e.visitNode(ce.expression,D,e.isExpression):e.Debug.failBadSyntaxKind(ce)}function C(ce){var ge=m(ce.text);return ge===void 0?void 0:t.createStringLiteral(ge)}function m(ce){for(var ge,ae=0,F=-1,re=0;re0?(e.insertStatementAfterCustomPrologue(te,e.setEmitFlags(I.createVariableStatement(void 0,I.createVariableDeclarationList(e.flattenDestructuringBinding(Q,C,v,0,I.getGeneratedNameForNode(Q)))),1048576)),!0):Fe?(e.insertStatementAfterCustomPrologue(te,e.setEmitFlags(I.createExpressionStatement(I.createAssignment(I.getGeneratedNameForNode(Q),e.visitNode(Fe,C,e.isExpression))),1048576)),!0):!1}function ze(te,Q,Ae,Fe){Fe=e.visitNode(Fe,C,e.isExpression);var Ze=I.createIfStatement(I.createTypeCheck(I.cloneNode(Ae),"undefined"),e.setEmitFlags(e.setTextRange(I.createBlock([I.createExpressionStatement(e.setEmitFlags(e.setTextRange(I.createAssignment(e.setEmitFlags(e.setParent(e.setTextRange(I.cloneNode(Ae),Ae),Ae.parent),48),e.setEmitFlags(Fe,48|e.getEmitFlags(Fe)|1536)),Q),1536))]),Q),1|32|384|1536));e.startOnNewLine(Ze),e.setTextRange(Ze,Q),e.setEmitFlags(Ze,384|32|1048576|1536),e.insertStatementAfterCustomPrologue(te,Ze)}function Cn(te,Q){return!!(te&&te.dotDotDotToken&&!Q)}function an(te,Q,Ae){var Fe=[],Ze=e.lastOrUndefined(Q.parameters);if(!Cn(Ze,Ae))return!1;var Gn=Ze.name.kind===79?e.setParent(e.setTextRange(I.cloneNode(Ze.name),Ze.name),Ze.name.parent):I.createTempVariable(void 0);e.setEmitFlags(Gn,48);var Yn=Ze.name.kind===79?I.cloneNode(Ze.name):Gn,_r=Q.parameters.length-1,kr=I.createLoopVariable();Fe.push(e.setEmitFlags(e.setTextRange(I.createVariableStatement(void 0,I.createVariableDeclarationList([I.createVariableDeclaration(Gn,void 0,void 0,I.createArrayLiteralExpression([]))])),Ze),1048576));var Et=I.createForStatement(e.setTextRange(I.createVariableDeclarationList([I.createVariableDeclaration(kr,void 0,void 0,I.createNumericLiteral(_r))]),Ze),e.setTextRange(I.createLessThan(kr,I.createPropertyAccessExpression(I.createIdentifier("arguments"),"length")),Ze),e.setTextRange(I.createPostfixIncrement(kr),Ze),I.createBlock([e.startOnNewLine(e.setTextRange(I.createExpressionStatement(I.createAssignment(I.createElementAccessExpression(Yn,_r===0?kr:I.createSubtract(kr,I.createNumericLiteral(_r))),I.createElementAccessExpression(I.createIdentifier("arguments"),kr))),Ze))]));return e.setEmitFlags(Et,1048576),e.startOnNewLine(Et),Fe.push(Et),Ze.name.kind!==79&&Fe.push(e.setEmitFlags(e.setTextRange(I.createVariableStatement(void 0,I.createVariableDeclarationList(e.flattenDestructuringBinding(Ze,C,v,0,Yn))),Ze),1048576)),e.insertStatementsAfterCustomPrologue(te,Fe),!0}function vn(te,Q){return z&65536&&Q.kind!==212?(Nn(te,Q,I.createThis()),!0):!1}function Nn(te,Q,Ae){qo();var Fe=I.createVariableStatement(void 0,I.createVariableDeclarationList([I.createVariableDeclaration(I.createUniqueName("_this",16|32),void 0,void 0,Ae)]));e.setEmitFlags(Fe,1536|1048576),e.setSourceMapRange(Fe,Q),e.insertStatementAfterCustomPrologue(te,Fe)}function Kn(te,Q,Ae){if(z&32768){var Fe=void 0;switch(Q.kind){case 212:return te;case 167:case 170:case 171:Fe=I.createVoidZero();break;case 169:Fe=I.createPropertyAccessExpression(e.setEmitFlags(I.createThis(),4),"constructor");break;case 254:case 211:Fe=I.createConditionalExpression(I.createLogicalAnd(e.setEmitFlags(I.createThis(),4),I.createBinaryExpression(e.setEmitFlags(I.createThis(),4),102,I.getLocalName(Q))),void 0,I.createPropertyAccessExpression(e.setEmitFlags(I.createThis(),4),"constructor"),void 0,I.createVoidZero());break;default:return e.Debug.failBadSyntaxKind(Q)}var Ze=I.createVariableStatement(void 0,I.createVariableDeclarationList([I.createVariableDeclaration(I.createUniqueName("_newTarget",16|32),void 0,void 0,Fe)]));e.setEmitFlags(Ze,1536|1048576),Ae&&(te=te.slice()),e.insertStatementAfterCustomPrologue(te,Ze)}return te}function $e(te,Q){for(var Ae=0,Fe=Q.members;Ae=te.end)return!1;for(var Fe=e.getEnclosingBlockScopeContainer(te);Ae;){if(Ae===Fe||Ae===te)return!1;if(e.isClassElement(Ae)&&Ae.parent===te)return!0;Ae=Ae.parent}return!1}function Oe(te){return H&1&&z&16?e.setTextRange(I.createUniqueName("_this",16|32),te):te}function Zn(te,Q){return e.isStatic(Q)?I.getInternalName(te):I.createPropertyAccessExpression(I.getInternalName(te),"prototype")}function Pr(te,Q){if(!te||!Q||e.some(te.parameters))return!1;var Ae=e.firstOrUndefined(te.body.statements);if(!Ae||!e.nodeIsSynthesized(Ae)||Ae.kind!==236)return!1;var Fe=Ae.expression;if(!e.nodeIsSynthesized(Fe)||Fe.kind!==206)return!1;var Ze=Fe.expression;if(!e.nodeIsSynthesized(Ze)||Ze.kind!==106)return!1;var Gn=e.singleOrUndefined(Fe.arguments);if(!Gn||!e.nodeIsSynthesized(Gn)||Gn.kind!==223)return!1;var Yn=Gn.expression;return e.isIdentifier(Yn)&&Yn.escapedText==="arguments"}}e.transformES2015=h})(un||(un={}));var un;(function(e){function a(d){var g=d.factory,t=d.getCompilerOptions(),p,P;(t.jsx===1||t.jsx===3)&&(p=d.onEmitNode,d.onEmitNode=v,d.enableEmitNotification(278),d.enableEmitNotification(279),d.enableEmitNotification(277),P=[]);var J=d.onSubstituteNode;return d.onSubstituteNode=I,d.enableSubstitution(204),d.enableSubstitution(291),e.chainBundle(d,h);function h(w){return w}function v(w,D,U){switch(D.kind){case 278:case 279:case 277:var B=D.tagName;P[e.getOriginalNodeId(B)]=!0;break}p(w,D,U)}function I(w,D){return D.id&&P&&P[D.id]?J(w,D):(D=J(w,D),e.isPropertyAccessExpression(D)?X(D):e.isPropertyAssignment(D)?se(D):D)}function X(w){if(e.isPrivateIdentifier(w.name))return w;var D=y(w.name);return D?e.setTextRange(g.createElementAccessExpression(w.expression,D),w):w}function se(w){var D=e.isIdentifier(w.name)&&y(w.name);return D?g.updatePropertyAssignment(w,D,w.initializer):w}function y(w){var D=w.originalKeywordKind||(e.nodeIsSynthesized(w)?e.stringToToken(e.idText(w)):void 0);if(D!==void 0&&D>=81&&D<=116)return e.setTextRange(g.createStringLiteralFromNode(w),w)}}e.transformES5=a})(un||(un={}));var un;(function(e){var a;(function(h){h[h.Nop=0]="Nop",h[h.Statement=1]="Statement",h[h.Assign=2]="Assign",h[h.Break=3]="Break",h[h.BreakWhenTrue=4]="BreakWhenTrue",h[h.BreakWhenFalse=5]="BreakWhenFalse",h[h.Yield=6]="Yield",h[h.YieldStar=7]="YieldStar",h[h.Return=8]="Return",h[h.Throw=9]="Throw",h[h.Endfinally=10]="Endfinally"})(a||(a={}));var d;(function(h){h[h.Open=0]="Open",h[h.Close=1]="Close"})(d||(d={}));var g;(function(h){h[h.Exception=0]="Exception",h[h.With=1]="With",h[h.Switch=2]="Switch",h[h.Loop=3]="Loop",h[h.Labeled=4]="Labeled"})(g||(g={}));var t;(function(h){h[h.Try=0]="Try",h[h.Catch=1]="Catch",h[h.Finally=2]="Finally",h[h.Done=3]="Done"})(t||(t={}));var p;(function(h){h[h.Next=0]="Next",h[h.Throw=1]="Throw",h[h.Return=2]="Return",h[h.Break=3]="Break",h[h.Yield=4]="Yield",h[h.YieldStar=5]="YieldStar",h[h.Catch=6]="Catch",h[h.Endfinally=7]="Endfinally"})(p||(p={}));function P(h){switch(h){case 2:return"return";case 3:return"break";case 4:return"yield";case 5:return"yield*";case 7:return"endfinally";default:return}}function J(h){var v=h.factory,I=h.getEmitHelperFactory,X=h.resumeLexicalEnvironment,se=h.endLexicalEnvironment,y=h.hoistFunctionDeclaration,w=h.hoistVariableDeclaration,D=h.getCompilerOptions(),U=e.getEmitScriptTarget(D),B=h.getEmitResolver(),R=h.onSubstituteNode;h.onSubstituteNode=Ge;var O,k,M,z,Y,ne,j,H,K,ee,b=1,A,E,x,C,m=0,c=0,f,N,V,Z,S,ce,ge,ae;return e.chainBundle(h,F);function F(fn){if(fn.isDeclarationFile||(fn.transformFlags&1024)==0)return fn;var cr=e.visitEachChild(fn,re,h);return e.addEmitHelpers(cr,h.readEmitHelpers()),cr}function re(fn){var cr=fn.transformFlags;return z?q(fn):M?ue(fn):e.isFunctionLikeDeclaration(fn)&&fn.asteriskToken?de(fn):cr&1024?e.visitEachChild(fn,re,h):fn}function q(fn){switch(fn.kind){case 238:return be(fn);case 239:return En(fn);case 247:return Wn(fn);case 248:return kn(fn);default:return ue(fn)}}function ue(fn){switch(fn.kind){case 254:return xe(fn);case 211:return Le(fn);case 170:case 171:return He(fn);case 235:return De(fn);case 240:return he(fn);case 241:return sn(fn);case 244:return Cr(fn);case 243:return Un(fn);case 245:return Gr(fn);default:return fn.transformFlags&524288?ke(fn):fn.transformFlags&(1024|2097152)?e.visitEachChild(fn,re,h):fn}}function ke(fn){switch(fn.kind){case 219:return Ee(fn);case 346:return je(fn);case 220:return Me(fn);case 222:return we(fn);case 202:return ze(fn);case 203:return an(fn);case 205:return vn(fn);case 206:return Nn(fn);case 207:return Kn(fn);default:return e.visitEachChild(fn,re,h)}}function de(fn){switch(fn.kind){case 254:return xe(fn);case 211:return Le(fn);default:return e.Debug.failBadSyntaxKind(fn)}}function xe(fn){if(fn.asteriskToken)fn=e.setOriginalNode(e.setTextRange(v.createFunctionDeclaration(void 0,fn.modifiers,void 0,fn.name,void 0,e.visitParameterList(fn.parameters,re,h),void 0,Ne(fn.body)),fn),fn);else{var cr=M,Hr=z;M=!1,z=!1,fn=e.visitEachChild(fn,re,h),M=cr,z=Hr}if(M){y(fn);return}else return fn}function Le(fn){if(fn.asteriskToken)fn=e.setOriginalNode(e.setTextRange(v.createFunctionExpression(void 0,void 0,fn.name,void 0,e.visitParameterList(fn.parameters,re,h),void 0,Ne(fn.body)),fn),fn);else{var cr=M,Hr=z;M=!1,z=!1,fn=e.visitEachChild(fn,re,h),M=cr,z=Hr}return fn}function He(fn){var cr=M,Hr=z;return M=!1,z=!1,fn=e.visitEachChild(fn,re,h),M=cr,z=Hr,fn}function Ne(fn){var cr=[],Hr=M,zt=z,Oe=Y,Zn=ne,Pr=j,te=H,Q=K,Ae=ee,Fe=b,Ze=A,Gn=E,Yn=x,_r=C;M=!0,z=!1,Y=void 0,ne=void 0,j=void 0,H=void 0,K=void 0,ee=void 0,b=1,A=void 0,E=void 0,x=void 0,C=v.createTempVariable(void 0),X();var kr=v.copyPrologue(fn.statements,cr,!1,re);$e(fn.statements,kr);var Et=Ti();return e.insertStatementsAfterStandardPrologue(cr,se()),cr.push(v.createReturnStatement(Et)),M=Hr,z=zt,Y=Oe,ne=Zn,j=Pr,H=te,K=Q,ee=Ae,b=Fe,A=Ze,E=Gn,x=Yn,C=_r,e.setTextRange(v.createBlock(cr,fn.multiLine),fn)}function De(fn){if(fn.transformFlags&524288){Be(fn.declarationList);return}else{if(e.getEmitFlags(fn)&1048576)return fn;for(var cr=0,Hr=fn.declarationList.declarations;cr0&&(ni(1,[v.createExpressionStatement(v.inlineExpressions(cr))]),cr=[]),cr.push(e.visitNode(zt,re,e.isExpression)))}}function je(fn){for(var cr=[],Hr=0,zt=fn.elements;Hr0&&(ni(1,[v.createExpressionStatement(v.inlineExpressions(cr))]),cr=[]),cr.push(e.visitNode(Oe,re,e.isExpression)))}return v.inlineExpressions(cr)}function Sn(fn){var cr=bn(),Hr=or();return er(Hr,e.visitNode(fn.left,re,e.isExpression),fn.left),fn.operatorToken.kind===55?Va(cr,Hr,fn.left):Ra(cr,Hr,fn.left),er(Hr,e.visitNode(fn.right,re,e.isExpression),fn.right),In(cr),Hr}function Me(fn){if(on(fn.whenTrue)||on(fn.whenFalse)){var cr=bn(),Hr=bn(),zt=or();return Va(cr,e.visitNode(fn.condition,re,e.isExpression),fn.condition),er(zt,e.visitNode(fn.whenTrue,re,e.isExpression),fn.whenTrue),Zt(Hr),In(cr),er(zt,e.visitNode(fn.whenFalse,re,e.isExpression),fn.whenFalse),In(Hr),zt}return e.visitEachChild(fn,re,h)}function we(fn){var cr=bn(),Hr=e.visitNode(fn.expression,re,e.isExpression);if(fn.asteriskToken){var zt=(e.getEmitFlags(fn.expression)&8388608)==0?e.setTextRange(I().createValuesHelper(Hr),fn):Hr;bi(zt,fn)}else Fa(Hr,fn);return In(cr),Br(fn)}function ze(fn){return Cn(fn.elements,void 0,void 0,fn.multiLine)}function Cn(fn,cr,Hr,zt){var Oe=fe(fn),Zn;if(Oe>0){Zn=or();var Pr=e.visitNodes(fn,re,e.isExpression,0,Oe);er(Zn,v.createArrayLiteralExpression(cr?Mr([cr],Pr,!0):Pr)),cr=void 0}var te=e.reduceLeft(fn,Q,[],Oe);return Zn?v.createArrayConcatCall(Zn,[v.createArrayLiteralExpression(te,zt)]):e.setTextRange(v.createArrayLiteralExpression(cr?Mr([cr],te,!0):te,zt),Hr);function Q(Ae,Fe){if(on(Fe)&&Ae.length>0){var Ze=Zn!==void 0;Zn||(Zn=or()),er(Zn,Ze?v.createArrayConcatCall(Zn,[v.createArrayLiteralExpression(Ae,zt)]):v.createArrayLiteralExpression(cr?Mr([cr],Ae,!0):Ae,zt)),cr=void 0,Ae=[]}return Ae.push(e.visitNode(Fe,re,e.isExpression)),Ae}}function an(fn){var cr=fn.properties,Hr=fn.multiLine,zt=fe(cr),Oe=or();er(Oe,v.createObjectLiteralExpression(e.visitNodes(cr,re,e.isObjectLiteralElementLike,0,zt),Hr));var Zn=e.reduceLeft(cr,Pr,[],zt);return Zn.push(Hr?e.startOnNewLine(e.setParent(e.setTextRange(v.cloneNode(Oe),Oe),Oe.parent)):Oe),v.inlineExpressions(Zn);function Pr(te,Q){on(Q)&&te.length>0&&(tt(v.createExpressionStatement(v.inlineExpressions(te))),te=[]);var Ae=e.createExpressionForObjectLiteralElementLike(v,fn,Q,Oe),Fe=e.visitNode(Ae,re,e.isExpression);return Fe&&(Hr&&e.startOnNewLine(Fe),te.push(Fe)),te}}function vn(fn){return on(fn.argumentExpression)?v.updateElementAccessExpression(fn,Vn(e.visitNode(fn.expression,re,e.isLeftHandSideExpression)),e.visitNode(fn.argumentExpression,re,e.isExpression)):e.visitEachChild(fn,re,h)}function Nn(fn){if(!e.isImportCall(fn)&&e.forEach(fn.arguments,on)){var cr=v.createCallBinding(fn.expression,w,U,!0),Hr=cr.target,zt=cr.thisArg;return e.setOriginalNode(e.setTextRange(v.createFunctionApplyCall(Vn(e.visitNode(Hr,re,e.isLeftHandSideExpression)),zt,Cn(fn.arguments)),fn),fn)}return e.visitEachChild(fn,re,h)}function Kn(fn){if(e.forEach(fn.arguments,on)){var cr=v.createCallBinding(v.createPropertyAccessExpression(fn.expression,"bind"),w),Hr=cr.target,zt=cr.thisArg;return e.setOriginalNode(e.setTextRange(v.createNewExpression(v.createFunctionApplyCall(Vn(e.visitNode(Hr,re,e.isExpression)),zt,Cn(fn.arguments,v.createVoidZero())),void 0,[]),fn),fn)}return e.visitEachChild(fn,re,h)}function $e(fn,cr){cr===void 0&&(cr=0);for(var Hr=fn.length,zt=cr;zt0)break;Q.push(Te(zt))}Q.length&&(tt(v.createExpressionStatement(v.inlineExpressions(Q))),te+=Q.length,Q=[])}}function Te(fn){return e.setSourceMapRange(v.createAssignment(e.setSourceMapRange(v.cloneNode(fn.name),fn.name),e.visitNode(fn.initializer,re,e.isExpression)),fn)}function qe(fn){if(on(fn))if(on(fn.thenStatement)||on(fn.elseStatement)){var cr=bn(),Hr=fn.elseStatement?bn():void 0;Va(fn.elseStatement?Hr:cr,e.visitNode(fn.expression,re,e.isExpression),fn.expression),ie(fn.thenStatement),fn.elseStatement&&(Zt(cr),In(Hr),ie(fn.elseStatement)),In(cr)}else tt(e.visitNode(fn,re,e.isStatement));else tt(e.visitNode(fn,re,e.isStatement))}function cn(fn){if(on(fn)){var cr=bn(),Hr=bn();dt(cr),In(Hr),ie(fn.statement),In(cr),Ra(Hr,e.visitNode(fn.expression,re,e.isExpression)),qr()}else tt(e.visitNode(fn,re,e.isStatement))}function be(fn){return z?(Or(),fn=e.visitEachChild(fn,re,h),qr(),fn):e.visitEachChild(fn,re,h)}function Xe(fn){if(on(fn)){var cr=bn(),Hr=dt(cr);In(cr),Va(Hr,e.visitNode(fn.expression,re,e.isExpression)),ie(fn.statement),Zt(cr),qr()}else tt(e.visitNode(fn,re,e.isStatement))}function En(fn){return z?(Or(),fn=e.visitEachChild(fn,re,h),qr(),fn):e.visitEachChild(fn,re,h)}function Pe(fn){if(on(fn)){var cr=bn(),Hr=bn(),zt=dt(Hr);if(fn.initializer){var Oe=fn.initializer;e.isVariableDeclarationList(Oe)?Be(Oe):tt(e.setTextRange(v.createExpressionStatement(e.visitNode(Oe,re,e.isExpression)),Oe))}In(cr),fn.condition&&Va(zt,e.visitNode(fn.condition,re,e.isExpression)),ie(fn.statement),In(Hr),fn.incrementor&&tt(e.setTextRange(v.createExpressionStatement(e.visitNode(fn.incrementor,re,e.isExpression)),fn.incrementor)),Zt(cr),qr()}else tt(e.visitNode(fn,re,e.isStatement))}function he(fn){z&&Or();var cr=fn.initializer;if(cr&&e.isVariableDeclarationList(cr)){for(var Hr=0,zt=cr.declarations;Hr0?v.inlineExpressions(e.map(Zn,Te)):void 0,e.visitNode(fn.condition,re,e.isExpression),e.visitNode(fn.incrementor,re,e.isExpression),e.visitIterationBody(fn.statement,re,h))}else fn=e.visitEachChild(fn,re,h);return z&&qr(),fn}function ln(fn){if(on(fn)){var cr=or(),Hr=or(),zt=v.createLoopVariable(),Oe=fn.initializer;w(zt),er(cr,v.createArrayLiteralExpression()),tt(v.createForInStatement(Hr,e.visitNode(fn.expression,re,e.isExpression),v.createExpressionStatement(v.createCallExpression(v.createPropertyAccessExpression(cr,"push"),void 0,[Hr])))),er(zt,v.createNumericLiteral(0));var Zn=bn(),Pr=bn(),te=dt(Pr);In(Zn),Va(te,v.createLessThan(zt,v.createPropertyAccessExpression(cr,"length")));var Q=void 0;if(e.isVariableDeclarationList(Oe)){for(var Ae=0,Fe=Oe.declarations;Ae0?Zt(cr,fn):tt(fn)}function Un(fn){if(z){var cr=Vr(fn.label&&e.idText(fn.label));if(cr>0)return Tr(cr,fn)}return e.visitEachChild(fn,re,h)}function pr(fn){var cr=Kr(fn.label?e.idText(fn.label):void 0);cr>0?Zt(cr,fn):tt(fn)}function Cr(fn){if(z){var cr=Kr(fn.label&&e.idText(fn.label));if(cr>0)return Tr(cr,fn)}return e.visitEachChild(fn,re,h)}function xr(fn){ei(e.visitNode(fn.expression,re,e.isExpression),fn)}function Gr(fn){return vr(e.visitNode(fn.expression,re,e.isExpression),fn)}function Ve(fn){on(fn)?(lr(Vn(e.visitNode(fn.expression,re,e.isExpression))),ie(fn.statement),dr()):tt(e.visitNode(fn,re,e.isStatement))}function Ln(fn){if(on(fn.caseBlock)){for(var cr=fn.caseBlock,Hr=cr.clauses.length,zt=fr(),Oe=Vn(e.visitNode(fn.expression,re,e.isExpression)),Zn=[],Pr=-1,te=0;te0)break;Fe.push(v.createCaseClause(e.visitNode(Q.expression,re,e.isExpression),[Tr(Zn[te],Q.expression)]))}else Ze++}Fe.length&&(tt(v.createSwitchStatement(Oe,v.createCaseBlock(Fe))),Ae+=Fe.length,Fe=[]),Ze>0&&(Ae+=Ze,Ze=0)}Pr>=0?Zt(Zn[Pr]):Zt(zt);for(var te=0;te=0;Hr--){var zt=H[Hr];if(ti(zt)){if(zt.labelText===fn)return!0}else break}return!1}function Kr(fn){if(H)if(fn)for(var cr=H.length-1;cr>=0;cr--){var Hr=H[cr];if(ti(Hr)&&Hr.labelText===fn)return Hr.breakLabel;if(Ei(Hr)&&yr(fn,cr-1))return Hr.breakLabel}else for(var cr=H.length-1;cr>=0;cr--){var Hr=H[cr];if(Ei(Hr))return Hr.breakLabel}return 0}function Vr(fn){if(H)if(fn)for(var cr=H.length-1;cr>=0;cr--){var Hr=H[cr];if(ta(Hr)&&yr(fn,cr-1))return Hr.continueLabel}else for(var cr=H.length-1;cr>=0;cr--){var Hr=H[cr];if(ta(Hr))return Hr.continueLabel}return 0}function wt(fn){if(fn!==void 0&&fn>0){ee===void 0&&(ee=[]);var cr=v.createNumericLiteral(-1);return ee[fn]===void 0?ee[fn]=[cr]:ee[fn].push(cr),cr}return v.createOmittedExpression()}function Bt(fn){var cr=v.createNumericLiteral(fn);return e.addSyntheticTrailingComment(cr,3,P(fn)),cr}function Tr(fn,cr){return e.Debug.assertLessThan(0,fn,"Invalid label"),e.setTextRange(v.createReturnStatement(v.createArrayLiteralExpression([Bt(3),wt(fn)])),cr)}function vr(fn,cr){return e.setTextRange(v.createReturnStatement(v.createArrayLiteralExpression(fn?[Bt(2),fn]:[Bt(2)])),cr)}function Br(fn){return e.setTextRange(v.createCallExpression(v.createPropertyAccessExpression(C,"sent"),void 0,[]),fn)}function Wr(){ni(0)}function tt(fn){fn?ni(1,[fn]):Wr()}function er(fn,cr,Hr){ni(2,[fn,cr],Hr)}function Zt(fn,cr){ni(3,[fn],cr)}function Ra(fn,cr,Hr){ni(4,[fn,cr],Hr)}function Va(fn,cr,Hr){ni(5,[fn,cr],Hr)}function bi(fn,cr){ni(7,[fn],cr)}function Fa(fn,cr){ni(6,[fn],cr)}function ei(fn,cr){ni(8,[fn],cr)}function Di(fn,cr){ni(9,[fn],cr)}function Vi(){ni(10)}function ni(fn,cr,Hr){A===void 0&&(A=[],E=[],x=[]),K===void 0&&In(bn());var zt=A.length;A[zt]=fn,E[zt]=cr,x[zt]=Hr}function Ti(){m=0,c=0,f=void 0,N=!1,V=!1,Z=void 0,S=void 0,ce=void 0,ge=void 0,ae=void 0;var fn=Ci();return I().createGeneratorHelper(e.setEmitFlags(v.createFunctionExpression(void 0,void 0,void 0,void 0,[v.createParameterDeclaration(void 0,void 0,void 0,C)],void 0,v.createBlock(fn,fn.length>0)),524288))}function Ci(){if(A){for(var fn=0;fn=0;cr--){var Hr=ae[cr];S=[v.createWithStatement(Hr.expression,v.createBlock(S))]}if(ge){var zt=ge.startLabel,Oe=ge.catchLabel,Zn=ge.finallyLabel,Pr=ge.endLabel;S.unshift(v.createExpressionStatement(v.createCallExpression(v.createPropertyAccessExpression(v.createPropertyAccessExpression(C,"trys"),"push"),void 0,[v.createArrayLiteralExpression([wt(zt),wt(Oe),wt(Zn),wt(Pr)])]))),ge=void 0}fn&&S.push(v.createExpressionStatement(v.createAssignment(v.createPropertyAccessExpression(C,"label"),v.createNumericLiteral(c+1))))}Z.push(v.createCaseClause(v.createNumericLiteral(c),S||[])),S=void 0}function zi(fn){if(!!K)for(var cr=0;cr(e.isExportName(Pe)?1:0);return!1}function N(Pe,he){return f(Pe.left)?e.flattenDestructuringAssignment(Pe,m,g,0,!he,ye):e.visitEachChild(Pe,m,g)}function V(Pe){return p.updateForStatement(Pe,e.visitNode(Pe.initializer,c,e.isForInitializer),e.visitNode(Pe.condition,m,e.isExpression),e.visitNode(Pe.incrementor,c,e.isExpression),e.visitIterationBody(Pe.statement,m,g))}function Z(Pe){return p.updateExpressionStatement(Pe,e.visitNode(Pe.expression,c,e.isExpression))}function S(Pe,he){return p.updateParenthesizedExpression(Pe,e.visitNode(Pe.expression,he?c:m,e.isExpression))}function ce(Pe,he){return p.updatePartiallyEmittedExpression(Pe,e.visitNode(Pe.expression,he?c:m,e.isExpression))}function ge(Pe,he){if((Pe.operator===45||Pe.operator===46)&&e.isIdentifier(Pe.operand)&&!e.isGeneratedIdentifier(Pe.operand)&&!e.isLocalName(Pe.operand)&&!e.isDeclarationNameOfEnumOrNamespace(Pe.operand)){var ln=En(Pe.operand);if(ln){var sn=void 0,An=e.visitNode(Pe.operand,m,e.isExpression);e.isPrefixUnaryExpression(Pe)?An=p.updatePrefixUnaryExpression(Pe,An):(An=p.updatePostfixUnaryExpression(Pe,An),he||(sn=p.createTempVariable(v),An=p.createAssignment(sn,An),e.setTextRange(An,Pe)),An=p.createComma(An,p.cloneNode(Pe.operand)),e.setTextRange(An,Pe));for(var Un=0,pr=ln;Un=2?pr=p.createArrowFunction(void 0,void 0,An,void 0,void 0,Un):(pr=p.createFunctionExpression(void 0,void 0,void 0,void 0,An,void 0,Un),he&&e.setEmitFlags(pr,8));var Cr=p.createNewExpression(p.createIdentifier("Promise"),void 0,[pr]);return I.esModuleInterop?p.createCallExpression(p.createPropertyAccessExpression(Cr,p.createIdentifier("then")),void 0,[P().createImportStarCallbackHelper()]):Cr}function q(Pe,he){var ln=p.createCallExpression(p.createPropertyAccessExpression(p.createIdentifier("Promise"),"resolve"),void 0,[]),sn=p.createCallExpression(p.createIdentifier("require"),void 0,Pe?[Pe]:[]);I.esModuleInterop&&(sn=P().createImportStarHelper(sn));var An;return y>=2?An=p.createArrowFunction(void 0,void 0,[],void 0,void 0,sn):(An=p.createFunctionExpression(void 0,void 0,void 0,void 0,[],void 0,p.createBlock([p.createReturnStatement(sn)])),he&&e.setEmitFlags(An,8)),p.createCallExpression(p.createPropertyAccessExpression(ln,"then"),void 0,[An])}function ue(Pe,he){return!I.esModuleInterop||e.getEmitFlags(Pe)&67108864?he:e.getExportNeedsImportStarHelper(Pe)?P().createImportStarHelper(he):he}function ke(Pe,he){return!I.esModuleInterop||e.getEmitFlags(Pe)&67108864?he:e.getImportNeedsImportStarHelper(Pe)?P().createImportStarHelper(he):e.getImportNeedsImportDefaultHelper(Pe)?P().createImportDefaultHelper(he):he}function de(Pe){var he,ln=e.getNamespaceDeclarationNode(Pe);if(w!==e.ModuleKind.AMD)if(Pe.importClause){var sn=[];ln&&!e.isDefaultImport(Pe)?sn.push(p.createVariableDeclaration(p.cloneNode(ln.name),void 0,void 0,ke(Pe,xe(Pe)))):(sn.push(p.createVariableDeclaration(p.getGeneratedNameForNode(Pe),void 0,void 0,ke(Pe,xe(Pe)))),ln&&e.isDefaultImport(Pe)&&sn.push(p.createVariableDeclaration(p.cloneNode(ln.name),void 0,void 0,p.getGeneratedNameForNode(Pe)))),he=e.append(he,e.setOriginalNode(e.setTextRange(p.createVariableStatement(void 0,p.createVariableDeclarationList(sn,y>=2?2:0)),Pe),Pe))}else return e.setOriginalNode(e.setTextRange(p.createExpressionStatement(xe(Pe)),Pe),Pe);else ln&&e.isDefaultImport(Pe)&&(he=e.append(he,p.createVariableStatement(void 0,p.createVariableDeclarationList([e.setOriginalNode(e.setTextRange(p.createVariableDeclaration(p.cloneNode(ln.name),void 0,void 0,p.getGeneratedNameForNode(Pe)),Pe),Pe)],y>=2?2:0))));if(Sn(Pe)){var An=e.getOriginalNodeId(Pe);R[An]=we(R[An],Pe)}else he=we(he,Pe);return e.singleOrMany(he)}function xe(Pe){var he=e.getExternalModuleNameLiteral(p,Pe,O,se,X,I),ln=[];return he&&ln.push(he),p.createCallExpression(p.createIdentifier("require"),void 0,ln)}function Le(Pe){e.Debug.assert(e.isExternalModuleImportEqualsDeclaration(Pe),"import= for internal module references should be handled in an earlier transformer.");var he;if(w!==e.ModuleKind.AMD?e.hasSyntacticModifier(Pe,1)?he=e.append(he,e.setOriginalNode(e.setTextRange(p.createExpressionStatement(dn(Pe.name,xe(Pe))),Pe),Pe)):he=e.append(he,e.setOriginalNode(e.setTextRange(p.createVariableStatement(void 0,p.createVariableDeclarationList([p.createVariableDeclaration(p.cloneNode(Pe.name),void 0,void 0,xe(Pe))],y>=2?2:0)),Pe),Pe)):e.hasSyntacticModifier(Pe,1)&&(he=e.append(he,e.setOriginalNode(e.setTextRange(p.createExpressionStatement(dn(p.getExportName(Pe),p.getLocalName(Pe))),Pe),Pe))),Sn(Pe)){var ln=e.getOriginalNodeId(Pe);R[ln]=ze(R[ln],Pe)}else he=ze(he,Pe);return e.singleOrMany(he)}function He(Pe){if(!!Pe.moduleSpecifier){var he=p.getGeneratedNameForNode(Pe);if(Pe.exportClause&&e.isNamedExports(Pe.exportClause)){var ln=[];w!==e.ModuleKind.AMD&&ln.push(e.setOriginalNode(e.setTextRange(p.createVariableStatement(void 0,p.createVariableDeclarationList([p.createVariableDeclaration(he,void 0,void 0,xe(Pe))])),Pe),Pe));for(var sn=0,An=Pe.exportClause.elements;sne.ModuleKind.ES2015||!B.exportClause||!e.isNamespaceExport(B.exportClause)||!B.moduleSpecifier)return B;var R=B.exportClause.name,O=g.getGeneratedNameForNode(R),k=g.createImportDeclaration(void 0,void 0,g.createImportClause(!1,void 0,g.createNamespaceImport(O)),B.moduleSpecifier);e.setOriginalNode(k,B.exportClause);var M=e.isExportNamespaceAsDefaultDeclaration(B)?g.createExportDefault(O):g.createExportDeclaration(void 0,void 0,!1,g.createNamedExports([g.createExportSpecifier(O,R)]));return e.setOriginalNode(M,B),[k,M]}function w(B,R,O){e.isSourceFile(R)?((e.isExternalModule(R)||p.isolatedModules)&&p.importHelpers&&(h=new e.Map),P(B,R,O),h=void 0):P(B,R,O)}function D(B,R){return R=J(B,R),h&&e.isIdentifier(R)&&e.getEmitFlags(R)&4096?U(R):R}function U(B){var R=e.idText(B),O=h.get(R);return O||h.set(R,O=g.createUniqueName(R,16|32)),O}}e.transformECMAScriptModule=a})(un||(un={}));var un;(function(e){function a(t){return e.isVariableDeclaration(t)||e.isPropertyDeclaration(t)||e.isPropertySignature(t)||e.isBindingElement(t)||e.isSetAccessor(t)||e.isGetAccessor(t)||e.isConstructSignatureDeclaration(t)||e.isCallSignatureDeclaration(t)||e.isMethodDeclaration(t)||e.isMethodSignature(t)||e.isFunctionDeclaration(t)||e.isParameter(t)||e.isTypeParameterDeclaration(t)||e.isExpressionWithTypeArguments(t)||e.isImportEqualsDeclaration(t)||e.isTypeAliasDeclaration(t)||e.isConstructorDeclaration(t)||e.isIndexSignatureDeclaration(t)||e.isPropertyAccessExpression(t)||e.isJSDocTypeAlias(t)}e.canProduceDiagnostics=a;function d(t){if(e.isSetAccessor(t)||e.isGetAccessor(t))return p;return e.isMethodSignature(t)||e.isMethodDeclaration(t)?J:g(t);function p(v){var I=P(v);return I!==void 0?{diagnosticMessage:I,errorNode:t,typeName:t.name}:void 0}function P(v){return e.isStatic(t)?v.errorModuleName?v.accessibility===2?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:t.parent.kind===255?v.errorModuleName?v.accessibility===2?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:v.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1}function J(v){var I=h(v);return I!==void 0?{diagnosticMessage:I,errorNode:t,typeName:t.name}:void 0}function h(v){return e.isStatic(t)?v.errorModuleName?v.accessibility===2?e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_method_0_of_exported_class_has_or_is_using_private_name_1:t.parent.kind===255?v.errorModuleName?v.accessibility===2?e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_method_0_of_exported_class_has_or_is_using_private_name_1:v.errorModuleName?e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Method_0_of_exported_interface_has_or_is_using_private_name_1}}e.createGetSymbolAccessibilityDiagnosticForNodeName=d;function g(t){if(e.isVariableDeclaration(t)||e.isPropertyDeclaration(t)||e.isPropertySignature(t)||e.isPropertyAccessExpression(t)||e.isBindingElement(t)||e.isConstructorDeclaration(t))return P;return e.isSetAccessor(t)||e.isGetAccessor(t)?J:e.isConstructSignatureDeclaration(t)||e.isCallSignatureDeclaration(t)||e.isMethodDeclaration(t)||e.isMethodSignature(t)||e.isFunctionDeclaration(t)||e.isIndexSignatureDeclaration(t)?h:e.isParameter(t)?e.isParameterPropertyDeclaration(t,t.parent)&&e.hasSyntacticModifier(t.parent,8)?P:v:e.isTypeParameterDeclaration(t)?X:e.isExpressionWithTypeArguments(t)?se:e.isImportEqualsDeclaration(t)?y:e.isTypeAliasDeclaration(t)||e.isJSDocTypeAlias(t)?w:e.Debug.assertNever(t,"Attempted to set a declaration diagnostic context for unhandled node kind: "+e.SyntaxKind[t.kind]);function p(D){if(t.kind===252||t.kind===201)return D.errorModuleName?D.accessibility===2?e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1;if(t.kind===165||t.kind===204||t.kind===164||t.kind===162&&e.hasSyntacticModifier(t.parent,8))return e.isStatic(t)?D.errorModuleName?D.accessibility===2?e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1:t.parent.kind===255||t.kind===162?D.errorModuleName?D.accessibility===2?e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1:D.errorModuleName?e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1}function P(D){var U=p(D);return U!==void 0?{diagnosticMessage:U,errorNode:t,typeName:t.name}:void 0}function J(D){var U;return t.kind===171?e.isStatic(t)?U=D.errorModuleName?e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_static_setter_0_from_exported_class_has_or_is_using_private_name_1:U=D.errorModuleName?e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_type_of_public_setter_0_from_exported_class_has_or_is_using_private_name_1:e.isStatic(t)?U=D.errorModuleName?D.accessibility===2?e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_static_getter_0_from_exported_class_has_or_is_using_private_name_1:U=D.errorModuleName?D.accessibility===2?e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Return_type_of_public_getter_0_from_exported_class_has_or_is_using_private_name_1,{diagnosticMessage:U,errorNode:t.name,typeName:t.name}}function h(D){var U;switch(t.kind){case 173:U=D.errorModuleName?e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 172:U=D.errorModuleName?e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 174:U=D.errorModuleName?e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0;break;case 167:case 166:e.isStatic(t)?U=D.errorModuleName?D.accessibility===2?e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0:t.parent.kind===255?U=D.errorModuleName?D.accessibility===2?e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0:U=D.errorModuleName?e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0;break;case 254:U=D.errorModuleName?D.accessibility===2?e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1:e.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0;break;default:return e.Debug.fail("This is unknown kind for signature: "+t.kind)}return{diagnosticMessage:U,errorNode:t.name||t}}function v(D){var U=I(D);return U!==void 0?{diagnosticMessage:U,errorNode:t,typeName:t.name}:void 0}function I(D){switch(t.parent.kind){case 169:return D.errorModuleName?D.accessibility===2?e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1;case 173:case 178:return D.errorModuleName?e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;case 172:return D.errorModuleName?e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;case 174:return D.errorModuleName?e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_index_signature_from_exported_interface_has_or_is_using_private_name_1;case 167:case 166:return e.isStatic(t.parent)?D.errorModuleName?D.accessibility===2?e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:t.parent.parent.kind===255?D.errorModuleName?D.accessibility===2?e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:D.errorModuleName?e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;case 254:case 177:return D.errorModuleName?D.accessibility===2?e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1;case 171:case 170:return D.errorModuleName?D.accessibility===2?e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_name_1_from_private_module_2:e.Diagnostics.Parameter_0_of_accessor_has_or_is_using_private_name_1;default:return e.Debug.fail("Unknown parent for parameter: "+e.SyntaxKind[t.parent.kind])}}function X(){var D;switch(t.parent.kind){case 255:D=e.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1;break;case 256:D=e.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1;break;case 193:D=e.Diagnostics.Type_parameter_0_of_exported_mapped_object_type_is_using_private_name_1;break;case 178:case 173:D=e.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 172:D=e.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1;break;case 167:case 166:e.isStatic(t.parent)?D=e.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1:t.parent.parent.kind===255?D=e.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1:D=e.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1;break;case 177:case 254:D=e.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1;break;case 257:D=e.Diagnostics.Type_parameter_0_of_exported_type_alias_has_or_is_using_private_name_1;break;default:return e.Debug.fail("This is unknown parent for type parameter: "+t.parent.kind)}return{diagnosticMessage:D,errorNode:t,typeName:t.name}}function se(){var D;return e.isClassDeclaration(t.parent.parent)?D=e.isHeritageClause(t.parent)&&t.parent.token===117?e.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1:t.parent.parent.name?e.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1:e.Diagnostics.extends_clause_of_exported_class_has_or_is_using_private_name_0:D=e.Diagnostics.extends_clause_of_exported_interface_0_has_or_is_using_private_name_1,{diagnosticMessage:D,errorNode:t,typeName:e.getNameOfDeclaration(t.parent.parent)}}function y(){return{diagnosticMessage:e.Diagnostics.Import_declaration_0_is_using_private_name_1,errorNode:t,typeName:t.name}}function w(D){return{diagnosticMessage:D.errorModuleName?e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1_from_module_2:e.Diagnostics.Exported_type_alias_0_has_or_is_using_private_name_1,errorNode:e.isJSDocTypeAlias(t)?e.Debug.checkDefined(t.typeExpression):t.type,typeName:e.isJSDocTypeAlias(t)?e.getNameOfDeclaration(t):t.name}}}e.createGetSymbolAccessibilityDiagnosticForNode=g})(un||(un={}));var un;(function(e){function a(y,w,D){var U=y.getCompilerOptions(),B=e.transformNodes(w,y,e.factory,U,D?[D]:e.filter(y.getSourceFiles(),e.isSourceFileNotJson),[p],!1);return B.diagnostics}e.getDeclarationDiagnostics=a;function d(y,w){var D=w.text.substring(y.pos,y.end);return e.stringContains(D,"@internal")}function g(y,w){var D=e.getParseTreeNode(y);if(D&&D.kind===162){var U=D.parent.parameters.indexOf(D),B=U>0?D.parent.parameters[U-1]:void 0,R=w.text,O=B?e.concatenate(e.getTrailingCommentRanges(R,e.skipTrivia(R,B.end+1,!1,!0)),e.getLeadingCommentRanges(R,y.pos)):e.getTrailingCommentRanges(R,e.skipTrivia(R,y.pos,!1,!0));return O&&O.length&&d(e.last(O),w)}var k=D&&e.getLeadingCommentRangesOfNode(D,w);return!!e.forEach(k,function(M){return d(M,w)})}e.isInternalDeclaration=g;var t=1024|2048|4096|8|524288|4|1;function p(y){var w=function(){return e.Debug.fail("Diagnostic emitted without context")},D=w,U=!0,B=!1,R=!1,O=!1,k=!1,M,z,Y,ne,j,H,K=y.factory,ee=y.getEmitHost(),b={trackSymbol:F,reportInaccessibleThisError:de,reportInaccessibleUniqueSymbolError:ue,reportCyclicStructureError:ke,reportPrivateInBaseOfClassExpression:re,reportLikelyUnsafeImportRequiredError:xe,reportTruncationError:Le,moduleResolverHost:ee,trackReferencedAmbientModule:ce,trackExternalModuleSymbolOfImportTypeNode:ae,reportNonlocalAugmentation:He,reportNonSerializableProperty:Ne},A,E,x,C,m,c,f=y.getEmitResolver(),N=y.getCompilerOptions(),V=N.noResolve,Z=N.stripInternal;return Ee;function S(Ve){if(!!Ve){z=z||new e.Set;for(var Ln=0,Wn=Ve;Ln0?y.parameters[0].type:void 0}function I(y){switch(y.kind){case 165:case 164:return!e.hasEffectiveModifier(y,8);case 162:case 252:return!0}return!1}function X(y){switch(y.kind){case 254:case 259:case 263:case 256:case 255:case 257:case 258:case 235:case 264:case 270:case 269:return!0}return!1}function se(y){switch(y.kind){case 173:case 169:case 167:case 170:case 171:case 165:case 164:case 166:case 172:case 174:case 252:case 161:case 226:case 176:case 187:case 177:case 178:case 198:return!0}return!1}})(un||(un={}));var un;(function(e){function a(w){switch(w){case e.ModuleKind.ESNext:case e.ModuleKind.ES2020:case e.ModuleKind.ES2015:return e.transformECMAScriptModule;case e.ModuleKind.System:return e.transformSystemModule;default:return e.transformModule}}var d;(function(w){w[w.Uninitialized=0]="Uninitialized",w[w.Initialized=1]="Initialized",w[w.Completed=2]="Completed",w[w.Disposed=3]="Disposed"})(d||(d={}));var g;(function(w){w[w.Substitution=1]="Substitution",w[w.EmitNotifications=2]="EmitNotifications"})(g||(g={})),e.noTransformers={scriptTransformers:e.emptyArray,declarationTransformers:e.emptyArray};function t(w,D,U){return{scriptTransformers:p(w,D,U),declarationTransformers:P(D)}}e.getTransformers=t;function p(w,D,U){if(U)return e.emptyArray;var B=e.getEmitScriptTarget(w),R=e.getEmitModuleKind(w),O=[];return e.addRange(O,D&&e.map(D.before,v)),O.push(e.transformTypeScript),O.push(e.transformClassFields),e.getJSXTransformEnabled(w)&&O.push(e.transformJsx),B<99&&O.push(e.transformESNext),B<8&&O.push(e.transformES2021),B<7&&O.push(e.transformES2020),B<6&&O.push(e.transformES2019),B<5&&O.push(e.transformES2018),B<4&&O.push(e.transformES2017),B<3&&O.push(e.transformES2016),B<2&&(O.push(e.transformES2015),O.push(e.transformGenerators)),O.push(a(R)),B<1&&O.push(e.transformES5),e.addRange(O,D&&e.map(D.after,v)),O}function P(w){var D=[];return D.push(e.transformDeclarations),e.addRange(D,w&&e.map(w.afterDeclarations,I)),D}function J(w){return function(D){return e.isBundle(D)?w.transformBundle(D):w.transformSourceFile(D)}}function h(w,D){return function(U){var B=w(U);return typeof B=="function"?D(U,B):J(B)}}function v(w){return h(w,e.chainBundle)}function I(w){return h(w,function(D,U){return U})}function X(w,D){return D}e.noEmitSubstitution=X;function se(w,D,U){U(w,D)}e.noEmitNotification=se;function y(w,D,U,B,R,O,k){for(var M=new Array(350),z,Y,ne,j=0,H=[],K=[],ee=[],b=[],A=0,E=!1,x=[],C=0,m,c,f=X,N=se,V=0,Z=[],S={factory:U,getCompilerOptions:function(){return B},getEmitResolver:function(){return w},getEmitHost:function(){return D},getEmitHelperFactory:e.memoize(function(){return e.createEmitHelperFactory(S)}),startLexicalEnvironment:je,suspendLexicalEnvironment:Sn,resumeLexicalEnvironment:Me,endLexicalEnvironment:we,setLexicalEnvironmentFlags:ze,getLexicalEnvironmentFlags:Cn,hoistVariableDeclaration:We,hoistFunctionDeclaration:ye,addInitializationStatement:Ie,startBlockScope:an,endBlockScope:vn,addBlockScopedVariable:Nn,requestEmitHelper:Kn,readEmitHelpers:$e,enableSubstitution:xe,enableEmitNotification:Ne,isSubstitutionEnabled:Le,isEmitNotificationEnabled:De,get onSubstituteNode(){return f},set onSubstituteNode(dn){e.Debug.assert(V<1,"Cannot modify transformation hooks after initialization has completed."),e.Debug.assert(dn!==void 0,"Value must not be 'undefined'"),f=dn},get onEmitNode(){return N},set onEmitNode(dn){e.Debug.assert(V<1,"Cannot modify transformation hooks after initialization has completed."),e.Debug.assert(dn!==void 0,"Value must not be 'undefined'"),N=dn},addDiagnostic:function(dn){Z.push(dn)}},ce=0,ge=R;ce0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(V<2,"Cannot modify the lexical environment after transformation has completed.");var Tn=e.setEmitFlags(U.createVariableDeclaration(dn),64);z?z.push(Tn):z=[Tn],j&1&&(j|=2)}function ye(dn){e.Debug.assert(V>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(V<2,"Cannot modify the lexical environment after transformation has completed."),e.setEmitFlags(dn,1048576),Y?Y.push(dn):Y=[dn]}function Ie(dn){e.Debug.assert(V>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(V<2,"Cannot modify the lexical environment after transformation has completed."),e.setEmitFlags(dn,1048576),ne?ne.push(dn):ne=[dn]}function je(){e.Debug.assert(V>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(V<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!E,"Lexical environment is suspended."),H[A]=z,K[A]=Y,ee[A]=ne,b[A]=j,A++,z=void 0,Y=void 0,ne=void 0,j=0}function Sn(){e.Debug.assert(V>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(V<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!E,"Lexical environment is already suspended."),E=!0}function Me(){e.Debug.assert(V>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(V<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(E,"Lexical environment is not suspended."),E=!1}function we(){e.Debug.assert(V>0,"Cannot modify the lexical environment during initialization."),e.Debug.assert(V<2,"Cannot modify the lexical environment after transformation has completed."),e.Debug.assert(!E,"Lexical environment is suspended.");var dn;if(z||Y||ne){if(Y&&(dn=Mr([],Y,!0)),z){var Tn=U.createVariableStatement(void 0,U.createVariableDeclarationList(z));e.setEmitFlags(Tn,1048576),dn?dn.push(Tn):dn=[Tn]}ne&&(dn?dn=Mr(Mr([],dn,!0),ne,!0):dn=Mr([],ne,!0))}return A--,z=H[A],Y=K[A],ne=ee[A],j=b[A],A===0&&(H=[],K=[],ee=[],b=[]),dn}function ze(dn,Tn){j=Tn?j|dn:j&~dn}function Cn(){return j}function an(){e.Debug.assert(V>0,"Cannot start a block scope during initialization."),e.Debug.assert(V<2,"Cannot start a block scope after transformation has completed."),x[C]=m,C++,m=void 0}function vn(){e.Debug.assert(V>0,"Cannot end a block scope during initialization."),e.Debug.assert(V<2,"Cannot end a block scope after transformation has completed.");var dn=e.some(m)?[U.createVariableStatement(void 0,U.createVariableDeclarationList(m.map(function(Tn){return U.createVariableDeclaration(Tn)}),1))]:void 0;return C--,m=x[C],C===0&&(x=[]),dn}function Nn(dn){e.Debug.assert(C>0,"Cannot add a block scoped variable outside of an iteration body."),(m||(m=[])).push(dn)}function Kn(dn){if(e.Debug.assert(V>0,"Cannot modify the transformation context during initialization."),e.Debug.assert(V<2,"Cannot modify the transformation context after transformation has completed."),e.Debug.assert(!dn.scoped,"Cannot request a scoped emit helper."),dn.dependencies)for(var Tn=0,qn=dn.dependencies;Tn0,"Cannot modify the transformation context during initialization."),e.Debug.assert(V<2,"Cannot modify the transformation context after transformation has completed.");var dn=c;return c=void 0,dn}function ie(){if(V<3){for(var dn=0,Tn=R;dn"),ut(),hn(T.type),ic(T)}function Pa(T){Ya("function"),ws(T,T.parameters),kt(":"),hn(T.type)}function co(T){kt("?"),hn(T.type)}function za(T){kt("!"),hn(T.type)}function fi(T){hn(T.type),kt("=")}function Wi(T){Rc(T),Ds(T,T.modifiers),Ya("new"),ut(),Sl(T,T.typeParameters),ws(T,T.parameters),ut(),kt("=>"),ut(),hn(T.type),ic(T)}function _o(T){Ya("typeof"),ut(),hn(T.exprName)}function No(T){kt("{");var Ye=e.getEmitFlags(T)&1?768:32897;oo(T,T.members,Ye|524288),kt("}")}function Mo(T){hn(T.elementType,An.parenthesizeElementTypeOfArrayType),kt("["),kt("]")}function yo(T){kt("..."),hn(T.type)}function qo(T){Dn(22,T.pos,kt,T);var Ye=e.getEmitFlags(T)&1?528:657;oo(T,T.elements,Ye|524288),Dn(23,T.elements.end,kt,T)}function So(T){hn(T.dotDotDotToken),hn(T.name),hn(T.questionToken),Dn(58,T.name.end,kt,T),ut(),hn(T.type)}function Zo(T){hn(T.type,An.parenthesizeElementTypeOfArrayType),kt("?")}function fn(T){oo(T,T.types,516,An.parenthesizeMemberOfElementType)}function cr(T){oo(T,T.types,520,An.parenthesizeMemberOfElementType)}function Hr(T){hn(T.checkType,An.parenthesizeMemberOfConditionalType),ut(),Ya("extends"),ut(),hn(T.extendsType,An.parenthesizeMemberOfConditionalType),ut(),kt("?"),ut(),hn(T.trueType),ut(),kt(":"),ut(),hn(T.falseType)}function zt(T){Ya("infer"),ut(),hn(T.typeParameter)}function Oe(T){kt("("),hn(T.type),kt(")")}function Zn(){Ya("this")}function Pr(T){Lu(T.operator,Ya),ut(),hn(T.type,An.parenthesizeMemberOfElementType)}function te(T){hn(T.objectType,An.parenthesizeMemberOfElementType),kt("["),hn(T.indexType),kt("]")}function Q(T){var Ye=e.getEmitFlags(T);kt("{"),Ye&1?ut():(es(),us()),T.readonlyToken&&(hn(T.readonlyToken),T.readonlyToken.kind!==143&&Ya("readonly"),ut()),kt("["),Tt(3,T.typeParameter),T.nameType&&(ut(),Ya("as"),ut(),hn(T.nameType)),kt("]"),T.questionToken&&(hn(T.questionToken),T.questionToken.kind!==57&&kt("?")),kt(":"),ut(),hn(T.type),so(),Ye&1?ut():(es(),ul()),kt("}")}function Ae(T){lr(T.literal)}function Fe(T){hn(T.head),oo(T,T.templateSpans,262144)}function Ze(T){T.isTypeOf&&(Ya("typeof"),ut()),Ya("import"),kt("("),hn(T.argument),kt(")"),T.qualifier&&(kt("."),hn(T.qualifier)),Wo(T,T.typeArguments)}function Gn(T){kt("{"),oo(T,T.elements,525136),kt("}")}function Yn(T){kt("["),oo(T,T.elements,524880),kt("]")}function _r(T){hn(T.dotDotDotToken),T.propertyName&&(hn(T.propertyName),kt(":"),ut()),hn(T.name),uu(T.initializer,T.name.end,T,An.parenthesizeExpressionForDisallowedComma)}function kr(T){var Ye=T.elements,ar=T.multiLine?65536:0;af(T,Ye,8914|ar,An.parenthesizeExpressionForDisallowedComma)}function Et(T){e.forEach(T.properties,Xo);var Ye=e.getEmitFlags(T)&65536;Ye&&us();var ar=T.multiLine?65536:0,Nr=de.languageVersion>=1&&!e.isJsonSourceFile(de)?64:0;oo(T,T.properties,526226|Nr|ar),Ye&&ul()}function Vt(T){lr(T.expression,An.parenthesizeLeftSideOfAccess);var Ye=T.questionDotToken||e.setTextRangePosEnd(e.factory.createToken(24),T.expression.end,T.name.pos),ar=ac(T,T.expression,Ye),Nr=ac(T,Ye,T.name);Ls(ar,!1);var ia=Ye.kind!==28&&Ea(T.expression)&&!je.hasTrailingComment()&&!je.hasTrailingWhitespace();ia&&kt("."),T.questionDotToken?hn(Ye):Dn(Ye.kind,T.expression.end,kt,T),Ls(Nr,!1),hn(T.name),tc(ar,Nr)}function Ea(T){if(T=e.skipPartiallyEmittedExpressions(T),e.isNumericLiteral(T)){var Ye=_c(T,!0,!1);return!T.numericLiteralFlags&&!e.stringContains(Ye,e.tokenToString(24))}else if(e.isAccessExpression(T)){var ar=e.getConstantValue(T);return typeof ar=="number"&&isFinite(ar)&&Math.floor(ar)===ar}}function da(T){lr(T.expression,An.parenthesizeLeftSideOfAccess),hn(T.questionDotToken),Dn(22,T.expression.end,kt,T),lr(T.argumentExpression),Dn(23,T.argumentExpression.end,kt,T)}function ai(T){var Ye=e.getEmitFlags(T)&536870912;Ye&&(kt("("),fo("0"),kt(","),ut()),lr(T.expression,An.parenthesizeLeftSideOfAccess),Ye&&kt(")"),hn(T.questionDotToken),Wo(T,T.typeArguments),af(T,T.arguments,2576,An.parenthesizeExpressionForDisallowedComma)}function ji(T){Dn(103,T.pos,Ya,T),ut(),lr(T.expression,An.parenthesizeExpressionOfNew),Wo(T,T.typeArguments),af(T,T.arguments,18960,An.parenthesizeExpressionForDisallowedComma)}function wi(T){var Ye=e.getEmitFlags(T)&536870912;Ye&&(kt("("),fo("0"),kt(","),ut()),lr(T.tag,An.parenthesizeLeftSideOfAccess),Ye&&kt(")"),Wo(T,T.typeArguments),ut(),lr(T.template)}function Gi(T){kt("<"),hn(T.type),kt(">"),lr(T.expression,An.parenthesizeOperandOfPrefixUnary)}function hs(T){var Ye=Dn(20,T.pos,kt,T),ar=hl(T.expression,T);lr(T.expression,void 0),np(T.expression,T),tc(ar),Dn(21,T.expression?T.expression.end:Ye,kt,T)}function as(T){ys(T.name),Ia(T)}function cs(T){Yi(T,T.decorators),Ds(T,T.modifiers),_e(T,ks)}function ks(T){Sl(T,T.typeParameters),Nc(T,T.parameters),Ic(T.type),ut(),hn(T.equalsGreaterThanToken)}function pl(T){Dn(89,T.pos,Ya,T),ut(),lr(T.expression,An.parenthesizeOperandOfPrefixUnary)}function ml(T){Dn(112,T.pos,Ya,T),ut(),lr(T.expression,An.parenthesizeOperandOfPrefixUnary)}function yl(T){Dn(114,T.pos,Ya,T),ut(),lr(T.expression,An.parenthesizeOperandOfPrefixUnary)}function Ss(T){Dn(131,T.pos,Ya,T),ut(),lr(T.expression,An.parenthesizeOperandOfPrefixUnary)}function Es(T){Lu(T.operator,mc),sl(T)&&ut(),lr(T.operand,An.parenthesizeOperandOfPrefixUnary)}function sl(T){var Ye=T.operand;return Ye.kind===217&&(T.operator===39&&(Ye.operator===39||Ye.operator===45)||T.operator===40&&(Ye.operator===40||Ye.operator===46))}function El(T){lr(T.operand,An.parenthesizeOperandOfPostfixUnary),Lu(T.operator,mc)}function bs(){return e.createBinaryExpressionTrampoline(T,Ye,ar,Nr,ia,void 0);function T(La,wa){if(wa){wa.stackIndex++,wa.preserveSourceNewlinesStack[wa.stackIndex]=ye,wa.containerPosStack[wa.stackIndex]=oe,wa.containerEndStack[wa.stackIndex]=Be,wa.declarationListContainerEndStack[wa.stackIndex]=Te;var xi=wa.shouldEmitCommentsStack[wa.stackIndex]=ht(La),Do=wa.shouldEmitSourceMapsStack[wa.stackIndex]=Or(La);Z==null||Z(La),xi&&xu(La),Do&&Gp(La),gr(La)}else wa={stackIndex:0,preserveSourceNewlinesStack:[void 0],containerPosStack:[-1],containerEndStack:[-1],declarationListContainerEndStack:[-1],shouldEmitCommentsStack:[!1],shouldEmitSourceMapsStack:[!1]};return wa}function Ye(La,wa,xi){return ba(La,xi,"left")}function ar(La,wa,xi){var Do=La.kind!==27,Io=ac(xi,xi.left,La),Ko=ac(xi,La,xi.right);Ls(Io,Do),Fl(La.pos),Td(La,La.kind===101?Ya:mc),mf(La.end,!0),Ls(Ko,!0)}function Nr(La,wa,xi){return ba(La,xi,"right")}function ia(La,wa){var xi=ac(La,La.left,La.operatorToken),Do=ac(La,La.operatorToken,La.right);if(tc(xi,Do),wa.stackIndex>0){var Io=wa.preserveSourceNewlinesStack[wa.stackIndex],Ko=wa.containerPosStack[wa.stackIndex],Yo=wa.containerEndStack[wa.stackIndex],Js=wa.declarationListContainerEndStack[wa.stackIndex],vc=wa.shouldEmitCommentsStack[wa.stackIndex],hc=wa.shouldEmitSourceMapsStack[wa.stackIndex];zr(Io),hc&&os(La),vc&&Xf(La,Ko,Yo,Js),S==null||S(La),wa.stackIndex--}}function ba(La,wa,xi){var Do=xi==="left"?An.getParenthesizeLeftSideOfBinaryForOperator(wa.operatorToken.kind):An.getParenthesizeRightSideOfBinaryForOperator(wa.operatorToken.kind),Io=dt(0,1,La);if(Io===Xa&&(e.Debug.assertIsDefined(En),La=Do(e.cast(En,e.isExpression)),Io=qr(1,1,La),En=void 0),(Io===uf||Io===_f||Io===fr)&&e.isBinaryExpression(La))return La;Pe=Do,Io(1,La)}}function pe(T){var Ye=ac(T,T.condition,T.questionToken),ar=ac(T,T.questionToken,T.whenTrue),Nr=ac(T,T.whenTrue,T.colonToken),ia=ac(T,T.colonToken,T.whenFalse);lr(T.condition,An.parenthesizeConditionOfConditionalExpression),Ls(Ye,!0),hn(T.questionToken),Ls(ar,!0),lr(T.whenTrue,An.parenthesizeBranchOfConditionalExpression),tc(Ye,ar),Ls(Nr,!0),hn(T.colonToken),Ls(ia,!0),lr(T.whenFalse,An.parenthesizeBranchOfConditionalExpression),tc(Nr,ia)}function Pn(T){hn(T.head),oo(T,T.templateSpans,262144)}function mr(T){Dn(125,T.pos,Ya,T),hn(T.asteriskToken),nf(T.expression,An.parenthesizeExpressionForDisallowedComma)}function Ce(T){Dn(25,T.pos,kt,T),lr(T.expression,An.parenthesizeExpressionForDisallowedComma)}function Xn(T){ys(T.name),Na(T)}function it(T){lr(T.expression,An.parenthesizeLeftSideOfAccess),Wo(T,T.typeArguments)}function Wt(T){lr(T.expression,void 0),T.type&&(ut(),Ya("as"),ut(),hn(T.type))}function oa(T){lr(T.expression,An.parenthesizeLeftSideOfAccess),mc("!")}function ci(T){sf(T.keywordToken,T.pos,kt),kt("."),hn(T.name)}function ui(T){lr(T.expression),hn(T.literal)}function xn(T){$o(T,!T.multiLine&&Sd(T))}function $o(T,Ye){Dn(18,T.pos,kt,T);var ar=Ye||e.getEmitFlags(T)&1?768:129;oo(T,T.statements,ar),Dn(19,T.statements.end,kt,T,!!(ar&1))}function Jo(T){Ds(T,T.modifiers),hn(T.declarationList),so()}function Ms(T){T?kt(";"):so()}function Hs(T){lr(T.expression,An.parenthesizeExpressionOfExpressionStatement),(!e.isJsonSourceFile(de)||e.nodeIsSynthesized(T.expression))&&so()}function Li(T){var Ye=Dn(99,T.pos,Ya,T);ut(),Dn(20,Ye,kt,T),lr(T.expression),Dn(21,T.expression.end,kt,T),jc(T,T.thenStatement),T.elseStatement&&(Au(T,T.thenStatement,T.elseStatement),Dn(91,T.thenStatement.end,Ya,T),T.elseStatement.kind===237?(ut(),hn(T.elseStatement)):jc(T,T.elseStatement))}function _s(T,Ye){var ar=Dn(115,Ye,Ya,T);ut(),Dn(20,ar,kt,T),lr(T.expression),Dn(21,T.expression.end,kt,T)}function ll(T){Dn(90,T.pos,Ya,T),jc(T,T.statement),e.isBlock(T.statement)&&!ye?ut():Au(T,T.statement,T.expression),_s(T,T.statement.end),so()}function ec(T){_s(T,T.pos),jc(T,T.statement)}function ql(T){var Ye=Dn(97,T.pos,Ya,T);ut();var ar=Dn(20,Ye,kt,T);Lc(T.initializer),ar=Dn(26,T.initializer?T.initializer.end:ar,kt,T),nf(T.condition),ar=Dn(26,T.condition?T.condition.end:ar,kt,T),nf(T.incrementor),Dn(21,T.incrementor?T.incrementor.end:ar,kt,T),jc(T,T.statement)}function Du(T){var Ye=Dn(97,T.pos,Ya,T);ut(),Dn(20,Ye,kt,T),Lc(T.initializer),ut(),Dn(101,T.initializer.end,Ya,T),ut(),lr(T.expression),Dn(21,T.expression.end,kt,T),jc(T,T.statement)}function bl(T){var Ye=Dn(97,T.pos,Ya,T);ut(),rf(T.awaitModifier),Dn(20,Ye,kt,T),Lc(T.initializer),ut(),Dn(158,T.initializer.end,Ya,T),ut(),lr(T.expression),Dn(21,T.expression.end,kt,T),jc(T,T.statement)}function Lc(T){T!==void 0&&(T.kind===253?hn(T):lr(T))}function Ac(T){Dn(86,T.pos,Ya,T),Zd(T.label),so()}function Tl(T){Dn(81,T.pos,Ya,T),Zd(T.label),so()}function Dn(T,Ye,ar,Nr,ia){var ba=e.getParseTreeNode(Nr),La=ba&&ba.kind===Nr.kind,wa=Ye;if(La&&de&&(Ye=e.skipTrivia(de.text,Ye)),La&&Nr.pos!==wa){var xi=ia&&de&&!e.positionsAreOnSameLine(wa,Ye,de);xi&&us(),Fl(wa),xi&&ul()}if(Ye=Lu(T,ar,Ye),La&&Nr.end!==Ye){var Do=Nr.kind===286;mf(Ye,!Do,Do)}return Ye}function nr(T){Dn(105,T.pos,Ya,T),nf(T.expression),so()}function Sr(T){var Ye=Dn(116,T.pos,Ya,T);ut(),Dn(20,Ye,kt,T),lr(T.expression),Dn(21,T.expression.end,kt,T),jc(T,T.statement)}function Qr(T){var Ye=Dn(107,T.pos,Ya,T);ut(),Dn(20,Ye,kt,T),lr(T.expression),Dn(21,T.expression.end,kt,T),ut(),hn(T.caseBlock)}function lt(T){hn(T.label),Dn(58,T.label.end,kt,T),ut(),hn(T.statement)}function ct(T){Dn(109,T.pos,Ya,T),nf(T.expression),so()}function Nt(T){Dn(111,T.pos,Ya,T),ut(),hn(T.tryBlock),T.catchClause&&(Au(T,T.tryBlock,T.catchClause),hn(T.catchClause)),T.finallyBlock&&(Au(T,T.catchClause||T.tryBlock,T.finallyBlock),Dn(96,(T.catchClause||T.tryBlock).end,Ya,T),ut(),hn(T.finallyBlock))}function Jt(T){sf(87,T.pos,Ya),so()}function Ut(T){hn(T.name),hn(T.exclamationToken),Ic(T.type),uu(T.initializer,T.type?T.type.end:T.name.end,T,An.parenthesizeExpressionForDisallowedComma)}function ii(T){Ya(e.isLet(T)?"let":e.isVarConst(T)?"const":"var"),ut(),oo(T,T.declarations,528)}function ga(T){Ia(T)}function Ia(T){Yi(T,T.decorators),Ds(T,T.modifiers),Ya("function"),hn(T.asteriskToken),ut(),rr(T.name),_e(T,nn)}function _e(T,Ye){var ar=T.body;if(ar)if(e.isBlock(ar)){var Nr=e.getEmitFlags(T)&65536;Nr&&us(),Rc(T),e.forEach(T.parameters,is),is(T.body),Ye(T),sr(ar),ic(T),Nr&&ul()}else Ye(T),ut(),lr(ar,An.parenthesizeConciseBodyOfArrowFunction);else Ye(T),so()}function nn(T){Sl(T,T.typeParameters),ws(T,T.parameters),Ic(T.type)}function _n(T){if(e.getEmitFlags(T)&1)return!0;if(T.multiLine||!e.nodeIsSynthesized(T)&&!e.rangeIsOnSingleLine(T,de)||Hf(T,T.statements,2)||Ji(T,T.statements,2))return!1;for(var Ye,ar=0,Nr=T.statements;ar0)return!1;Ye=ia}return!0}function sr(T){Z==null||Z(T),ut(),kt("{"),us();var Ye=_n(T)?$r:Ft;wl?wl(T,T.statements,Ye):Ye(T),ul(),sf(19,T.statements.end,kt,T),S==null||S(T)}function $r(T){Ft(T,!0)}function Ft(T,Ye){var ar=ef(T.statements),Nr=je.getTextPos();Ei(T),ar===0&&Nr===je.getTextPos()&&Ye?(ul(),oo(T,T.statements,768),us()):oo(T,T.statements,1,void 0,ar)}function Lt(T){Na(T)}function Na(T){e.forEach(T.members,Xo),Yi(T,T.decorators),Ds(T,T.modifiers),Ya("class"),T.name&&(ut(),rr(T.name));var Ye=e.getEmitFlags(T)&65536;Ye&&us(),Sl(T,T.typeParameters),oo(T,T.heritageClauses,0),ut(),kt("{"),oo(T,T.members,129),kt("}"),Ye&&ul()}function Ni(T){Yi(T,T.decorators),Ds(T,T.modifiers),Ya("interface"),ut(),hn(T.name),Sl(T,T.typeParameters),oo(T,T.heritageClauses,512),ut(),kt("{"),oo(T,T.members,129),kt("}")}function qi(T){Yi(T,T.decorators),Ds(T,T.modifiers),Ya("type"),ut(),hn(T.name),Sl(T,T.typeParameters),ut(),kt("="),ut(),hn(T.type),so()}function go(T){Ds(T,T.modifiers),Ya("enum"),ut(),hn(T.name),ut(),kt("{"),oo(T,T.members,145),kt("}")}function di(T){Ds(T,T.modifiers),~T.flags&1024&&(Ya(T.flags&16?"namespace":"module"),ut()),hn(T.name);var Ye=T.body;if(!Ye)return so();for(;Ye&&e.isModuleDeclaration(Ye);)kt("."),hn(Ye.name),Ye=Ye.body;ut(),hn(Ye)}function io(T){Rc(T),e.forEach(T.statements,is),$o(T,Sd(T)),ic(T)}function wo(T){Dn(18,T.pos,kt,T),oo(T,T.clauses,129),Dn(19,T.clauses.end,kt,T,!0)}function ko(T){Ds(T,T.modifiers),Dn(100,T.modifiers?T.modifiers.end:T.pos,Ya,T),ut(),T.isTypeOnly&&(Dn(150,T.pos,Ya,T),ut()),hn(T.name),ut(),Dn(63,T.name.end,kt,T),ut(),On(T.moduleReference),so()}function On(T){T.kind===79?lr(T):hn(T)}function Rs(T){Ds(T,T.modifiers),Dn(100,T.modifiers?T.modifiers.end:T.pos,Ya,T),ut(),T.importClause&&(hn(T.importClause),ut(),Dn(154,T.importClause.end,Ya,T),ut()),lr(T.moduleSpecifier),so()}function Pl(T){T.isTypeOnly&&(Dn(150,T.pos,Ya,T),ut()),hn(T.name),T.name&&T.namedBindings&&(Dn(27,T.name.end,kt,T),ut()),hn(T.namedBindings)}function _l(T){var Ye=Dn(41,T.pos,kt,T);ut(),Dn(127,Ye,Ya,T),ut(),hn(T.name)}function wu(T){Ff(T)}function Cl(T){Qu(T)}function au(T){var Ye=Dn(93,T.pos,Ya,T);ut(),T.isExportEquals?Dn(63,Ye,mc,T):Dn(88,Ye,Ya,T),ut(),lr(T.expression,T.isExportEquals?An.getParenthesizeRightSideOfBinaryForOperator(63):An.parenthesizeExpressionOfExportDefault),so()}function Xi(T){var Ye=Dn(93,T.pos,Ya,T);if(ut(),T.isTypeOnly&&(Ye=Dn(150,Ye,Ya,T),ut()),T.exportClause?hn(T.exportClause):Ye=Dn(41,Ye,kt,T),T.moduleSpecifier){ut();var ar=T.exportClause?T.exportClause.end:Ye;Dn(154,ar,Ya,T),ut(),lr(T.moduleSpecifier)}so()}function gl(T){var Ye=Dn(93,T.pos,Ya,T);ut(),Ye=Dn(127,Ye,Ya,T),ut(),Ye=Dn(141,Ye,Ya,T),ut(),hn(T.name),so()}function iu(T){var Ye=Dn(41,T.pos,kt,T);ut(),Dn(127,Ye,Ya,T),ut(),hn(T.name)}function Fu(T){Ff(T)}function ou(T){Qu(T)}function Ff(T){kt("{"),oo(T,T.elements,525136),kt("}")}function Qu(T){T.propertyName&&(hn(T.propertyName),ut(),Dn(127,T.propertyName.end,Ya,T),ut()),hn(T.name)}function ud(T){Ya("require"),kt("("),lr(T.expression),kt(")")}function nc(T){hn(T.openingElement),oo(T,T.children,262144),hn(T.closingElement)}function fd(T){kt("<"),dc(T.tagName),Wo(T,T.typeArguments),ut(),hn(T.attributes),kt("/>")}function dd(T){hn(T.openingFragment),oo(T,T.children,262144),hn(T.closingFragment)}function ja(T){if(kt("<"),e.isJsxOpeningElement(T)){var Ye=hl(T.tagName,T);dc(T.tagName),Wo(T,T.typeArguments),T.attributes.properties&&T.attributes.properties.length>0&&ut(),hn(T.attributes),np(T.attributes,T),tc(Ye)}kt(">")}function aa(T){je.writeLiteral(T.text)}function Cc(T){kt("")}function Ro(T){oo(T,T.properties,262656)}function pd(T){hn(T.name),Ed("=",kt,T.initializer,dr)}function fc(T){kt("{..."),lr(T.expression),kt("}")}function Ap(T){var Ye=!1;return e.forEachTrailingCommentRange((de==null?void 0:de.text)||"",T+1,function(){return Ye=!0}),Ye}function Fo(T){var Ye=!1;return e.forEachLeadingCommentRange((de==null?void 0:de.text)||"",T+1,function(){return Ye=!0}),Ye}function xc(T){return Ap(T)||Fo(T)}function Os(T){var Ye;if(T.expression||!Xe&&!e.nodeIsSynthesized(T)&&xc(T.pos)){var ar=de&&!e.nodeIsSynthesized(T)&&e.getLineAndCharacterOfPosition(de,T.pos).line!==e.getLineAndCharacterOfPosition(de,T.end).line;ar&&je.increaseIndent();var Nr=Dn(18,T.pos,kt,T);hn(T.dotDotDotToken),lr(T.expression),Dn(19,((Ye=T.expression)===null||Ye===void 0?void 0:Ye.end)||Nr,kt,T),ar&&je.decreaseIndent()}}function dc(T){T.kind===79?lr(T):hn(T)}function vl(T){Dn(82,T.pos,Ya,T),ut(),lr(T.expression,An.parenthesizeExpressionForDisallowedComma),Gf(T,T.statements,T.expression.end)}function xl(T){var Ye=Dn(88,T.pos,Ya,T);Gf(T,T.statements,Ye)}function Gf(T,Ye,ar){var Nr=Ye.length===1&&(e.nodeIsSynthesized(T)||e.nodeIsSynthesized(Ye[0])||e.rangeStartPositionsAreOnSameLine(T,Ye[0],de)),ia=163969;Nr?(sf(58,ar,kt,T),ut(),ia&=~(1|128)):Dn(58,ar,kt,T),oo(T,Ye,ia)}function md(T){ut(),Lu(T.token,Ya),ut(),oo(T,T.types,528)}function _d(T){var Ye=Dn(83,T.pos,Ya,T);ut(),T.variableDeclaration&&(Dn(20,Ye,kt,T),hn(T.variableDeclaration),Dn(21,T.variableDeclaration.end,kt,T),ut()),hn(T.block)}function Jd(T){hn(T.name),kt(":"),ut();var Ye=T.initializer;if((e.getEmitFlags(Ye)&512)==0){var ar=e.getCommentRange(Ye);mf(ar.pos)}lr(Ye,An.parenthesizeExpressionForDisallowedComma)}function Cp(T){hn(T.name),T.objectAssignmentInitializer&&(ut(),kt("="),ut(),lr(T.objectAssignmentInitializer,An.parenthesizeExpressionForDisallowedComma))}function xp(T){T.expression&&(Dn(25,T.pos,kt,T),lr(T.expression,An.parenthesizeExpressionForDisallowedComma))}function Kd(T){hn(T.name),uu(T.initializer,T.name.end,T,An.parenthesizeExpressionForDisallowedComma)}function Ip(T){if(Me("/**"),T.comment){var Ye=e.getTextOfJSDocComment(T.comment);if(Ye)for(var ar=Ye.split(/\r\n?|\n/g),Nr=0,ia=ar;Nr'),ze&&ze.sections.push({pos:ia,end:je.getTextPos(),kind:"no-default-lib"}),es()}if(de&&de.moduleName&&(kc('/// '),es()),de&&de.amdDependencies)for(var ba=0,La=de.amdDependencies;ba'):kc('/// '),es()}for(var xi=0,Do=Ye;xi'),ze&&ze.sections.push({pos:ia,end:je.getTextPos(),kind:"reference",data:Io.fileName}),es()}for(var Ko=0,Yo=ar;Ko'),ze&&ze.sections.push({pos:ia,end:je.getTextPos(),kind:"type",data:Io.fileName}),es()}for(var Js=0,vc=Nr;Js'),ze&&ze.sections.push({pos:ia,end:je.getTextPos(),kind:"lib",data:Io.fileName}),es()}}function Pp(T){var Ye=T.statements;Rc(T),e.forEach(T.statements,is),Ei(T);var ar=e.findIndex(Ye,function(Nr){return!e.isPrologueDirective(Nr)});Op(T),oo(T,Ye,1,void 0,ar===-1?Ye.length:ar),ic(T)}function Xd(T){lr(T.expression)}function yd(T){af(T,T.elements,528,void 0)}function ef(T,Ye,ar,Nr){for(var ia=!!Ye,ba=0;ba=ar.length||La===0;if(xi&&Nr&32768){ce&&ce(ar),ge&&ge(ar);return}if(Nr&15360&&(kt(ee(Nr)),xi&&ar&&mf(ar.pos,!0)),ce&&ce(ar),xi)Nr&1&&!(ye&&(!Ye||e.rangeIsOnSingleLine(Ye,de)))?es():Nr&256&&!(Nr&524288)&&ut();else{e.Debug.type(ar);var Do=(Nr&262144)==0,Io=Do,Ko=Hf(Ye,ar,Nr);Ko?(es(Ko),Io=!1):Nr&256&&ut(),Nr&128&&us();for(var Yo=void 0,Js=void 0,vc=!1,hc=0;hc0?((Nr&(3|128))==0&&(us(),vc=!0),es(ju),Io=!1):Yo&&Nr&512&&ut()}if(Js=Qn(sc),Io){if(mf){var Bp=e.getCommentRange(sc);mf(Bp.pos)}}else Io=Do;Ie=sc.pos,T.length===1?T(sc):T(sc,ia),vc&&(ul(),vc=!1),Yo=sc}var Up=Yo?e.getEmitFlags(Yo):0,Vp=Xe||!!(Up&1024),ku=(ar==null?void 0:ar.hasTrailingComma)&&Nr&64&&Nr&16;ku&&(Yo&&!Vp?Dn(27,Yo.end,kt,Yo):kt(",")),Yo&&(Ye?Ye.end:-1)!==Yo.end&&Nr&60&&!Vp&&Fl(ku&&(ar==null?void 0:ar.end)?ar.end:Yo.end),Nr&128&&ul(),jn(Js);var sp=Ji(Ye,ar,Nr);sp?es(sp):Nr&(2097152|256)&&ut()}ge&&ge(ar),Nr&15360&&(xi&&ar&&Fl(ar.end),kt(b(Nr)))}}function fo(T){je.writeLiteral(T)}function Mp(T){je.writeStringLiteral(T)}function ep(T){je.write(T)}function jf(T,Ye){je.writeSymbol(T,Ye)}function kt(T){je.writePunctuation(T)}function so(){je.writeTrailingSemicolon(";")}function Ya(T){je.writeKeyword(T)}function mc(T){je.writeOperator(T)}function bd(T){je.writeParameter(T)}function kc(T){je.writeComment(T)}function ut(){je.writeSpace(" ")}function of(T){je.writeProperty(T)}function es(T){T===void 0&&(T=1);for(var Ye=0;Ye0)}function us(){je.increaseIndent()}function ul(){je.decreaseIndent()}function sf(T,Ye,ar,Nr){return Kn?Lu(T,ar,Ye):Nu(Nr,T,ar,Ye,Lu)}function Td(T,Ye){ae&&ae(T),Ye(e.tokenToString(T.kind)),F&&F(T)}function Lu(T,Ye,ar){var Nr=e.tokenToString(T);return Ye(Nr),ar<0?ar:ar+Nr.length}function Au(T,Ye,ar){if(e.getEmitFlags(T)&1)ut();else if(ye){var Nr=ac(T,Ye,ar);Nr?es(Nr):ut()}else es()}function lf(T){for(var Ye=T.split(/\r\n?|\n/g),ar=e.guessIndentation(Ye),Nr=0,ia=Ye;Nr0||Nr>0)&&ar!==Nr&&(ia||pu(ar,T.kind!==344),(!ia||ar>=0&&(Ye&512)!=0)&&(oe=ar),(!ba||Nr>=0&&(Ye&1024)!=0)&&(Be=Nr,T.kind===253&&(Te=Nr))),e.forEach(e.getSyntheticLeadingComments(T),Iu),sn()}function Dd(T,Ye,ar,Nr,ia,ba,La){ln();var wa=Nr<0||(Ye&1024)!=0||T.kind===11;e.forEach(e.getSyntheticTrailingComments(T),Yf),(ar>0||Nr>0)&&ar!==Nr&&(oe=ia,Be=ba,Te=La,!wa&&T.kind!==344&&gc(Nr)),sn()}function Iu(T){(T.hasLeadingNewline||T.kind===2)&&je.writeLine(),Qf(T),T.hasTrailingNewLine||T.kind===2?je.writeLine():je.writeSpace(" ")}function Yf(T){je.isAtStartOfLine()||je.writeSpace(" "),Qf(T),T.hasTrailingNewLine&&je.writeLine()}function Qf(T){var Ye=Oa(T),ar=T.kind===3?e.computeLineStarts(Ye):void 0;e.writeCommentRange(Ye,ar,je,0,Ye.length,q)}function Oa(T){return T.kind===3?"/*"+T.text+"*/":"//"+T.text}function wl(T,Ye,ar){ln();var Nr=Ye.pos,ia=Ye.end,ba=e.getEmitFlags(T),La=Nr<0||(ba&512)!=0,wa=Xe||ia<0||(ba&1024)!=0;La||Fs(Ye),sn(),ba&2048&&!Xe?(Xe=!0,ar(T),Xe=!1):ar(T),ln(),wa||(pu(Ye.end,!0),be&&!je.isAtStartOfLine()&&je.writeLine()),sn()}function pt(T,Ye){return T=e.getOriginalNode(T),T.parent&&T.parent===e.getOriginalNode(Ye).parent}function Zf(T,Ye){if(Ye.pos-1&&Nr.indexOf(Ye)===ia+1}function pu(T,Ye){be=!1,Ye?T===0&&(de==null?void 0:de.isDeclarationFile)?$f(T,Ld):$f(T,mu):T===0&&$f(T,Oc)}function Oc(T,Ye,ar,Nr,ia){xd(T,Ye)&&mu(T,Ye,ar,Nr,ia)}function Ld(T,Ye,ar,Nr,ia){xd(T,Ye)||mu(T,Ye,ar,Nr,ia)}function df(T,Ye){return E.onlyPrintJsDocStyle?e.isJSDocLikeText(T,Ye)||e.isPinnedComment(T,Ye):!0}function mu(T,Ye,ar,Nr,ia){!df(de.text,T)||(be||(e.emitNewLineBeforeLeadingCommentOfPosition(Rn(),je,ia,T),be=!0),Ai(T),e.writeCommentRange(de.text,Rn(),je,T,Ye,q),Ai(Ye),Nr?je.writeLine():ar===3&&je.writeSpace(" "))}function Fl(T){Xe||T===-1||pu(T,!0)}function gc(T){_u(T,pf)}function pf(T,Ye,ar,Nr){!df(de.text,T)||(je.isAtStartOfLine()||je.writeSpace(" "),Ai(T),e.writeCommentRange(de.text,Rn(),je,T,Ye,q),Ai(Ye),Nr&&je.writeLine())}function mf(T,Ye,ar){Xe||(ln(),_u(T,Ye?pf:ar?Fp:ap),sn())}function Fp(T,Ye,ar){Ai(T),e.writeCommentRange(de.text,Rn(),je,T,Ye,q),Ai(Ye),ar===2&&je.writeLine()}function ap(T,Ye,ar,Nr){Ai(T),e.writeCommentRange(de.text,Rn(),je,T,Ye,q),Ai(Ye),Nr?je.writeLine():je.writeSpace(" ")}function $f(T,Ye){de&&(oe===-1||T!==oe)&&(Kc(T)?Ad(Ye):e.forEachLeadingCommentRange(de.text,T,Ye,T))}function _u(T,Ye){de&&(Be===-1||T!==Be&&T!==Te)&&e.forEachTrailingCommentRange(de.text,T,Ye)}function Kc(T){return cn!==void 0&&e.last(cn).nodePos===T}function Ad(T){var Ye=e.last(cn).detachedCommentEndPos;cn.length-1?cn.pop():cn=void 0,e.forEachLeadingCommentRange(de.text,Ye,T,Ye)}function Fs(T){var Ye=e.emitDetachedComments(de.text,Rn(),je,Cd,T,q,Xe);Ye&&(cn?cn.push(Ye):cn=[Ye])}function Cd(T,Ye,ar,Nr,ia,ba){!df(de.text,Nr)||(Ai(Nr),e.writeCommentRange(T,Ye,ar,Nr,ia,ba),Ai(ia))}function xd(T,Ye){return e.isRecognizedTripleSlashComment(de.text,T,Ye)}function oc(T){return T.parsedSourceMap===void 0&&T.sourceMapText!==void 0&&(T.parsedSourceMap=e.tryParseRawSourceMap(T.sourceMapText)||!1),T.parsedSourceMap||void 0}function _f(T,Ye){var ar=qr(3,T,Ye);Gp(Ye),ar(T,Ye),os(Ye)}function Gp(T){var Ye=e.getEmitFlags(T),ar=e.getSourceMapRange(T);if(e.isUnparsedNode(T)){e.Debug.assertIsDefined(T.parent,"UnparsedNodes must have parent pointers");var Nr=oc(T.parent);Nr&&$e&&$e.appendSourceMap(je.getLine(),je.getColumn(),Nr,T.parent.sourceMapPath,T.parent.getLineAndCharacterOfPosition(T.pos),T.parent.getLineAndCharacterOfPosition(T.end))}else{var ia=ar.source||ie;T.kind!==344&&(Ye&16)==0&&ar.pos>=0&&Vu(ar.source||ie,ip(ia,ar.pos)),Ye&64&&(Kn=!0)}}function os(T){var Ye=e.getEmitFlags(T),ar=e.getSourceMapRange(T);e.isUnparsedNode(T)||(Ye&64&&(Kn=!1),T.kind!==344&&(Ye&32)==0&&ar.end>=0&&Vu(ar.source||ie,ar.end))}function ip(T,Ye){return T.skipTrivia?T.skipTrivia(Ye):e.skipTrivia(T.text,Ye)}function Ai(T){if(!(Kn||e.positionIsSynthesized(T)||gf(ie))){var Ye=e.getLineAndCharacterOfPosition(ie,T),ar=Ye.line,Nr=Ye.character;$e.addMapping(je.getLine(),je.getColumn(),dn,ar,Nr,void 0)}}function Vu(T,Ye){if(T!==ie){var ar=ie,Nr=dn;op(T),Ai(Ye),Wu(ar,Nr)}else Ai(Ye)}function Nu(T,Ye,ar,Nr,ia){if(Kn||T&&e.isInJsonFile(T))return ia(Ye,ar,Nr);var ba=T&&T.emitNode,La=ba&&ba.flags||0,wa=ba&&ba.tokenSourceMapRanges&&ba.tokenSourceMapRanges[Ye],xi=wa&&wa.source||ie;return Nr=ip(xi,wa?wa.pos:Nr),(La&128)==0&&Nr>=0&&Vu(xi,Nr),Nr=ia(Ye,ar,Nr),wa&&(Nr=wa.end),(La&256)==0&&Nr>=0&&Vu(xi,Nr),Nr}function op(T){if(!Kn){if(ie=T,T===Tn){dn=qn;return}gf(T)||(dn=$e.addSource(T.fileName),E.inlineSources&&$e.setSourceContent(dn,T.text),Tn=T,qn=dn)}}function Wu(T,Ye){ie=T,dn=Ye}function gf(T){return e.fileExtensionIs(T.fileName,".json")}}e.createPrinter=H;function K(){var E=[];return E[1024]=["{","}"],E[2048]=["(",")"],E[4096]=["<",">"],E[8192]=["[","]"],E}function ee(E){return a[E&15360][0]}function b(E){return a[E&15360][1]}var A;(function(E){E[E.Auto=0]="Auto",E[E.CountMask=268435455]="CountMask",E[E._i=268435456]="_i"})(A||(A={}))})(un||(un={}));var un;(function(e){function a(D,U,B){if(!D.getDirectories||!D.readDirectory)return;var R=new e.Map,O=e.createGetCanonicalFileName(B);return{useCaseSensitiveFileNames:B,fileExists:A,readFile:function(S,ce){return D.readFile(S,ce)},directoryExists:D.directoryExists&&E,getDirectories:C,readDirectory:m,createDirectory:D.createDirectory&&x,writeFile:D.writeFile&&b,addOrDeleteFileOrDirectory:f,addOrDeleteFile:N,clearCache:Z,realpath:D.realpath&&c};function k(S){return e.toPath(S,U,O)}function M(S){return R.get(e.ensureTrailingDirectorySeparator(S))}function z(S){return M(e.getDirectoryPath(S))}function Y(S){return e.getBaseFileName(e.normalizePath(S))}function ne(S,ce){var ge;if(!D.realpath||e.ensureTrailingDirectorySeparator(k(D.realpath(S)))===ce){var ae={files:e.map(D.readDirectory(S,void 0,void 0,["*.*"]),Y)||[],directories:D.getDirectories(S)||[]};return R.set(e.ensureTrailingDirectorySeparator(ce),ae),ae}if((ge=D.directoryExists)===null||ge===void 0?void 0:ge.call(D,S))return R.set(ce,!1),!1}function j(S,ce){ce=e.ensureTrailingDirectorySeparator(ce);var ge=M(ce);if(ge)return ge;try{return ne(S,ce)}catch{e.Debug.assert(!R.has(e.ensureTrailingDirectorySeparator(ce)));return}}function H(S,ce){return O(S)===O(ce)}function K(S,ce){return e.some(S,function(ge){return H(ge,ce)})}function ee(S,ce,ge){if(K(S,ce)){if(!ge)return e.filterMutate(S,function(ae){return!H(ae,ce)})}else if(ge)return S.push(ce)}function b(S,ce,ge){var ae=k(S),F=z(ae);return F&&V(F,Y(S),!0),D.writeFile(S,ce,ge)}function A(S){var ce=k(S),ge=z(ce);return ge&&K(ge.files,Y(S))||D.fileExists(S)}function E(S){var ce=k(S);return R.has(e.ensureTrailingDirectorySeparator(ce))||D.directoryExists(S)}function x(S){var ce=k(S),ge=z(ce),ae=Y(S);ge&&ee(ge.directories,ae,!0),D.createDirectory(S)}function C(S){var ce=k(S),ge=j(S,ce);return ge?ge.directories.slice():D.getDirectories(S)}function m(S,ce,ge,ae,F){var re=k(S),q=j(S,re),ue;if(q!==void 0)return e.matchFiles(S,ce,ge,ae,B,U,F,ke,c,E);return D.readDirectory(S,ce,ge,ae,F);function ke(xe){var Le=k(xe);if(Le===re)return q||de(xe,Le);var He=j(xe,Le);return He!==void 0?He||de(xe,Le):e.emptyFileSystemEntries}function de(xe,Le){if(ue&&Le===re)return ue;var He={files:e.map(D.readDirectory(xe,void 0,void 0,["*.*"]),Y)||e.emptyArray,directories:D.getDirectories(xe)||e.emptyArray};return Le===re&&(ue=He),He}}function c(S){return D.realpath?D.realpath(S):S}function f(S,ce){var ge=M(ce);if(ge!==void 0){Z();return}var ae=z(ce);if(!!ae){if(!D.directoryExists){Z();return}var F=Y(S),re={fileExists:D.fileExists(ce),directoryExists:D.directoryExists(ce)};return re.directoryExists||K(ae.directories,F)?Z():V(ae,F,re.fileExists),re}}function N(S,ce,ge){if(ge!==e.FileWatcherEventKind.Changed){var ae=z(ce);ae&&V(ae,Y(S),ge===e.FileWatcherEventKind.Created)}}function V(S,ce,ge){ee(S.files,ce,ge)}function Z(){R.clear()}}e.createCachedDirectoryStructureHost=a,function(D){D[D.None=0]="None",D[D.Partial=1]="Partial",D[D.Full=2]="Full"}(e.ConfigFileProgramReloadLevel||(e.ConfigFileProgramReloadLevel={}));function d(D,U,B,R,O){var k,M=e.arrayToMap(((k=U==null?void 0:U.configFile)===null||k===void 0?void 0:k.extendedSourceFiles)||e.emptyArray,O);B.forEach(function(z,Y){M.has(Y)||(z.projects.delete(D),z.close())}),M.forEach(function(z,Y){var ne=B.get(Y);ne?ne.projects.add(D):B.set(Y,{projects:new e.Set([D]),watcher:R(z,Y),close:function(){var j=B.get(Y);!j||j.projects.size!==0||(j.watcher.close(),B.delete(Y))}})})}e.updateSharedExtendedConfigFileWatcher=d;function g(D,U){U.forEach(function(B){B.projects.delete(D)&&B.close()})}e.clearSharedExtendedConfigFileWatcher=g;function t(D,U,B){!D.delete(U)||D.forEach(function(R,O){var k,M=R.extendedResult;((k=M.extendedSourceFiles)===null||k===void 0?void 0:k.some(function(z){return B(z)===U}))&&t(D,O,B)})}e.cleanExtendedConfigCache=t;function p(D,U,B){var R=new e.Map(D);e.mutateMap(U,R,{createNewValue:B,onDeleteValue:e.closeFileWatcher})}e.updatePackageJsonWatch=p;function P(D,U,B){var R=D.getMissingFilePaths(),O=e.arrayToMap(R,e.identity,e.returnTrue);e.mutateMap(U,O,{createNewValue:B,onDeleteValue:e.closeFileWatcher})}e.updateMissingFilePathsWatch=P;function J(D,U,B){e.mutateMap(D,U,{createNewValue:R,onDeleteValue:w,onExistingValue:O});function R(k,M){return{watcher:B(k,M),flags:M}}function O(k,M,z){k.flags!==M&&(k.watcher.close(),D.set(z,R(z,M)))}}e.updateWatchingWildcardDirectories=J;function h(D){var U=D.watchedDirPath,B=D.fileOrDirectory,R=D.fileOrDirectoryPath,O=D.configFileName,k=D.options,M=D.program,z=D.extraFileExtensions,Y=D.currentDirectory,ne=D.useCaseSensitiveFileNames,j=D.writeLog,H=D.toPath,K=e.removeIgnoredPath(R);if(!K)return j("Project: "+O+" Detected ignored path: "+B),!0;if(R=K,R===U)return!1;if(e.hasExtension(R)&&!e.isSupportedSourceFileName(B,k,z))return j("Project: "+O+" Detected file add/remove of non supported extension: "+B),!0;if(e.isExcludedFile(B,k.configFile.configFileSpecs,e.getNormalizedAbsolutePath(e.getDirectoryPath(O),Y),ne,Y))return j("Project: "+O+" Detected excluded file: "+B),!0;if(!M||e.outFile(k)||k.outDir)return!1;if(e.fileExtensionIs(R,".d.ts")){if(k.declarationDir)return!1}else if(!e.fileExtensionIsOneOf(R,e.supportedJSExtensions))return!1;var ee=e.removeFileExtension(R),b=e.isArray(M)?void 0:v(M)?M.getProgramOrUndefined():M,A=!b&&!e.isArray(M)?M:void 0;if(E(ee+".ts")||E(ee+".tsx"))return j("Project: "+O+" Detected output file: "+B),!0;return!1;function E(x){return b?!!b.getSourceFileByPath(x):A?A.getState().fileInfos.has(x):!!e.find(M,function(C){return H(C)===x})}}e.isIgnoredFileFromWildCardWatching=h;function v(D){return!!D.getState}function I(D,U){return D?D.isEmittedFile(U):!1}e.isEmittedFileOfProgram=I;var X;(function(D){D[D.None=0]="None",D[D.TriggerOnly=1]="TriggerOnly",D[D.Verbose=2]="Verbose"})(X=e.WatchLogLevel||(e.WatchLogLevel={}));function se(D,U,B,R){e.setSysLog(U===X.Verbose?B:e.noop);var O={watchFile:function(A,E,x,C){return D.watchFile(A,E,x,C)},watchDirectory:function(A,E,x,C){return D.watchDirectory(A,E,(x&1)!=0,C)}},k=U!==X.None?{watchFile:ee("watchFile"),watchDirectory:ee("watchDirectory")}:void 0,M=U===X.Verbose?{watchFile:H,watchDirectory:K}:k||O,z=U===X.Verbose?j:e.returnNoopFileWatcher;return{watchFile:Y("watchFile"),watchDirectory:Y("watchDirectory")};function Y(A){return function(E,x,C,m,c,f){var N;return e.matchesExclude(E,A==="watchFile"?m==null?void 0:m.excludeFiles:m==null?void 0:m.excludeDirectories,ne(),((N=D.getCurrentDirectory)===null||N===void 0?void 0:N.call(D))||"")?z(E,C,m,c,f):M[A].call(void 0,E,x,C,m,c,f)}}function ne(){return typeof D.useCaseSensitiveFileNames=="boolean"?D.useCaseSensitiveFileNames:D.useCaseSensitiveFileNames()}function j(A,E,x,C,m){return B("ExcludeWatcher:: Added:: "+b(A,E,x,C,m,R)),{close:function(){return B("ExcludeWatcher:: Close:: "+b(A,E,x,C,m,R))}}}function H(A,E,x,C,m,c){B("FileWatcher:: Added:: "+b(A,x,C,m,c,R));var f=k.watchFile(A,E,x,C,m,c);return{close:function(){B("FileWatcher:: Close:: "+b(A,x,C,m,c,R)),f.close()}}}function K(A,E,x,C,m,c){var f="DirectoryWatcher:: Added:: "+b(A,x,C,m,c,R);B(f);var N=e.timestamp(),V=k.watchDirectory(A,E,x,C,m,c),Z=e.timestamp()-N;return B("Elapsed:: "+Z+"ms "+f),{close:function(){var S="DirectoryWatcher:: Close:: "+b(A,x,C,m,c,R);B(S);var ce=e.timestamp();V.close();var ge=e.timestamp()-ce;B("Elapsed:: "+ge+"ms "+S)}}}function ee(A){return function(E,x,C,m,c,f){return O[A].call(void 0,E,function(){for(var N=[],V=0;V=4,ye=(Ne+1+"").length;We&&(ye=Math.max(w.length,ye));for(var Ie="",je=xe;je<=Ne;je++){Ie+=ke.getNewLine(),We&&xe+1=0;){if(nr.markUsed(ct))return ct;var Nt=Sr.text.slice(lt[ct],lt[ct+1]).trim();if(Nt!==""&&!/^(\s*)\/\/(.*)$/.test(Nt))return-1;ct--}return-1}function qo(Dn){return co(function(){var nr=[];return Sr(Dn,Dn),e.forEachChildRecursively(Dn,Sr,Qr),nr;function Sr(Jt,Ut){switch(Ut.kind){case 162:case 165:case 167:if(Ut.questionToken===Jt)return nr.push(Nt(Jt,e.Diagnostics.The_0_modifier_can_only_be_used_in_TypeScript_files,"?")),"skip";case 166:case 169:case 170:case 171:case 211:case 254:case 212:case 252:if(Ut.type===Jt)return nr.push(Nt(Jt,e.Diagnostics.Type_annotations_can_only_be_used_in_TypeScript_files)),"skip"}switch(Jt.kind){case 265:if(Jt.isTypeOnly)return nr.push(Nt(Ut,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,"import type")),"skip";break;case 270:if(Jt.isTypeOnly)return nr.push(Nt(Jt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,"export type")),"skip";break;case 263:return nr.push(Nt(Jt,e.Diagnostics.import_can_only_be_used_in_TypeScript_files)),"skip";case 269:if(Jt.isExportEquals)return nr.push(Nt(Jt,e.Diagnostics.export_can_only_be_used_in_TypeScript_files)),"skip";break;case 289:var ii=Jt;if(ii.token===117)return nr.push(Nt(Jt,e.Diagnostics.implements_clauses_can_only_be_used_in_TypeScript_files)),"skip";break;case 256:var ga=e.tokenToString(118);return e.Debug.assertIsDefined(ga),nr.push(Nt(Jt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,ga)),"skip";case 259:var Ia=Jt.flags&16?e.tokenToString(141):e.tokenToString(140);return e.Debug.assertIsDefined(Ia),nr.push(Nt(Jt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,Ia)),"skip";case 257:return nr.push(Nt(Jt,e.Diagnostics.Type_aliases_can_only_be_used_in_TypeScript_files)),"skip";case 258:var _e=e.Debug.checkDefined(e.tokenToString(92));return nr.push(Nt(Jt,e.Diagnostics._0_declarations_can_only_be_used_in_TypeScript_files,_e)),"skip";case 228:return nr.push(Nt(Jt,e.Diagnostics.Non_null_assertions_can_only_be_used_in_TypeScript_files)),"skip";case 227:return nr.push(Nt(Jt.type,e.Diagnostics.Type_assertion_expressions_can_only_be_used_in_TypeScript_files)),"skip";case 209:e.Debug.fail()}}function Qr(Jt,Ut){switch(Ut.decorators===Jt&&!Ne.experimentalDecorators&&nr.push(Nt(Ut,e.Diagnostics.Experimental_support_for_decorators_is_a_feature_that_is_subject_to_change_in_a_future_release_Set_the_experimentalDecorators_option_in_your_tsconfig_or_jsconfig_to_remove_this_warning)),Ut.kind){case 255:case 224:case 167:case 169:case 170:case 171:case 211:case 254:case 212:if(Jt===Ut.typeParameters)return nr.push(ct(Jt,e.Diagnostics.Type_parameter_declarations_can_only_be_used_in_TypeScript_files)),"skip";case 235:if(Jt===Ut.modifiers)return lt(Ut.modifiers,Ut.kind===235),"skip";break;case 165:if(Jt===Ut.modifiers){for(var ii=0,ga=Jt;ii0),Object.defineProperties(Nt,{id:{get:function(){return this.redirectInfo.redirectTarget.id},set:function(Jt){this.redirectInfo.redirectTarget.id=Jt}},symbol:{get:function(){return this.redirectInfo.redirectTarget.symbol},set:function(Jt){this.redirectInfo.redirectTarget.symbol=Jt}}}),Nt}function Ea(Dn,nr,Sr,Qr,lt,ct){e.tracing===null||e.tracing===void 0||e.tracing.push("program","findSourceFile",{fileName:Dn,isDefaultLib:Sr||void 0,fileIncludeKind:e.FileIncludeKind[lt.kind]});var Nt=da(Dn,nr,Sr,Qr,lt,ct);return e.tracing===null||e.tracing===void 0||e.tracing.pop(),Nt}function da(Dn,nr,Sr,Qr,lt,ct){if(Vn){var Nt=ks(Dn);if(!Nt&&Be.realpath&&Ne.preserveSymlinks&&e.isDeclarationFileName(Dn)&&e.stringContains(Dn,e.nodeModulesPathPart)){var Jt=Be.realpath(Dn);Jt!==Dn&&(Nt=ks(Jt))}if(Nt){var Ut=e.isString(Nt)?Ea(Nt,yr(Nt),Sr,Qr,lt,ct):void 0;return Ut&&ji(Ut,nr,void 0),Ut}}var ii=Dn;if(Qn.has(nr)){var ga=Qn.get(nr);if(ai(ga||void 0,lt),ga&&Ne.forceConsistentCasingInFileNames){var Ia=ga.fileName,_e=yr(Ia)!==yr(Dn);_e&&(Dn=wi(Dn)||Dn);var nn=e.getNormalizedAbsolutePathWithoutRoot(Ia,En),_n=e.getNormalizedAbsolutePathWithoutRoot(Dn,En);nn!==_n&&Et(Dn,ga,lt)}return ga&&oe.get(ga.path)&&Tn===0?(oe.set(ga.path,!1),Ne.noResolve||(yl(ga,Sr),Ss(ga)),Ne.noLib||El(ga),qn.set(ga.path,!1),pe(ga)):ga&&qn.get(ga.path)&&Tn0),Lt.fileName=Dn,Lt.path=nr,Lt.resolvedPath=yr(Dn),Lt.originalFileName=ii,ai(Lt,lt),Be.useCaseSensitiveFileNames()){var go=e.toFileNameLowerCase(nr),di=on.get(go);di?Et(Dn,di,lt):on.set(go,Lt)}qe=qe||Lt.hasNoDefaultLib&&!Qr,Ne.noResolve||(yl(Lt,Sr),Ss(Lt)),Ne.noLib||El(Lt),pe(Lt),Sr?ye.push(Lt):Ie.push(Lt)}return Lt}function ai(Dn,nr){Dn&&vn.add(Dn.path,nr)}function ji(Dn,nr,Sr){Sr?(Qn.set(Sr,Dn),Qn.set(nr,Dn||!1)):Qn.set(nr,Dn)}function wi(Dn){var nr=Gi(Dn);return nr&&hs(nr,Dn)}function Gi(Dn){if(!(!fe||!fe.length||e.fileExtensionIs(Dn,".d.ts")||e.fileExtensionIs(Dn,".json")))return as(Dn)}function hs(Dn,nr){var Sr=e.outFile(Dn.commandLine.options);return Sr?e.changeExtension(Sr,".d.ts"):e.getOutputDeclarationFileName(nr,Dn.commandLine,!Be.useCaseSensitiveFileNames())}function as(Dn){tn===void 0&&(tn=new e.Map,cs(function(Sr){yr(Ne.configFilePath)!==Sr.sourceFile.path&&Sr.commandLine.fileNames.forEach(function(Qr){return tn.set(yr(Qr),Sr.sourceFile.path)})}));var nr=tn.get(yr(Dn));return nr&&ml(nr)}function cs(Dn){return e.forEachResolvedProjectReference(fe,Dn)}function ks(Dn){if(!!e.isDeclarationFileName(Dn))return le===void 0&&(le=new e.Map,cs(function(nr){var Sr=e.outFile(nr.commandLine.options);if(Sr){var Qr=e.changeExtension(Sr,".d.ts");le.set(yr(Qr),!0)}else{var lt=e.memoize(function(){return e.getCommonSourceDirectoryOfConfig(nr.commandLine,!Be.useCaseSensitiveFileNames())});e.forEach(nr.commandLine.fileNames,function(ct){if(!e.fileExtensionIs(ct,".d.ts")&&!e.fileExtensionIs(ct,".json")){var Nt=e.getOutputDeclarationFileName(ct,nr.commandLine,!Be.useCaseSensitiveFileNames(),lt);le.set(yr(Nt),ct)}})}})),le.get(yr(Dn))}function pl(Dn){return Vn&&!!as(Dn)}function ml(Dn){if(!!Ge)return Ge.get(Dn)||void 0}function yl(Dn,nr){e.forEach(Dn.referencedFiles,function(Sr,Qr){_r(d(Sr.fileName,Dn.fileName),nr,!1,void 0,{kind:e.FileIncludeKind.ReferenceFile,file:Dn.path,index:Qr})})}function Ss(Dn){var nr=e.map(Dn.typeReferenceDirectives,function(Jt){return e.toFileNameLowerCase(Jt.fileName)});if(!!nr)for(var Sr=fa(nr,Dn),Qr=0;Qrdn,_e=ga&&!S(lt,Nt)&&!lt.noResolve&&ct1})&&Li(e.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files,"outDir")}if(Ne.useDefineForClassFields&&ga===0&&Li(e.Diagnostics.Option_0_cannot_be_specified_when_option_target_is_ES3,"useDefineForClassFields"),Ne.checkJs&&!e.getAllowJSCompilerOption(Ne)&&Xe.add(e.createCompilerDiagnostic(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"checkJs","allowJs")),Ne.emitDeclarationOnly&&(e.getEmitDeclarations(Ne)||Li(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2,"emitDeclarationOnly","declaration","composite"),Ne.noEmit&&Li(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,"emitDeclarationOnly","noEmit")),Ne.emitDecoratorMetadata&&!Ne.experimentalDecorators&&Li(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"emitDecoratorMetadata","experimentalDecorators"),Ne.jsxFactory?(Ne.reactNamespace&&Li(e.Diagnostics.Option_0_cannot_be_specified_with_option_1,"reactNamespace","jsxFactory"),(Ne.jsx===4||Ne.jsx===5)&&Li(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFactory",e.inverseJsxOptionMap.get(""+Ne.jsx)),e.parseIsolatedEntityName(Ne.jsxFactory,ga)||_s("jsxFactory",e.Diagnostics.Invalid_value_for_jsxFactory_0_is_not_a_valid_identifier_or_qualified_name,Ne.jsxFactory)):Ne.reactNamespace&&!e.isIdentifierText(Ne.reactNamespace,ga)&&_s("reactNamespace",e.Diagnostics.Invalid_value_for_reactNamespace_0_is_not_a_valid_identifier,Ne.reactNamespace),Ne.jsxFragmentFactory&&(Ne.jsxFactory||Li(e.Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1,"jsxFragmentFactory","jsxFactory"),(Ne.jsx===4||Ne.jsx===5)&&Li(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxFragmentFactory",e.inverseJsxOptionMap.get(""+Ne.jsx)),e.parseIsolatedEntityName(Ne.jsxFragmentFactory,ga)||_s("jsxFragmentFactory",e.Diagnostics.Invalid_value_for_jsxFragmentFactory_0_is_not_a_valid_identifier_or_qualified_name,Ne.jsxFragmentFactory)),Ne.reactNamespace&&(Ne.jsx===4||Ne.jsx===5)&&Li(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"reactNamespace",e.inverseJsxOptionMap.get(""+Ne.jsx)),Ne.jsxImportSource&&Ne.jsx===2&&Li(e.Diagnostics.Option_0_cannot_be_specified_when_option_jsx_is_1,"jsxImportSource",e.inverseJsxOptionMap.get(""+Ne.jsx)),!Ne.noEmit&&!Ne.suppressOutputPathCheck){var sr=vr(),$r=new e.Set;e.forEachEmittedFile(sr,function(Lt){Ne.emitDeclarationOnly||Ft(Lt.jsFilePath,$r),Ft(Lt.declarationFilePath,$r)})}function Ft(Lt,Na){if(Lt){var Ni=yr(Lt);if(Qn.has(Ni)){var qi=void 0;Ne.configFilePath||(qi=e.chainDiagnosticMessages(void 0,e.Diagnostics.Adding_a_tsconfig_json_file_will_help_organize_projects_that_contain_both_TypeScript_and_JavaScript_files_Learn_more_at_https_Colon_Slash_Slashaka_ms_Slashtsconfig)),qi=e.chainDiagnosticMessages(qi,e.Diagnostics.Cannot_write_file_0_because_it_would_overwrite_input_file,Lt),bl(Lt,e.createCompilerDiagnosticFromMessageChain(qi))}var go=Be.useCaseSensitiveFileNames()?Ni:e.toFileNameLowerCase(Ni);Na.has(go)?bl(Lt,e.createCompilerDiagnostic(e.Diagnostics.Cannot_write_file_0_because_it_would_be_overwritten_by_multiple_input_files,Lt)):Na.add(go)}}}function Xn(Dn,nr,Sr,Qr){var lt,ct,Nt,Jt=H(nr)?nr:void 0;Dn&&((lt=vn.get(Dn.path))===null||lt===void 0||lt.forEach(_e)),nr&&_e(nr),Jt&&(ct==null?void 0:ct.length)===1&&(ct=void 0);var Ut=Jt&&ee(Ti,Jt),ii=ct&&e.chainDiagnosticMessages(ct,e.Diagnostics.The_file_is_in_the_program_because_Colon),ga=Dn&&e.explainIfFileIsRedirect(Dn),Ia=e.chainDiagnosticMessages.apply(void 0,Mr([ga?ii?Mr([ii],ga,!0):ga:ii,Sr],Qr||e.emptyArray,!1));return Ut&&K(Ut)?e.createFileDiagnosticFromMessageChain(Ut.file,Ut.pos,Ut.end-Ut.pos,Ia,Nt):e.createCompilerDiagnosticFromMessageChain(Ia,Nt);function _e(nn){(ct||(ct=[])).push(e.fileIncludeReasonToDiagnostics(fr,nn)),!Jt&&H(nn)?Jt=nn:Jt!==nn&&(Nt=e.append(Nt,oa(nn))),nn===nr&&(nr=void 0)}}function it(Dn,nr,Sr,Qr){(ie||(ie=[])).push({kind:1,file:Dn&&Dn.path,fileProcessingReason:nr,diagnostic:Sr,args:Qr})}function Wt(Dn,nr,Sr){Xe.add(Xn(Dn,void 0,nr,Sr))}function oa(Dn){if(H(Dn)){var nr=ee(Ti,Dn),Sr;switch(Dn.kind){case e.FileIncludeKind.Import:Sr=e.Diagnostics.File_is_included_via_import_here;break;case e.FileIncludeKind.ReferenceFile:Sr=e.Diagnostics.File_is_included_via_reference_here;break;case e.FileIncludeKind.TypeReferenceDirective:Sr=e.Diagnostics.File_is_included_via_type_library_reference_here;break;case e.FileIncludeKind.LibReferenceDirective:Sr=e.Diagnostics.File_is_included_via_library_reference_here;break;default:e.Debug.assertNever(Dn)}return K(nr)?e.createFileDiagnostic(nr.file,nr.pos,nr.end-nr.pos,Sr):void 0}if(!!Ne.configFile){var Qr,lt;switch(Dn.kind){case e.FileIncludeKind.RootFile:if(!Ne.configFile.configFileSpecs)return;var ct=e.getNormalizedAbsolutePath(He[Dn.index],En),Nt=e.getMatchedFileSpec(fr,ct);if(Nt){Qr=e.getTsConfigPropArrayElementValue(Ne.configFile,"files",Nt),lt=e.Diagnostics.File_is_matched_by_files_list_specified_here;break}var Jt=e.getMatchedIncludeSpec(fr,ct);if(!Jt)return;Qr=e.getTsConfigPropArrayElementValue(Ne.configFile,"include",Jt),lt=e.Diagnostics.File_is_matched_by_include_pattern_specified_here;break;case e.FileIncludeKind.SourceFromProjectReference:case e.FileIncludeKind.OutputFromProjectReference:var Ut=e.Debug.checkDefined(fe==null?void 0:fe[Dn.index]),ii=j(Ee,fe,function(_n,sr,$r){return _n===Ut?{sourceFile:(sr==null?void 0:sr.sourceFile)||Ne.configFile,index:$r}:void 0});if(!ii)return;var ga=ii.sourceFile,Ia=ii.index,_e=e.firstDefined(e.getTsConfigPropArray(ga,"references"),function(_n){return e.isArrayLiteralExpression(_n.initializer)?_n.initializer:void 0});return _e&&_e.elements.length>Ia?e.createDiagnosticForNodeInSourceFile(ga,_e.elements[Ia],Dn.kind===e.FileIncludeKind.OutputFromProjectReference?e.Diagnostics.File_is_output_from_referenced_project_specified_here:e.Diagnostics.File_is_source_from_referenced_project_specified_here):void 0;case e.FileIncludeKind.AutomaticTypeDirectiveFile:if(!Ne.types)return;Qr=Hs("types",Dn.typeReference),lt=e.Diagnostics.File_is_entry_point_of_type_library_specified_here;break;case e.FileIncludeKind.LibFile:if(Dn.index!==void 0){Qr=Hs("lib",Ne.lib[Dn.index]),lt=e.Diagnostics.File_is_library_specified_here;break}var nn=e.forEachEntry(e.targetOptionDeclaration.type,function(_n,sr){return _n===Ne.target?sr:void 0});Qr=nn?Ms("target",nn):void 0,lt=e.Diagnostics.File_is_default_library_for_target_specified_here;break;default:e.Debug.assertNever(Dn)}return Qr&&e.createDiagnosticForNodeInSourceFile(Ne.configFile,Qr,lt)}}function ci(){var Dn=Ne.suppressOutputPathCheck?void 0:e.getTsBuildInfoEmitOutputFilePath(Ne);j(Ee,fe,function(nr,Sr,Qr){var lt=(Sr?Sr.commandLine.projectReferences:Ee)[Qr],ct=Sr&&Sr.sourceFile;if(!nr){ll(ct,Qr,e.Diagnostics.File_0_not_found,lt.path);return}var Nt=nr.commandLine.options;if(!Nt.composite||Nt.noEmit){var Jt=Sr?Sr.commandLine.fileNames:He;Jt.length&&(Nt.composite||ll(ct,Qr,e.Diagnostics.Referenced_project_0_must_have_setting_composite_Colon_true,lt.path),Nt.noEmit&&ll(ct,Qr,e.Diagnostics.Referenced_project_0_may_not_disable_emit,lt.path))}if(lt.prepend){var Ut=e.outFile(Nt);Ut?Be.fileExists(Ut)||ll(ct,Qr,e.Diagnostics.Output_file_0_from_project_1_does_not_exist,Ut,lt.path):ll(ct,Qr,e.Diagnostics.Cannot_prepend_project_0_because_it_does_not_have_outFile_set,lt.path)}!Sr&&Dn&&Dn===e.getTsBuildInfoEmitOutputFilePath(Nt)&&(ll(ct,Qr,e.Diagnostics.Cannot_write_file_0_because_it_will_overwrite_tsbuildinfo_file_generated_by_referenced_project_1,Dn,lt.path),ln.set(yr(Dn),!0))})}function ui(Dn,nr,Sr,Qr,lt,ct){for(var Nt=!0,Jt=Jo(),Ut=0,ii=Jt;Utnr&&(Xe.add(e.createDiagnosticForNodeInSourceFile(Ne.configFile,_n.elements[nr],Sr,Qr,lt,ct)),Nt=!1)}}Nt&&Xe.add(e.createCompilerDiagnostic(Sr,Qr,lt,ct))}function xn(Dn,nr,Sr,Qr){for(var lt=!0,ct=Jo(),Nt=0,Jt=ct;Ntnr?Xe.add(e.createDiagnosticForNodeInSourceFile(Dn||Ne.configFile,ct.elements[nr],Sr,Qr,lt)):Xe.add(e.createCompilerDiagnostic(Sr,Qr,lt))}function ec(Dn,nr,Sr,Qr,lt,ct,Nt){var Jt=ql(),Ut=!Jt||!Du(Jt,Dn,nr,Sr,Qr,lt,ct,Nt);Ut&&Xe.add(e.createCompilerDiagnostic(Qr,lt,ct,Nt))}function ql(){if(sn===void 0){sn=!1;var Dn=e.getTsConfigObjectLiteralExpression(Ne.configFile);if(Dn)for(var nr=0,Sr=e.getPropertyAssignment(Dn,"compilerOptions");nr0)for(var m=A.getTypeChecker(),c=0,f=E.imports;c0)for(var S=0,ce=E.referencedFiles;S1&&Le(xe)}return C;function Le(Ne){if(!!Ne.declarations)for(var De=0,Ee=Ne.declarations;De0;){var S=Z.pop();if(!V.has(S)){var ce=E.getSourceFileByPath(S);V.set(S,ce),ce&&R(A,E,ce,C,m,c,f)&&Z.push.apply(Z,Y(A,ce.resolvedPath))}}return e.arrayFrom(e.mapDefinedIterator(V.values(),function(ge){return ge}))}}(e.BuilderState||(e.BuilderState={}))})(un||(un={}));var un;(function(e){(function(m){m[m.DtsOnly=0]="DtsOnly",m[m.Full=1]="Full"})(e.BuilderFileEmit||(e.BuilderFileEmit={}));function a(m,c){return m===c||m!==void 0&&c!==void 0&&m.size===c.size&&!e.forEachKey(m,function(f){return!c.has(f)})}function d(m,c,f,N){var V=e.BuilderState.create(m,c,f,N);V.program=m;var Z=m.getCompilerOptions();V.compilerOptions=Z,e.outFile(Z)||(V.semanticDiagnosticsPerFile=new e.Map),V.changedFilesSet=new e.Set;var S=e.BuilderState.canReuseOldState(V.referencedMap,f),ce=S?f.compilerOptions:void 0,ge=S&&f.semanticDiagnosticsPerFile&&!!V.semanticDiagnosticsPerFile&&!e.compilerOptionsAffectSemanticDiagnostics(Z,ce);if(S){if(!f.currentChangedFilePath){var ae=f.currentAffectedFilesSignatures;e.Debug.assert(!f.affectedFiles&&(!ae||!ae.size),"Cannot reuse if only few affected files of currentChangedFile were iterated")}var F=f.changedFilesSet;ge&&e.Debug.assert(!F||!e.forEachKey(F,function(de){return f.semanticDiagnosticsPerFile.has(de)}),"Semantic diagnostics shouldnt be available for changed files"),F==null||F.forEach(function(de){return V.changedFilesSet.add(de)}),!e.outFile(Z)&&f.affectedFilesPendingEmit&&(V.affectedFilesPendingEmit=f.affectedFilesPendingEmit.slice(),V.affectedFilesPendingEmitKind=f.affectedFilesPendingEmitKind&&new e.Map(f.affectedFilesPendingEmitKind),V.affectedFilesPendingEmitIndex=f.affectedFilesPendingEmitIndex,V.seenAffectedFiles=new e.Set)}var re=V.referencedMap,q=S?f.referencedMap:void 0,ue=ge&&!Z.skipLibCheck==!ce.skipLibCheck,ke=ue&&!Z.skipDefaultLibCheck==!ce.skipDefaultLibCheck;return V.fileInfos.forEach(function(de,xe){var Le,He;if(!S||!(Le=f.fileInfos.get(xe))||Le.version!==de.version||!a(He=re&&re.getValues(xe),q&&q.getValues(xe))||He&&e.forEachKey(He,function(Ee){return!V.fileInfos.has(Ee)&&f.fileInfos.has(Ee)}))V.changedFilesSet.add(xe);else if(ge){var Ne=m.getSourceFileByPath(xe);if(Ne.isDeclarationFile&&!ue||Ne.hasNoDefaultLib&&!ke)return;var De=f.semanticDiagnosticsPerFile.get(xe);De&&(V.semanticDiagnosticsPerFile.set(xe,f.hasReusableDiagnostic?g(De,m,c):De),V.semanticDiagnosticsFromOldState||(V.semanticDiagnosticsFromOldState=new e.Set),V.semanticDiagnosticsFromOldState.add(xe))}}),S&&e.forEachEntry(f.fileInfos,function(de,xe){return de.affectsGlobalScope&&!V.fileInfos.has(xe)})?e.BuilderState.getAllFilesExcludingDefaultLibraryFile(V,m,void 0).forEach(function(de){return V.changedFilesSet.add(de.resolvedPath)}):ce&&!e.outFile(Z)&&e.compilerOptionsAffectEmit(Z,ce)&&(m.getSourceFiles().forEach(function(de){return A(V,de.resolvedPath,1)}),e.Debug.assert(!V.seenAffectedFiles||!V.seenAffectedFiles.size),V.seenAffectedFiles=V.seenAffectedFiles||new e.Set),V.buildInfoEmitPending=!!V.changedFilesSet.size,V}function g(m,c,f){if(!m.length)return e.emptyArray;var N=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(c.getCompilerOptions()),c.getCurrentDirectory()));return m.map(function(Z){var S=t(Z,c,V);S.reportsUnnecessary=Z.reportsUnnecessary,S.reportsDeprecated=Z.reportDeprecated,S.source=Z.source,S.skippedOn=Z.skippedOn;var ce=Z.relatedInformation;return S.relatedInformation=ce?ce.length?ce.map(function(ge){return t(ge,c,V)}):[]:void 0,S});function V(Z){return e.toPath(Z,N,f)}}function t(m,c,f){var N=m.file;return Dt(Dt({},m),{file:N?c.getSourceFileByPath(f(N)):void 0})}function p(m){e.BuilderState.releaseCache(m),m.program=void 0}function P(m){var c,f=e.BuilderState.clone(m);return f.semanticDiagnosticsPerFile=m.semanticDiagnosticsPerFile&&new e.Map(m.semanticDiagnosticsPerFile),f.changedFilesSet=new e.Set(m.changedFilesSet),f.affectedFiles=m.affectedFiles,f.affectedFilesIndex=m.affectedFilesIndex,f.currentChangedFilePath=m.currentChangedFilePath,f.currentAffectedFilesSignatures=m.currentAffectedFilesSignatures&&new e.Map(m.currentAffectedFilesSignatures),f.currentAffectedFilesExportedModulesMap=(c=m.currentAffectedFilesExportedModulesMap)===null||c===void 0?void 0:c.clone(),f.seenAffectedFiles=m.seenAffectedFiles&&new e.Set(m.seenAffectedFiles),f.cleanedDiagnosticsOfLibFiles=m.cleanedDiagnosticsOfLibFiles,f.semanticDiagnosticsFromOldState=m.semanticDiagnosticsFromOldState&&new e.Set(m.semanticDiagnosticsFromOldState),f.program=m.program,f.compilerOptions=m.compilerOptions,f.affectedFilesPendingEmit=m.affectedFilesPendingEmit&&m.affectedFilesPendingEmit.slice(),f.affectedFilesPendingEmitKind=m.affectedFilesPendingEmitKind&&new e.Map(m.affectedFilesPendingEmitKind),f.affectedFilesPendingEmitIndex=m.affectedFilesPendingEmitIndex,f.seenEmittedFiles=m.seenEmittedFiles&&new e.Map(m.seenEmittedFiles),f.programEmitComplete=m.programEmitComplete,f}function J(m,c){e.Debug.assert(!c||!m.affectedFiles||m.affectedFiles[m.affectedFilesIndex-1]!==c||!m.semanticDiagnosticsPerFile.has(c.resolvedPath))}function h(m,c,f){for(;;){var N=m.affectedFiles;if(N){for(var V=m.seenAffectedFiles,Z=m.affectedFilesIndex;Z0;){var ce=S.pop();if(!Z.has(ce)&&(Z.set(ce,!0),f(m,ce),y(m,ce))){var ge=e.Debug.checkDefined(m.program).getSourceFileByPath(ce);S.push.apply(S,e.BuilderState.getReferencedByPaths(m,ge.resolvedPath))}}}e.Debug.assert(!!m.currentAffectedFilesExportedModulesMap);var ae=new e.Set;(N=m.currentAffectedFilesExportedModulesMap.getKeys(c.resolvedPath))===null||N===void 0||N.forEach(function(F){return D(m,F,ae,f)}),(V=m.exportedModulesMap.getKeys(c.resolvedPath))===null||V===void 0||V.forEach(function(F){var re;return!m.currentAffectedFilesExportedModulesMap.hasKey(F)&&!((re=m.currentAffectedFilesExportedModulesMap.deletedKeys())===null||re===void 0?void 0:re.has(F))&&D(m,F,ae,f)})}}function D(m,c,f,N){var V;(V=m.referencedMap.getKeys(c))===null||V===void 0||V.forEach(function(Z){return U(m,Z,f,N)})}function U(m,c,f,N){var V,Z,S;!e.tryAddToSet(f,c)||(N(m,c),e.Debug.assert(!!m.currentAffectedFilesExportedModulesMap),(V=m.currentAffectedFilesExportedModulesMap.getKeys(c))===null||V===void 0||V.forEach(function(ce){return U(m,ce,f,N)}),(Z=m.exportedModulesMap.getKeys(c))===null||Z===void 0||Z.forEach(function(ce){var ge;return!m.currentAffectedFilesExportedModulesMap.hasKey(ce)&&!((ge=m.currentAffectedFilesExportedModulesMap.deletedKeys())===null||ge===void 0?void 0:ge.has(ce))&&U(m,ce,f,N)}),(S=m.referencedMap.getKeys(c))===null||S===void 0||S.forEach(function(ce){return!f.has(ce)&&N(m,ce)}))}function B(m,c,f,N,V){V?m.buildInfoEmitPending=!1:c===m.program?(m.changedFilesSet.clear(),m.programEmitComplete=!0):(m.seenAffectedFiles.add(c.resolvedPath),f!==void 0&&(m.seenEmittedFiles||(m.seenEmittedFiles=new e.Map)).set(c.resolvedPath,f),N?(m.affectedFilesPendingEmitIndex++,m.buildInfoEmitPending=!0):m.affectedFilesIndex++)}function R(m,c,f){return B(m,f),{result:c,affected:f}}function O(m,c,f,N,V,Z){return B(m,f,N,V,Z),{result:c,affected:f}}function k(m,c,f){return e.concatenate(M(m,c,f),e.Debug.checkDefined(m.program).getProgramDiagnostics(c))}function M(m,c,f){var N=c.resolvedPath;if(m.semanticDiagnosticsPerFile){var V=m.semanticDiagnosticsPerFile.get(N);if(V)return e.filterSemanticDiagnostics(V,m.compilerOptions)}var Z=e.Debug.checkDefined(m.program).getBindAndCheckDiagnostics(c,f);return m.semanticDiagnosticsPerFile&&m.semanticDiagnosticsPerFile.set(N,Z),e.filterSemanticDiagnostics(Z,m.compilerOptions)}function z(m,c){if(e.outFile(m.compilerOptions))return;var f=e.Debug.checkDefined(m.program).getCurrentDirectory(),N=e.getDirectoryPath(e.getNormalizedAbsolutePath(e.getTsBuildInfoEmitOutputFilePath(m.compilerOptions),f)),V=[],Z=new e.Map,S,ce,ge=e.arrayFrom(m.fileInfos.entries(),function(je){var Sn=je[0],Me=je[1],we=ye(Sn);e.Debug.assert(V[we-1]===We(Sn));var ze=m.currentAffectedFilesSignatures&&m.currentAffectedFilesSignatures.get(Sn),Cn=ze!=null?ze:Me.signature;return Me.version===Cn?Me.affectsGlobalScope?{version:Me.version,signature:void 0,affectsGlobalScope:!0}:Me.version:Cn!==void 0?ze===void 0?Me:{version:Me.version,signature:ze,affectsGlobalScope:Me.affectsGlobalScope}:{version:Me.version,signature:!1,affectsGlobalScope:Me.affectsGlobalScope}}),ae;m.referencedMap&&(ae=e.arrayFrom(m.referencedMap.keys()).sort(e.compareStringsCaseSensitive).map(function(je){return[ye(je),Ie(m.referencedMap.getValues(je))]}));var F;m.exportedModulesMap&&(F=e.mapDefined(e.arrayFrom(m.exportedModulesMap.keys()).sort(e.compareStringsCaseSensitive),function(je){var Sn;if(m.currentAffectedFilesExportedModulesMap){if((Sn=m.currentAffectedFilesExportedModulesMap.deletedKeys())===null||Sn===void 0?void 0:Sn.has(je))return;var Me=m.currentAffectedFilesExportedModulesMap.getValues(je);if(Me)return[ye(je),Ie(Me)]}return[ye(je),Ie(m.exportedModulesMap.getValues(je))]}));var re;if(m.semanticDiagnosticsPerFile)for(var q=0,ue=e.arrayFrom(m.semanticDiagnosticsPerFile.keys()).sort(e.compareStringsCaseSensitive);q1||t.charCodeAt(0)!==47;if(h&&t.search(/[a-zA-Z]:/)!==0&&J.search(/[a-zA-z]\$\//)===0){if(P=t.indexOf(e.directorySeparator,P+1),P===-1)return!1;J=t.substring(p+J.length,P+1)}if(h&&J.search(/users\//i)!==0)return!0;for(var v=P+1,I=2;I>0;I--)if(v=t.indexOf(e.directorySeparator,v)+1,v===0)return!1;return!0}e.canWatchDirectory=d;function g(t,p,P){var J,h,v,I=e.createMultiMap(),X=[],se=e.createMultiMap(),y=!1,w,D,U,B=e.memoize(function(){return t.getCurrentDirectory()}),R=t.getCachedDirectoryStructureHost(),O=new e.Map,k=e.createCacheWithRedirects(),M=e.createCacheWithRedirects(),z=e.createModuleResolutionCache(B(),t.getCanonicalFileName,void 0,k,M),Y=new e.Map,ne=e.createCacheWithRedirects(),j=e.createTypeReferenceDirectiveResolutionCache(B(),t.getCanonicalFileName,void 0,z.getPackageJsonInfoCache(),ne),H=[".ts",".tsx",".js",".jsx",".json"],K=new e.Map,ee=new e.Map,b=p&&e.removeTrailingDirectorySeparator(e.getNormalizedAbsolutePath(p,B())),A=b&&t.toPath(b),E=A!==void 0?A.split(e.directorySeparator).length:0,x=new e.Map;return{getModuleResolutionCache:function(){return z},startRecordingFilesWithChangedResolutions:N,finishRecordingFilesWithChangedResolutions:V,startCachingPerDirectoryResolution:ce,finishCachingPerDirectoryResolution:ge,resolveModuleNames:ue,getResolvedModuleWithFailedLookupLocationsFromCache:ke,resolveTypeReferenceDirectives:q,removeResolutionsFromProjectReferenceRedirects:Me,removeResolutionsOfFile:we,hasChangedAutomaticTypeDirectiveNames:function(){return y},invalidateResolutionOfFile:Cn,invalidateResolutionsOfFailedLookupLocations:Nn,setFilesWithInvalidatedNonRelativeUnresolvedImports:an,createHasInvalidatedResolution:S,isFileWithInvalidatedNonRelativeUnresolvedImports:Z,updateTypeRootsWatch:Tn,closeTypeRootsWatch:$e,clear:f};function C(oe){return oe.resolvedModule}function m(oe){return oe.resolvedTypeReferenceDirective}function c(oe,Be){return oe===void 0||Be.length<=oe.length?!1:e.startsWith(Be,oe)&&Be[oe.length]===e.directorySeparator}function f(){e.clearMap(ee,e.closeFileWatcherOf),K.clear(),I.clear(),$e(),O.clear(),Y.clear(),se.clear(),X.length=0,w=void 0,D=void 0,U=void 0,ce(),y=!1}function N(){J=[]}function V(){var oe=J;return J=void 0,oe}function Z(oe){if(!v)return!1;var Be=v.get(oe);return!!Be&&!!Be.length}function S(oe){if(Nn(),oe)return h=void 0,e.returnTrue;var Be=h;return h=void 0,function(Te){return!!Be&&Be.has(Te)||Z(Te)}}function ce(){z.clear(),j.clear(),I.forEach(Ee),I.clear()}function ge(){v=void 0,ce(),ee.forEach(function(oe,Be){oe.refCount===0&&(ee.delete(Be),oe.watcher.close())}),y=!1}function ae(oe,Be,Te,qe,cn){var be,Xe=e.resolveModuleName(oe,Be,Te,qe,z,cn);if(!t.getGlobalCache)return Xe;var En=t.getGlobalCache();if(En!==void 0&&!e.isExternalModuleNameRelative(oe)&&!(Xe.resolvedModule&&e.extensionIsTS(Xe.resolvedModule.extension))){var Pe=e.loadModuleFromGlobalCache(e.Debug.checkDefined(t.globalCacheResolutionModuleName)(oe),t.projectName,Te,qe,En,z),he=Pe.resolvedModule,ln=Pe.failedLookupLocations;if(he)return Xe.resolvedModule=he,(be=Xe.failedLookupLocations).push.apply(be,ln),Xe}return Xe}function F(oe,Be,Te,qe,cn){return e.resolveTypeReferenceDirective(oe,Be,Te,qe,cn,j)}function re(oe){var Be,Te,qe,cn=oe.names,be=oe.containingFile,Xe=oe.redirectedReference,En=oe.cache,Pe=oe.perDirectoryCacheWithRedirects,he=oe.loader,ln=oe.getResolutionWithResolvedFileName,sn=oe.shouldRetryResolution,An=oe.reusedNames,Un=oe.logChanges,pr=t.toPath(be),Cr=En.get(pr)||En.set(pr,new e.Map).get(pr),xr=e.getDirectoryPath(pr),Gr=Pe.getOrCreateMapOfCacheRedirects(Xe),Ve=Gr.get(xr);Ve||(Ve=new e.Map,Gr.set(xr,Ve));for(var Ln=[],Wn=t.getCompilationSettings(),Je=Un&&Z(pr),kn=t.getCurrentProgram(),Qn=kn&&kn.getResolvedProjectReferenceToRedirect(be),jn=Qn?!Xe||Xe.sourceFile.path!==Qn.sourceFile.path:!!Xe,on=new e.Map,fe=0,Ge=cn;feE+1?{dir:qe.slice(0,E+1).join(e.directorySeparator),dirPath:Te.slice(0,E+1).join(e.directorySeparator)}:{dir:b,dirPath:A,nonRecursive:!1}}return Le(e.getDirectoryPath(e.getNormalizedAbsolutePath(oe,B())),e.getDirectoryPath(Be))}function Le(oe,Be){for(;e.pathContainsNodeModules(Be);)oe=e.getDirectoryPath(oe),Be=e.getDirectoryPath(Be);if(e.isNodeModulesDirectory(Be))return d(e.getDirectoryPath(Be))?{dir:oe,dirPath:Be}:void 0;var Te=!0,qe,cn;if(A!==void 0)for(;!c(Be,A);){var be=e.getDirectoryPath(Be);if(be===Be)break;Te=!1,qe=Be,cn=oe,Be=be,oe=e.getDirectoryPath(oe)}return d(Be)?{dir:cn||oe,dirPath:qe||Be,nonRecursive:Te}:void 0}function He(oe){return e.fileExtensionIsOneOf(oe,H)}function Ne(oe,Be,Te,qe){if(Be.refCount)Be.refCount++,e.Debug.assertDefined(Be.files);else{Be.refCount=1,e.Debug.assert(e.length(Be.files)===0),e.isExternalModuleNameRelative(oe)?De(Be):I.add(oe,Be);var cn=qe(Be);cn&&cn.resolvedFileName&&se.add(t.toPath(cn.resolvedFileName),Be)}(Be.files||(Be.files=[])).push(Te)}function De(oe){e.Debug.assert(!!oe.refCount);var Be=oe.failedLookupLocations;if(!!Be.length){X.push(oe);for(var Te=!1,qe=0,cn=Be;qe1),K.set(he,An-1))),sn===A?be=!0:Ie(sn)}}be&&Ie(A)}}}function Ie(oe){var Be=ee.get(oe);Be.refCount--}function je(oe,Be,Te){return t.watchDirectoryOfFailedLookupLocation(oe,function(qe){var cn=t.toPath(qe);R&&R.addOrDeleteFileOrDirectory(qe,cn),vn(cn,Be===cn)},Te?0:1)}function Sn(oe,Be,Te){var qe=oe.get(Be);qe&&(qe.forEach(function(cn){return ye(cn,Be,Te)}),oe.delete(Be))}function Me(oe){if(!!e.fileExtensionIs(oe,".json")){var Be=t.getCurrentProgram();if(!!Be){var Te=Be.getResolvedProjectReferenceByPath(oe);!Te||Te.commandLine.fileNames.forEach(function(qe){return we(t.toPath(qe))})}}}function we(oe){Sn(O,oe,C),Sn(Y,oe,m)}function ze(oe,Be){if(!oe)return!1;for(var Te=!1,qe=0,cn=oe;qe1&&de.sort(O),ce.push.apply(ce,de));var xe=e.getDirectoryPath(ue);if(xe===ue)return ae=ue,"break";ue=xe,ae=ue},ae,F=e.getDirectoryPath(f);S.size!==0;){var re=ge(F);if(F=ae,re==="break")break}if(S.size){var q=e.arrayFrom(S.values());q.length>1&&q.sort(O),ce.push.apply(ce,q)}return ce}function ne(f,N){var V,Z=(V=f.declarations)===null||V===void 0?void 0:V.find(function(ge){return e.isNonGlobalAmbientModule(ge)&&(!e.isExternalModuleAugmentation(ge)||!e.isExternalModuleNameRelative(e.getTextOfIdentifierOrLiteral(ge.name)))});if(Z)return Z.name.text;var S=e.mapDefined(f.declarations,function(ge){var ae,F,re,q;if(!e.isModuleDeclaration(ge))return;var ue=Le(ge);if(!(((ae=ue==null?void 0:ue.parent)===null||ae===void 0?void 0:ae.parent)&&e.isModuleBlock(ue.parent)&&e.isAmbientModule(ue.parent.parent)&&e.isSourceFile(ue.parent.parent.parent)))return;var ke=(q=(re=(F=ue.parent.parent.symbol.exports)===null||F===void 0?void 0:F.get("export="))===null||re===void 0?void 0:re.valueDeclaration)===null||q===void 0?void 0:q.expression;if(!ke)return;var de=N.getSymbolAtLocation(ke);if(!de)return;var xe=(de==null?void 0:de.flags)&2097152?N.getAliasedSymbol(de):de;if(xe===ge.symbol)return ue.parent.parent;function Le(He){for(;He.flags&4;)He=He.parent;return He}}),ce=S[0];if(ce)return ce.name.text}function j(f,N,V){for(var Z in V)for(var S=0,ce=V[Z];S=re.length+q.length&&e.startsWith(N,re)&&e.endsWith(N,q)||!q&&N===e.removeTrailingDirectorySeparator(re)){var ue=N.substr(re.length,N.length-q.length-re.length);return Z.replace("*",ue)}}else if(ae===N||ae===f)return Z}}function H(f,N,V,Z,S,ce){var ge=A(N,f,Z);if(ge!==void 0){var ae=A(V,f,Z),F=ae!==void 0?e.ensurePathIsNonModuleName(e.getRelativePathFromDirectory(ae,ge,Z)):ge;return e.getEmitModuleResolutionKind(ce)===e.ModuleResolutionKind.NodeJs?E(F,S,ce):e.removeFileExtension(F)}}function K(f,N,V,Z,S){var ce=f.path,ge=f.isRedirect,ae=N.getCanonicalFileName,F=N.sourceDirectory;if(!V.fileExists||!V.readFile)return;var re=b(ce);if(!re)return;var q=ce,ue=!1;if(!S)for(var ke=re.packageRootIndex,de=void 0;;){var xe=ye(ke),Le=xe.moduleFileToTry,He=xe.packageRootPath;if(He){q=He,ue=!0;break}if(de||(de=Le),ke=ce.indexOf(e.directorySeparator,ke+1),ke===-1){q=Ie(de);break}}if(ge&&!ue)return;var Ne=V.getGlobalTypingsCacheLocation&&V.getGlobalTypingsCacheLocation(),De=ae(q.substring(0,re.topLevelNodeModulesIndex));if(!(e.startsWith(F,De)||Ne&&e.startsWith(ae(Ne),De)))return;var Ee=q.substring(re.topLevelPackageNameIndex+1),We=e.getPackageNameFromTypesPackageName(Ee);return e.getEmitModuleResolutionKind(Z)!==e.ModuleResolutionKind.NodeJs&&We===Ee?void 0:We;function ye(je){var Sn=ce.substring(0,je),Me=e.combinePaths(Sn,"package.json"),we=ce;if(V.fileExists(Me)){var ze=JSON.parse(V.readFile(Me)),Cn=ze.typesVersions?e.getPackageJsonTypesVersionsPaths(ze.typesVersions):void 0;if(Cn){var an=ce.slice(Sn.length+1),vn=j(e.removeFileExtension(an),E(an,0,Z),Cn.paths);vn!==void 0&&(we=e.combinePaths(Sn,vn))}var Nn=ze.typings||ze.types||ze.main;if(e.isString(Nn)){var Kn=e.toPath(Nn,Sn,ae);if(e.removeFileExtension(Kn)===e.removeFileExtension(ae(we)))return{packageRootPath:Sn,moduleFileToTry:we}}}return{moduleFileToTry:we}}function Ie(je){var Sn=e.removeFileExtension(je);return ae(Sn.substring(re.fileNameIndex))==="/index"&&!ee(V,Sn.substring(0,re.fileNameIndex))?Sn.substring(0,re.fileNameIndex):Sn}}function ee(f,N){if(!!f.fileExists)for(var V=e.getSupportedExtensions({allowJs:!0},[{extension:"node",isMixedContent:!1},{extension:"json",isMixedContent:!1,scriptKind:6}]),Z=0,S=V;Z=0;)switch(ge=ae,ae=f.indexOf("/",ge+1),F){case 0:f.indexOf(e.nodeModulesPathPart,ge)===ge&&(N=ge,V=ae,F=1);break;case 1:case 2:F===1&&f.charAt(ge+1)==="@"?F=2:(Z=ae,F=3);break;case 3:f.indexOf(e.nodeModulesPathPart,ge)===ge?F=1:F=3;break}return S=ge,F>1?{topLevelNodeModulesIndex:N,topLevelPackageNameIndex:V,packageRootIndex:Z,fileNameIndex:S}:void 0}function A(f,N,V){return e.firstDefined(N,function(Z){var S=m(f,Z,V);return c(S)?void 0:S})}function E(f,N,V){if(e.fileExtensionIs(f,".json"))return f;var Z=e.removeFileExtension(f);switch(N){case 0:return e.removeSuffix(Z,"/index");case 1:return Z;case 2:return Z+x(f,V);default:return e.Debug.assertNever(N)}}function x(f,N){var V;return(V=C(f,N))!==null&&V!==void 0?V:e.Debug.fail("Extension "+e.extensionFromPath(f)+" is unsupported:: FileName:: "+f)}function C(f,N){var V=e.tryGetExtensionFromPath(f);switch(V){case".ts":case".d.ts":return".js";case".tsx":return N.jsx===1?".jsx":".js";case".js":case".jsx":case".json":return V;default:return}}a.tryGetJSExtensionForFile=C;function m(f,N,V){var Z=e.getRelativePathToDirectoryOrUrl(N,f,N,V,!1);return e.isRootedDiskPath(Z)?void 0:Z}function c(f){return e.startsWith(f,"..")}})(e.moduleSpecifiers||(e.moduleSpecifiers={}))})(un||(un={}));var un;(function(e){var a=e.sys?{getCurrentDirectory:function(){return e.sys.getCurrentDirectory()},getNewLine:function(){return e.sys.newLine},getCanonicalFileName:e.createGetCanonicalFileName(e.sys.useCaseSensitiveFileNames)}:void 0;function d(E,x){var C=E===e.sys&&a?a:{getCurrentDirectory:function(){return E.getCurrentDirectory()},getNewLine:function(){return E.newLine},getCanonicalFileName:e.createGetCanonicalFileName(E.useCaseSensitiveFileNames)};if(!x)return function(c){return E.write(e.formatDiagnostic(c,C))};var m=new Array(1);return function(c){m[0]=c,E.write(e.formatDiagnosticsWithColorAndContext(m,C)+C.getNewLine()),m[0]=void 0}}e.createDiagnosticReporter=d;function g(E,x,C){return E.clearScreen&&!C.preserveWatchOutput&&!C.extendedDiagnostics&&!C.diagnostics&&e.contains(e.screenStartingMessageCodes,x.code)?(E.clearScreen(),!0):!1}e.screenStartingMessageCodes=[e.Diagnostics.Starting_compilation_in_watch_mode.code,e.Diagnostics.File_change_detected_Starting_incremental_compilation.code];function t(E,x){return e.contains(e.screenStartingMessageCodes,E.code)?x+x:x}function p(E){return E.now?E.now().toLocaleTimeString("en-US",{timeZone:"UTC"}):new Date().toLocaleTimeString()}e.getLocaleTimeString=p;function P(E,x){return x?function(C,m,c){g(E,C,c);var f="["+e.formatColorAndReset(p(E),e.ForegroundColorEscapeSequences.Grey)+"] ";f+=""+e.flattenDiagnosticMessageText(C.messageText,E.newLine)+(m+m),E.write(f)}:function(C,m,c){var f="";g(E,C,c)||(f+=m),f+=p(E)+" - ",f+=""+e.flattenDiagnosticMessageText(C.messageText,E.newLine)+t(C,m),E.write(f)}}e.createWatchStatusReporter=P;function J(E,x,C,m,c,f){var N=c;N.onUnRecoverableConfigFileDiagnostic=function(Z){return K(c,f,Z)};var V=e.getParsedCommandLineOfConfigFile(E,x,N,C,m);return N.onUnRecoverableConfigFileDiagnostic=void 0,V}e.parseConfigFileWithSystem=J;function h(E){return e.countWhere(E,function(x){return x.category===e.DiagnosticCategory.Error})}e.getErrorCountForSummary=h;function v(E){return E===1?e.Diagnostics.Found_1_error_Watching_for_file_changes:e.Diagnostics.Found_0_errors_Watching_for_file_changes}e.getWatchErrorSummaryDiagnosticMessage=v;function I(E,x){if(E===0)return"";var C=e.createCompilerDiagnostic(E===1?e.Diagnostics.Found_1_error:e.Diagnostics.Found_0_errors,E);return""+x+e.flattenDiagnosticMessageText(C.messageText,x)+x+x}e.getErrorSummaryText=I;function X(E){return!!E.getState}e.isBuilderProgram=X;function se(E,x){var C=E.getCompilerOptions();C.explainFiles?y(X(E)?E.getProgram():E,x):(C.listFiles||C.listFilesOnly)&&e.forEach(E.getSourceFiles(),function(m){x(m.fileName)})}e.listFiles=se;function y(E,x){for(var C,m,c=E.getFileIncludeReasons(),f=e.createGetCanonicalFileName(E.useCaseSensitiveFileNames()),N=function(ce){return e.convertToRelativePath(ce,E.getCurrentDirectory(),f)},V=0,Z=E.getSourceFiles();V0?e.ExitStatus.DiagnosticsPresent_OutputsSkipped:ce.length>0?e.ExitStatus.DiagnosticsPresent_OutputsGenerated:e.ExitStatus.Success}e.emitFilesAndReportErrorsAndGetExitStatus=k,e.noopFileWatcher={close:e.noop},e.returnNoopFileWatcher=function(){return e.noopFileWatcher};function M(E,x){E===void 0&&(E=e.sys);var C=x||P(E);return{onWatchStatusChange:C,watchFile:e.maybeBind(E,E.watchFile)||e.returnNoopFileWatcher,watchDirectory:e.maybeBind(E,E.watchDirectory)||e.returnNoopFileWatcher,setTimeout:e.maybeBind(E,E.setTimeout)||e.noop,clearTimeout:e.maybeBind(E,E.clearTimeout)||e.noop}}e.createWatchHost=M,e.WatchType={ConfigFile:"Config file",ExtendedConfigFile:"Extended config file",SourceFile:"Source file",MissingFile:"Missing file",WildcardDirectory:"Wild card directory",FailedLookupLocations:"Failed Lookup Locations",TypeRoots:"Type roots",ConfigFileOfReferencedProject:"Config file of referened project",ExtendedConfigOfReferencedProject:"Extended config file of referenced project",WildcardDirectoryOfReferencedProject:"Wild card directory of referenced project",PackageJson:"package.json file"};function z(E,x){var C=E.trace?x.extendedDiagnostics?e.WatchLogLevel.Verbose:x.diagnostics?e.WatchLogLevel.TriggerOnly:e.WatchLogLevel.None:e.WatchLogLevel.None,m=C!==e.WatchLogLevel.None?function(f){return E.trace(f)}:e.noop,c=e.getWatchFactory(E,C,m);return c.writeLog=m,c}e.createWatchFactory=z;function Y(E,x,C){C===void 0&&(C=E);var m=E.useCaseSensitiveFileNames(),c=e.memoize(function(){return E.getNewLine()});return{getSourceFile:function(N,V,Z){var S;try{e.performance.mark("beforeIORead"),S=E.readFile(N,x().charset),e.performance.mark("afterIORead"),e.performance.measure("I/O Read","beforeIORead","afterIORead")}catch(ce){Z&&Z(ce.message),S=""}return S!==void 0?e.createSourceFile(N,S,V):void 0},getDefaultLibLocation:e.maybeBind(E,E.getDefaultLibLocation),getDefaultLibFileName:function(N){return E.getDefaultLibFileName(N)},writeFile:f,getCurrentDirectory:e.memoize(function(){return E.getCurrentDirectory()}),useCaseSensitiveFileNames:function(){return m},getCanonicalFileName:e.createGetCanonicalFileName(m),getNewLine:function(){return e.getNewLineCharacter(x(),c)},fileExists:function(N){return E.fileExists(N)},readFile:function(N){return E.readFile(N)},trace:e.maybeBind(E,E.trace),directoryExists:e.maybeBind(C,C.directoryExists),getDirectories:e.maybeBind(C,C.getDirectories),realpath:e.maybeBind(E,E.realpath),getEnvironmentVariable:e.maybeBind(E,E.getEnvironmentVariable)||function(){return""},createHash:e.maybeBind(E,E.createHash),readDirectory:e.maybeBind(E,E.readDirectory),disableUseFileVersionAsSignature:E.disableUseFileVersionAsSignature};function f(N,V,Z,S){try{e.performance.mark("beforeIOWrite"),e.writeFileEnsuringDirectories(N,V,Z,function(ce,ge,ae){return E.writeFile(ce,ge,ae)},function(ce){return E.createDirectory(ce)},function(ce){return E.directoryExists(ce)}),e.performance.mark("afterIOWrite"),e.performance.measure("I/O Write","beforeIOWrite","afterIOWrite")}catch(ce){S&&S(ce.message)}}}e.createCompilerHostFromProgramHost=Y;function ne(E,x){var C=E.getSourceFile,m=e.maybeBind(x,x.createHash)||e.generateDjb2Hash;E.getSourceFile=function(){for(var c=[],f=0;foe?Be:oe}function J(oe){return e.fileExtensionIs(oe,".d.ts")}function h(oe){return!!oe&&!!oe.buildOrder}e.isCircularBuildOrder=h;function v(oe){return h(oe)?oe.buildOrder:oe}e.getBuildOrderFromAnyBuildOrder=v;function I(oe,Be){return function(Te){var qe=Be?"["+e.formatColorAndReset(e.getLocaleTimeString(oe),e.ForegroundColorEscapeSequences.Grey)+"] ":e.getLocaleTimeString(oe)+" - ";qe+=""+e.flattenDiagnosticMessageText(Te.messageText,oe.newLine)+(oe.newLine+oe.newLine),oe.write(qe)}}e.createBuilderStatusReporter=I;function X(oe,Be,Te,qe){var cn=e.createProgramHost(oe,Be);return cn.getModifiedTime=oe.getModifiedTime?function(be){return oe.getModifiedTime(be)}:e.returnUndefined,cn.setModifiedTime=oe.setModifiedTime?function(be,Xe){return oe.setModifiedTime(be,Xe)}:e.noop,cn.deleteFile=oe.deleteFile?function(be){return oe.deleteFile(be)}:e.noop,cn.reportDiagnostic=Te||e.createDiagnosticReporter(oe),cn.reportSolutionBuilderStatus=qe||I(oe),cn.now=e.maybeBind(oe,oe.now),cn}function se(oe,Be,Te,qe,cn){oe===void 0&&(oe=e.sys);var be=X(oe,Be,Te,qe);return be.reportErrorSummary=cn,be}e.createSolutionBuilderHost=se;function y(oe,Be,Te,qe,cn){oe===void 0&&(oe=e.sys);var be=X(oe,Be,Te,qe),Xe=e.createWatchHost(oe,cn);return e.copyProperties(be,Xe),be}e.createSolutionBuilderWithWatchHost=y;function w(oe){var Be={};return e.commonOptionsWithBuild.forEach(function(Te){e.hasProperty(oe,Te.name)&&(Be[Te.name]=oe[Te.name])}),Be}function D(oe,Be,Te){return ze(!1,oe,Be,Te)}e.createSolutionBuilder=D;function U(oe,Be,Te,qe){return ze(!0,oe,Be,Te,qe)}e.createSolutionBuilderWithWatch=U;function B(oe,Be,Te,qe,cn){var be=Be,Xe=Be,En=be.getCurrentDirectory(),Pe=e.createGetCanonicalFileName(be.useCaseSensitiveFileNames()),he=w(qe),ln=e.createCompilerHostFromProgramHost(be,function(){return Ln.projectCompilerOptions});e.setGetSourceFileAsHashVersioned(ln,be),ln.getParsedCommandLine=function(Wn){return z(Ln,Wn,O(Ln,Wn))},ln.resolveModuleNames=e.maybeBind(be,be.resolveModuleNames),ln.resolveTypeReferenceDirectives=e.maybeBind(be,be.resolveTypeReferenceDirectives);var sn=ln.resolveModuleNames?void 0:e.createModuleResolutionCache(En,Pe),An=ln.resolveTypeReferenceDirectives?void 0:e.createTypeReferenceDirectiveResolutionCache(En,Pe,void 0,sn==null?void 0:sn.getPackageJsonInfoCache());if(!ln.resolveModuleNames){var Un=function(Wn,Je,kn){return e.resolveModuleName(Wn,Je,Ln.projectCompilerOptions,ln,sn,kn).resolvedModule};ln.resolveModuleNames=function(Wn,Je,kn,Qn){return e.loadWithLocalCache(e.Debug.checkEachDefined(Wn),Je,Qn,Un)}}if(!ln.resolveTypeReferenceDirectives){var pr=function(Wn,Je,kn){return e.resolveTypeReferenceDirective(Wn,Je,Ln.projectCompilerOptions,ln,kn,Ln.typeReferenceDirectiveResolutionCache).resolvedTypeReferenceDirective};ln.resolveTypeReferenceDirectives=function(Wn,Je,kn){return e.loadWithLocalCache(e.Debug.checkEachDefined(Wn),Je,kn,pr)}}var Cr=e.createWatchFactory(Xe,qe),xr=Cr.watchFile,Gr=Cr.watchDirectory,Ve=Cr.writeLog,Ln={host:be,hostWithWatch:Xe,currentDirectory:En,getCanonicalFileName:Pe,parseConfigFileHost:e.parseConfigHostFromCompilerHostLike(be),write:e.maybeBind(be,be.trace),options:qe,baseCompilerOptions:he,rootNames:Te,baseWatchOptions:cn,resolvedConfigFilePaths:new e.Map,configFileCache:new e.Map,projectStatus:new e.Map,buildInfoChecked:new e.Map,extendedConfigCache:new e.Map,builderPrograms:new e.Map,diagnostics:new e.Map,projectPendingBuild:new e.Map,projectErrorsReported:new e.Map,compilerHost:ln,moduleResolutionCache:sn,typeReferenceDirectiveResolutionCache:An,buildOrder:void 0,readFileWithCache:function(Wn){return be.readFile(Wn)},projectCompilerOptions:he,cache:void 0,allProjectBuildPending:!0,needsSummary:!0,watchAllProjectsPending:oe,currentInvalidatedProject:void 0,watch:oe,allWatchedWildcardDirectories:new e.Map,allWatchedInputFiles:new e.Map,allWatchedConfigFiles:new e.Map,allWatchedExtendedConfigFiles:new e.Map,allWatchedPackageJsonFiles:new e.Map,lastCachedPackageJsonLookups:new e.Map,timerToBuildInvalidatedProject:void 0,reportFileChangeDetected:!1,watchFile:xr,watchDirectory:Gr,writeLog:Ve};return Ln}function R(oe,Be){return e.toPath(Be,oe.currentDirectory,oe.getCanonicalFileName)}function O(oe,Be){var Te=oe.resolvedConfigFilePaths,qe=Te.get(Be);if(qe!==void 0)return qe;var cn=R(oe,Be);return Te.set(Be,cn),cn}function k(oe){return!!oe.options}function M(oe,Be){var Te=oe.configFileCache.get(Be);return Te&&k(Te)?Te:void 0}function z(oe,Be,Te){var qe=oe.configFileCache,cn=qe.get(Te);if(cn)return k(cn)?cn:void 0;var be,Xe=oe.parseConfigFileHost,En=oe.baseCompilerOptions,Pe=oe.baseWatchOptions,he=oe.extendedConfigCache,ln=oe.host,sn;return ln.getParsedCommandLine?(sn=ln.getParsedCommandLine(Be),sn||(be=e.createCompilerDiagnostic(e.Diagnostics.File_0_not_found,Be))):(Xe.onUnRecoverableConfigFileDiagnostic=function(An){return be=An},sn=e.getParsedCommandLineOfConfigFile(Be,En,Xe,he,Pe),Xe.onUnRecoverableConfigFileDiagnostic=e.noop),qe.set(Te,sn||be),sn}function Y(oe,Be){return e.resolveConfigFileProjectName(e.resolvePath(oe.currentDirectory,Be))}function ne(oe,Be){for(var Te=new e.Map,qe=new e.Map,cn=[],be,Xe,En=0,Pe=Be;EnGe)}}}function V(oe,Be,Te){var qe=oe.options;return Be.type!==e.UpToDateStatusType.OutOfDateWithPrepend||qe.force?!0:Te.fileNames.length===0||!!e.getConfigFileParsingDiagnostics(Te).length||!e.isIncrementalCompilation(Te.options)}function Z(oe,Be,Te){if(!!oe.projectPendingBuild.size&&!h(Be)){if(oe.currentInvalidatedProject)return e.arrayIsEqualTo(oe.currentInvalidatedProject.buildOrder,Be)?oe.currentInvalidatedProject:void 0;for(var qe=oe.options,cn=oe.projectPendingBuild,be=0;bebe&&(cn=he,be=ln)}}if(!Be.fileNames.length&&!e.canJsonReportNoInputFiles(Be.raw))return{type:e.UpToDateStatusType.ContainerOnly};var sn=e.getAllProjectOutputs(Be,!Xe.useCaseSensitiveFileNames()),An="(none)",Un=d,pr="(none)",Cr=a,xr,Gr=a,Ve=!1;if(!qe)for(var Ln=0,Wn=sn;LnCr&&(Cr=kn,pr=Je),J(Je)){var Qn=e.getModifiedTime(Xe,Je);Gr=P(Gr,Qn)}}var jn=!1,on=!1,fe;if(Be.projectReferences){oe.projectStatus.set(Te,{type:e.UpToDateStatusType.ComputingUpstream});for(var Ge=0,tn=Be.projectReferences;Ge=0}a.hasArgument=d;function g(p){var P=e.sys.args.indexOf(p);return P>=0&&Ph)return 2;if(y.charCodeAt(0)===46)return 3;if(y.charCodeAt(0)===95)return 4;if(w){var D=/^@([^/]+)\/([^/]+)$/.exec(y);if(D){var U=I(D[1],!1);if(U!==0)return{name:D[1],isScopeName:!0,result:U};var B=I(D[2],!1);return B!==0?{name:D[2],isScopeName:!1,result:B}:0}}return encodeURIComponent(y)!==y?5:0}function X(y,w){return typeof y=="object"?se(w,y.result,y.name,y.isScopeName):se(w,y,w,!1)}a.renderPackageNameValidationFailure=X;function se(y,w,D,U){var B=U?"Scope":"Package";switch(w){case 1:return"'"+y+"':: "+B+" name '"+D+"' cannot be empty";case 2:return"'"+y+"':: "+B+" name '"+D+"' should be less than "+h+" characters";case 3:return"'"+y+"':: "+B+" name '"+D+"' cannot start with '.'";case 4:return"'"+y+"':: "+B+" name '"+D+"' cannot start with '_'";case 5:return"'"+y+"':: "+B+" name '"+D+"' contains non URI safe characters";case 0:return e.Debug.fail();default:throw e.Debug.assertNever(w)}}})(e.JsTyping||(e.JsTyping={}))})(un||(un={}));var un;(function(e){(function(t){var p=function(){function J(h){this.text=h}return J.prototype.getText=function(h,v){return h===0&&v===this.text.length?this.text:this.text.substring(h,v)},J.prototype.getLength=function(){return this.text.length},J.prototype.getChangeRange=function(){},J}();function P(J){return new p(J)}t.fromString=P})(e.ScriptSnapshot||(e.ScriptSnapshot={})),function(t){t[t.Dependencies=1]="Dependencies",t[t.DevDependencies=2]="DevDependencies",t[t.PeerDependencies=4]="PeerDependencies",t[t.OptionalDependencies=8]="OptionalDependencies",t[t.All=15]="All"}(e.PackageJsonDependencyGroup||(e.PackageJsonDependencyGroup={})),function(t){t[t.Off=0]="Off",t[t.On=1]="On",t[t.Auto=2]="Auto"}(e.PackageJsonAutoImportPreference||(e.PackageJsonAutoImportPreference={})),function(t){t[t.Semantic=0]="Semantic",t[t.PartialSemantic=1]="PartialSemantic",t[t.Syntactic=2]="Syntactic"}(e.LanguageServiceMode||(e.LanguageServiceMode={})),e.emptyOptions={},function(t){t.Original="original",t.TwentyTwenty="2020"}(e.SemanticClassificationFormat||(e.SemanticClassificationFormat={})),function(t){t[t.Invoked=1]="Invoked",t[t.TriggerCharacter=2]="TriggerCharacter",t[t.TriggerForIncompleteCompletions=3]="TriggerForIncompleteCompletions"}(e.CompletionTriggerKind||(e.CompletionTriggerKind={})),function(t){t.Type="Type",t.Parameter="Parameter",t.Enum="Enum"}(e.InlayHintKind||(e.InlayHintKind={})),function(t){t.none="none",t.definition="definition",t.reference="reference",t.writtenReference="writtenReference"}(e.HighlightSpanKind||(e.HighlightSpanKind={}));var a;(function(t){t[t.None=0]="None",t[t.Block=1]="Block",t[t.Smart=2]="Smart"})(a=e.IndentStyle||(e.IndentStyle={}));var d;(function(t){t.Ignore="ignore",t.Insert="insert",t.Remove="remove"})(d=e.SemicolonPreference||(e.SemicolonPreference={}));function g(t){return{indentSize:4,tabSize:4,newLineCharacter:t||` -`,convertTabsToSpaces:!0,indentStyle:a.Smart,insertSpaceAfterConstructor:!1,insertSpaceAfterCommaDelimiter:!0,insertSpaceAfterSemicolonInForStatements:!0,insertSpaceBeforeAndAfterBinaryOperators:!0,insertSpaceAfterKeywordsInControlFlowStatements:!0,insertSpaceAfterFunctionKeywordForAnonymousFunctions:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets:!1,insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces:!0,insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces:!1,insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces:!1,insertSpaceBeforeFunctionParenthesis:!1,placeOpenBraceOnNewLineForFunctions:!1,placeOpenBraceOnNewLineForControlBlocks:!1,semicolons:d.Ignore,trimTrailingWhitespace:!0}}e.getDefaultFormatCodeSettings=g,e.testFormatSettings=g(` -`),function(t){t[t.aliasName=0]="aliasName",t[t.className=1]="className",t[t.enumName=2]="enumName",t[t.fieldName=3]="fieldName",t[t.interfaceName=4]="interfaceName",t[t.keyword=5]="keyword",t[t.lineBreak=6]="lineBreak",t[t.numericLiteral=7]="numericLiteral",t[t.stringLiteral=8]="stringLiteral",t[t.localName=9]="localName",t[t.methodName=10]="methodName",t[t.moduleName=11]="moduleName",t[t.operator=12]="operator",t[t.parameterName=13]="parameterName",t[t.propertyName=14]="propertyName",t[t.punctuation=15]="punctuation",t[t.space=16]="space",t[t.text=17]="text",t[t.typeParameterName=18]="typeParameterName",t[t.enumMemberName=19]="enumMemberName",t[t.functionName=20]="functionName",t[t.regularExpressionLiteral=21]="regularExpressionLiteral",t[t.link=22]="link",t[t.linkName=23]="linkName",t[t.linkText=24]="linkText"}(e.SymbolDisplayPartKind||(e.SymbolDisplayPartKind={})),function(t){t.Comment="comment",t.Region="region",t.Code="code",t.Imports="imports"}(e.OutliningSpanKind||(e.OutliningSpanKind={})),function(t){t[t.JavaScript=0]="JavaScript",t[t.SourceMap=1]="SourceMap",t[t.Declaration=2]="Declaration"}(e.OutputFileType||(e.OutputFileType={})),function(t){t[t.None=0]="None",t[t.InMultiLineCommentTrivia=1]="InMultiLineCommentTrivia",t[t.InSingleQuoteStringLiteral=2]="InSingleQuoteStringLiteral",t[t.InDoubleQuoteStringLiteral=3]="InDoubleQuoteStringLiteral",t[t.InTemplateHeadOrNoSubstitutionTemplate=4]="InTemplateHeadOrNoSubstitutionTemplate",t[t.InTemplateMiddleOrTail=5]="InTemplateMiddleOrTail",t[t.InTemplateSubstitutionPosition=6]="InTemplateSubstitutionPosition"}(e.EndOfLineState||(e.EndOfLineState={})),function(t){t[t.Punctuation=0]="Punctuation",t[t.Keyword=1]="Keyword",t[t.Operator=2]="Operator",t[t.Comment=3]="Comment",t[t.Whitespace=4]="Whitespace",t[t.Identifier=5]="Identifier",t[t.NumberLiteral=6]="NumberLiteral",t[t.BigIntLiteral=7]="BigIntLiteral",t[t.StringLiteral=8]="StringLiteral",t[t.RegExpLiteral=9]="RegExpLiteral"}(e.TokenClass||(e.TokenClass={})),function(t){t.unknown="",t.warning="warning",t.keyword="keyword",t.scriptElement="script",t.moduleElement="module",t.classElement="class",t.localClassElement="local class",t.interfaceElement="interface",t.typeElement="type",t.enumElement="enum",t.enumMemberElement="enum member",t.variableElement="var",t.localVariableElement="local var",t.functionElement="function",t.localFunctionElement="local function",t.memberFunctionElement="method",t.memberGetAccessorElement="getter",t.memberSetAccessorElement="setter",t.memberVariableElement="property",t.constructorImplementationElement="constructor",t.callSignatureElement="call",t.indexSignatureElement="index",t.constructSignatureElement="construct",t.parameterElement="parameter",t.typeParameterElement="type parameter",t.primitiveType="primitive type",t.label="label",t.alias="alias",t.constElement="const",t.letElement="let",t.directory="directory",t.externalModuleName="external module name",t.jsxAttribute="JSX attribute",t.string="string",t.link="link",t.linkName="link name",t.linkText="link text"}(e.ScriptElementKind||(e.ScriptElementKind={})),function(t){t.none="",t.publicMemberModifier="public",t.privateMemberModifier="private",t.protectedMemberModifier="protected",t.exportedModifier="export",t.ambientModifier="declare",t.staticModifier="static",t.abstractModifier="abstract",t.optionalModifier="optional",t.deprecatedModifier="deprecated",t.dtsModifier=".d.ts",t.tsModifier=".ts",t.tsxModifier=".tsx",t.jsModifier=".js",t.jsxModifier=".jsx",t.jsonModifier=".json"}(e.ScriptElementKindModifier||(e.ScriptElementKindModifier={})),function(t){t.comment="comment",t.identifier="identifier",t.keyword="keyword",t.numericLiteral="number",t.bigintLiteral="bigint",t.operator="operator",t.stringLiteral="string",t.whiteSpace="whitespace",t.text="text",t.punctuation="punctuation",t.className="class name",t.enumName="enum name",t.interfaceName="interface name",t.moduleName="module name",t.typeParameterName="type parameter name",t.typeAliasName="type alias name",t.parameterName="parameter name",t.docCommentTagName="doc comment tag name",t.jsxOpenTagName="jsx open tag name",t.jsxCloseTagName="jsx close tag name",t.jsxSelfClosingTagName="jsx self closing tag name",t.jsxAttribute="jsx attribute",t.jsxText="jsx text",t.jsxAttributeStringLiteralValue="jsx attribute string literal value"}(e.ClassificationTypeNames||(e.ClassificationTypeNames={})),function(t){t[t.comment=1]="comment",t[t.identifier=2]="identifier",t[t.keyword=3]="keyword",t[t.numericLiteral=4]="numericLiteral",t[t.operator=5]="operator",t[t.stringLiteral=6]="stringLiteral",t[t.regularExpressionLiteral=7]="regularExpressionLiteral",t[t.whiteSpace=8]="whiteSpace",t[t.text=9]="text",t[t.punctuation=10]="punctuation",t[t.className=11]="className",t[t.enumName=12]="enumName",t[t.interfaceName=13]="interfaceName",t[t.moduleName=14]="moduleName",t[t.typeParameterName=15]="typeParameterName",t[t.typeAliasName=16]="typeAliasName",t[t.parameterName=17]="parameterName",t[t.docCommentTagName=18]="docCommentTagName",t[t.jsxOpenTagName=19]="jsxOpenTagName",t[t.jsxCloseTagName=20]="jsxCloseTagName",t[t.jsxSelfClosingTagName=21]="jsxSelfClosingTagName",t[t.jsxAttribute=22]="jsxAttribute",t[t.jsxText=23]="jsxText",t[t.jsxAttributeStringLiteralValue=24]="jsxAttributeStringLiteralValue",t[t.bigintLiteral=25]="bigintLiteral"}(e.ClassificationType||(e.ClassificationType={}))})(un||(un={}));var un;(function(e){e.scanner=e.createScanner(99,!0),function(_e){_e[_e.None=0]="None",_e[_e.Value=1]="Value",_e[_e.Type=2]="Type",_e[_e.Namespace=4]="Namespace",_e[_e.All=7]="All"}(e.SemanticMeaning||(e.SemanticMeaning={}));function a(_e){switch(_e.kind){case 252:return e.isInJSFile(_e)&&e.getJSDocEnumTag(_e)?7:1;case 162:case 201:case 165:case 164:case 291:case 292:case 167:case 166:case 169:case 170:case 171:case 254:case 211:case 212:case 290:case 283:return 1;case 161:case 256:case 257:case 180:return 2;case 340:return _e.name===void 0?1|2:2;case 294:case 255:return 1|2;case 259:return e.isAmbientModule(_e)||e.getModuleInstanceState(_e)===1?4|1:4;case 258:case 267:case 268:case 263:case 264:case 269:case 270:return 7;case 300:return 4|1}return 7}e.getMeaningFromDeclaration=a;function d(_e){_e=Nn(_e);var nn=_e.parent;if(_e.kind===300)return 1;if(e.isExportAssignment(nn)||e.isExportSpecifier(nn)||e.isExternalModuleReference(nn)||e.isImportSpecifier(nn)||e.isImportClause(nn)||e.isImportEqualsDeclaration(nn)&&_e===nn.name){for(var _n=nn;_n;){if(e.isImportEqualsDeclaration(_n)||e.isImportClause(_n)||e.isExportDeclaration(_n))return _n.isTypeOnly?2:7;_n=_n.parent}return 7}else return t(_e)?g(_e):e.isDeclarationName(_e)?a(nn):e.isEntityName(_e)&&e.findAncestor(_e,e.or(e.isJSDocNameReference,e.isJSDocLinkLike,e.isJSDocMemberName))?7:h(_e)?2:p(_e)?4:e.isTypeParameterDeclaration(nn)?(e.Debug.assert(e.isJSDocTemplateTag(nn.parent)),2):e.isLiteralTypeNode(nn)?2|1:1}e.getMeaningFromLocation=d;function g(_e){var nn=_e.kind===159?_e:e.isQualifiedName(_e.parent)&&_e.parent.right===_e?_e.parent:void 0;return nn&&nn.parent.kind===263?7:4}function t(_e){for(;_e.parent.kind===159;)_e=_e.parent;return e.isInternalModuleImportEqualsDeclaration(_e.parent)&&_e.parent.moduleReference===_e}e.isInRightSideOfInternalImportEqualsDeclaration=t;function p(_e){return P(_e)||J(_e)}function P(_e){var nn=_e,_n=!0;if(nn.parent.kind===159){for(;nn.parent&&nn.parent.kind===159;)nn=nn.parent;_n=nn.right===_e}return nn.parent.kind===176&&!_n}function J(_e){var nn=_e,_n=!0;if(nn.parent.kind===204){for(;nn.parent&&nn.parent.kind===204;)nn=nn.parent;_n=nn.name===_e}if(!_n&&nn.parent.kind===226&&nn.parent.parent.kind===289){var sr=nn.parent.parent.parent;return sr.kind===255&&nn.parent.parent.token===117||sr.kind===256&&nn.parent.parent.token===94}return!1}function h(_e){switch(e.isRightSideOfQualifiedNameOrPropertyAccess(_e)&&(_e=_e.parent),_e.kind){case 108:return!e.isExpressionNode(_e);case 190:return!0}switch(_e.parent.kind){case 176:return!0;case 198:return!_e.parent.isTypeOf;case 226:return!e.isExpressionWithTypeArgumentsInClassExtendsClause(_e.parent)}return!1}function v(_e,nn,_n){return nn===void 0&&(nn=!1),_n===void 0&&(_n=!1),R(_e,e.isCallExpression,D,nn,_n)}e.isCallExpressionTarget=v;function I(_e,nn,_n){return nn===void 0&&(nn=!1),_n===void 0&&(_n=!1),R(_e,e.isNewExpression,D,nn,_n)}e.isNewExpressionTarget=I;function X(_e,nn,_n){return nn===void 0&&(nn=!1),_n===void 0&&(_n=!1),R(_e,e.isCallOrNewExpression,D,nn,_n)}e.isCallOrNewExpressionTarget=X;function se(_e,nn,_n){return nn===void 0&&(nn=!1),_n===void 0&&(_n=!1),R(_e,e.isTaggedTemplateExpression,U,nn,_n)}e.isTaggedTemplateTag=se;function y(_e,nn,_n){return nn===void 0&&(nn=!1),_n===void 0&&(_n=!1),R(_e,e.isDecorator,D,nn,_n)}e.isDecoratorTarget=y;function w(_e,nn,_n){return nn===void 0&&(nn=!1),_n===void 0&&(_n=!1),R(_e,e.isJsxOpeningLikeElement,B,nn,_n)}e.isJsxOpeningLikeElementTagName=w;function D(_e){return _e.expression}function U(_e){return _e.tag}function B(_e){return _e.tagName}function R(_e,nn,_n,sr,$r){var Ft=sr?k(_e):O(_e);return $r&&(Ft=e.skipOuterExpressions(Ft)),!!Ft&&!!Ft.parent&&nn(Ft.parent)&&_n(Ft.parent)===Ft}function O(_e){return ee(_e)?_e.parent:_e}e.climbPastPropertyAccess=O;function k(_e){return ee(_e)||b(_e)?_e.parent:_e}e.climbPastPropertyOrElementAccess=k;function M(_e,nn){for(;_e;){if(_e.kind===248&&_e.label.escapedText===nn)return _e.label;_e=_e.parent}}e.getTargetLabel=M;function z(_e,nn){return e.isPropertyAccessExpression(_e.expression)?_e.expression.name.text===nn:!1}e.hasPropertyAccessExpressionWithName=z;function Y(_e){var nn;return e.isIdentifier(_e)&&((nn=e.tryCast(_e.parent,e.isBreakOrContinueStatement))===null||nn===void 0?void 0:nn.label)===_e}e.isJumpStatementTarget=Y;function ne(_e){var nn;return e.isIdentifier(_e)&&((nn=e.tryCast(_e.parent,e.isLabeledStatement))===null||nn===void 0?void 0:nn.label)===_e}e.isLabelOfLabeledStatement=ne;function j(_e){return ne(_e)||Y(_e)}e.isLabelName=j;function H(_e){var nn;return((nn=e.tryCast(_e.parent,e.isJSDocTag))===null||nn===void 0?void 0:nn.tagName)===_e}e.isTagName=H;function K(_e){var nn;return((nn=e.tryCast(_e.parent,e.isQualifiedName))===null||nn===void 0?void 0:nn.right)===_e}e.isRightSideOfQualifiedName=K;function ee(_e){var nn;return((nn=e.tryCast(_e.parent,e.isPropertyAccessExpression))===null||nn===void 0?void 0:nn.name)===_e}e.isRightSideOfPropertyAccess=ee;function b(_e){var nn;return((nn=e.tryCast(_e.parent,e.isElementAccessExpression))===null||nn===void 0?void 0:nn.argumentExpression)===_e}e.isArgumentExpressionOfElementAccess=b;function A(_e){var nn;return((nn=e.tryCast(_e.parent,e.isModuleDeclaration))===null||nn===void 0?void 0:nn.name)===_e}e.isNameOfModuleDeclaration=A;function E(_e){var nn;return e.isIdentifier(_e)&&((nn=e.tryCast(_e.parent,e.isFunctionLike))===null||nn===void 0?void 0:nn.name)===_e}e.isNameOfFunctionDeclaration=E;function x(_e){switch(_e.parent.kind){case 165:case 164:case 291:case 294:case 167:case 166:case 170:case 171:case 259:return e.getNameOfDeclaration(_e.parent)===_e;case 205:return _e.parent.argumentExpression===_e;case 160:return!0;case 194:return _e.parent.parent.kind===192;default:return!1}}e.isLiteralNameOfPropertyDeclarationOrIndexAccess=x;function C(_e){return e.isExternalModuleImportEqualsDeclaration(_e.parent.parent)&&e.getExternalModuleImportEqualsDeclarationExpression(_e.parent.parent)===_e}e.isExpressionOfExternalModuleImportEqualsDeclaration=C;function m(_e){for(e.isJSDocTypeAlias(_e)&&(_e=_e.parent.parent);;){if(_e=_e.parent,!_e)return;switch(_e.kind){case 300:case 167:case 166:case 254:case 211:case 170:case 171:case 255:case 256:case 258:case 259:return _e}}}e.getContainerNode=m;function c(_e){switch(_e.kind){case 300:return e.isExternalModule(_e)?"module":"script";case 259:return"module";case 255:case 224:return"class";case 256:return"interface";case 257:case 333:case 340:return"type";case 258:return"enum";case 252:return Lt(_e);case 201:return Lt(e.getRootDeclaration(_e));case 212:case 254:case 211:return"function";case 170:return"getter";case 171:return"setter";case 167:case 166:return"method";case 291:var nn=_e.initializer;return e.isFunctionLike(nn)?"method":"property";case 165:case 164:case 292:case 293:return"property";case 174:return"index";case 173:return"construct";case 172:return"call";case 169:case 168:return"constructor";case 161:return"type parameter";case 294:return"enum member";case 162:return e.hasSyntacticModifier(_e,16476)?"property":"parameter";case 263:case 268:case 273:case 266:case 272:return"alias";case 219:var _n=e.getAssignmentDeclarationKind(_e),sr=_e.right;switch(_n){case 7:case 8:case 9:case 0:return"";case 1:case 2:var $r=c(sr);return $r===""?"const":$r;case 3:return e.isFunctionExpression(sr)?"method":"property";case 4:return"property";case 5:return e.isFunctionExpression(sr)?"method":"property";case 6:return"local class";default:return e.assertType(_n),""}case 79:return e.isImportClause(_e.parent)?"alias":"";case 269:var Ft=c(_e.expression);return Ft===""?"const":Ft;default:return""}function Lt(Na){return e.isVarConst(Na)?"const":e.isLet(Na)?"let":"var"}}e.getNodeKind=c;function f(_e){switch(_e.kind){case 108:return!0;case 79:return e.identifierIsThisKeyword(_e)&&_e.parent.kind===162;default:return!1}}e.isThis=f;var N=/^\/\/\/\s*=_n.end}e.startEndContainsRange=ae;function F(_e,nn,_n){return _e.pos<=nn&&_e.end>=_n}e.rangeContainsStartEnd=F;function re(_e,nn,_n){return ue(_e.pos,_e.end,nn,_n)}e.rangeOverlapsWithStartEnd=re;function q(_e,nn,_n,sr){return ue(_e.getStart(nn),_e.end,_n,sr)}e.nodeOverlapsWithStartEnd=q;function ue(_e,nn,_n,sr){var $r=Math.max(_e,_n),Ft=Math.min(nn,sr);return $rnn)break;var go=Ni.getEnd();if(nn_n.getStart(_e)&&nn<_n.getEnd()?_n:Te(nn,_e)}e.findTokenOnLeftOfPosition=oe;function Be(_e,nn,_n){return sr(nn);function sr($r){return e.isToken($r)&&$r.pos===_e.end?$r:e.firstDefined($r.getChildren(_n),function(Ft){var Lt=Ft.pos<=_e.pos&&Ft.end>_e.end||Ft.pos===_e.end;return Lt&&Ln(Ft,_n)?sr(Ft):void 0})}}e.findNextToken=Be;function Te(_e,nn,_n,sr){var $r=Ft(_n||nn);return e.Debug.assert(!($r&&Pe($r))),$r;function Ft(Lt){if(qe(Lt)&&Lt.kind!==1)return Lt;var Na=Lt.getChildren(nn),Ni=e.binarySearchKey(Na,_e,function(ko,On){return On},function(ko,On){return _e=Na[ko-1].end?0:1:-1});if(Ni>=0&&Na[Ni]){var qi=Na[Ni];if(_e=_e||!Ln(qi,nn)||Pe(qi);if(di){var io=be(Na,Ni,nn);return io&&cn(io,nn)}else return Ft(qi)}}e.Debug.assert(_n!==void 0||Lt.kind===300||Lt.kind===1||e.isJSDocCommentContainingNode(Lt));var wo=be(Na,Na.length,nn);return wo&&cn(wo,nn)}}e.findPrecedingToken=Te;function qe(_e){return e.isToken(_e)&&!Pe(_e)}function cn(_e,nn){if(qe(_e))return _e;var _n=_e.getChildren(nn);if(_n.length===0)return _e;var sr=be(_n,_n.length,nn);return sr&&cn(sr,nn)}function be(_e,nn,_n){for(var sr=nn-1;sr>=0;sr--){var $r=_e[sr];if(Pe($r))e.Debug.assert(sr>0,"`JsxText` tokens should not be the first child of `JsxElement | JsxSelfClosingElement`");else if(Ln(_e[sr],_n))return _e[sr]}}function Xe(_e,nn,_n){if(_n===void 0&&(_n=Te(nn,_e)),_n&&e.isStringTextContainingNode(_n)){var sr=_n.getStart(_e),$r=_n.getEnd();if(sr_n.getStart(_e)}e.isInTemplateString=he;function ln(_e,nn){var _n=dn(_e,nn);return!!(e.isJsxText(_n)||_n.kind===18&&e.isJsxExpression(_n.parent)&&e.isJsxElement(_n.parent.parent)||_n.kind===29&&e.isJsxOpeningLikeElement(_n.parent)&&e.isJsxElement(_n.parent.parent))}e.isInJSXText=ln;function sn(_e,nn){function _n(sr){for(;sr;)if(sr.kind>=277&&sr.kind<=286||sr.kind===11||sr.kind===29||sr.kind===31||sr.kind===79||sr.kind===19||sr.kind===18||sr.kind===43)sr=sr.parent;else if(sr.kind===276){if(nn>sr.getStart(_e))return!0;sr=sr.parent}else return!1;return!1}return _n(dn(_e,nn))}e.isInsideJsxElement=sn;function An(_e,nn,_n){var sr=e.tokenToString(_e.kind),$r=e.tokenToString(nn),Ft=_e.getFullStart(),Lt=_n.text.lastIndexOf($r,Ft);if(Lt!==-1){if(_n.text.lastIndexOf(sr,Ft-1)=nn})}e.getPossibleGenericSignatures=Cr;function xr(_e,nn){if(nn.text.lastIndexOf("<",_e?_e.pos:nn.text.length)!==-1)for(var _n=_e,sr=0,$r=0;_n;){switch(_n.kind){case 29:if(_n=Te(_n.getFullStart(),nn),_n&&_n.kind===28&&(_n=Te(_n.getFullStart(),nn)),!_n||!e.isIdentifier(_n))return;if(!sr)return e.isDeclarationName(_n)?void 0:{called:_n,nTypeArguments:$r};sr--;break;case 49:sr=3;break;case 48:sr=2;break;case 31:sr++;break;case 19:if(_n=An(_n,18,nn),!_n)return;break;case 21:if(_n=An(_n,20,nn),!_n)return;break;case 23:if(_n=An(_n,22,nn),!_n)return;break;case 27:$r++;break;case 38:case 79:case 10:case 8:case 9:case 110:case 95:case 112:case 94:case 139:case 24:case 51:case 57:case 58:break;default:if(e.isTypeNode(_n))break;return}_n=Te(_n.getFullStart(),nn)}}e.getPossibleTypeArgumentsInfo=xr;function Gr(_e,nn,_n){return e.formatting.getRangeOfEnclosingComment(_e,nn,void 0,_n)}e.isInComment=Gr;function Ve(_e,nn){var _n=dn(_e,nn);return!!e.findAncestor(_n,e.isJSDoc)}e.hasDocComment=Ve;function Ln(_e,nn){return _e.kind===1?!!_e.jsDoc:_e.getWidth(nn)!==0}function Wn(_e,nn){nn===void 0&&(nn=0);var _n=[],sr=e.isDeclaration(_e)?e.getCombinedNodeFlagsAlwaysIncludeJSDoc(_e)&~nn:0;return sr&8&&_n.push("private"),sr&16&&_n.push("protected"),sr&4&&_n.push("public"),(sr&32||e.isClassStaticBlockDeclaration(_e))&&_n.push("static"),sr&128&&_n.push("abstract"),sr&1&&_n.push("export"),sr&8192&&_n.push("deprecated"),_e.flags&8388608&&_n.push("declare"),_e.kind===269&&_n.push("export"),_n.length>0?_n.join(","):""}e.getNodeModifiers=Wn;function Je(_e){if(_e.kind===176||_e.kind===206)return _e.typeArguments;if(e.isFunctionLike(_e)||_e.kind===255||_e.kind===256)return _e.typeParameters}e.getTypeArgumentOrTypeParameterList=Je;function kn(_e){return _e===2||_e===3}e.isComment=kn;function Qn(_e){return!!(_e===10||_e===13||e.isTemplateLiteralKind(_e))}e.isStringOrRegularExpressionOrTemplateLiteral=Qn;function jn(_e){return 18<=_e&&_e<=78}e.isPunctuation=jn;function on(_e,nn,_n){return e.isTemplateLiteralKind(_e.kind)&&_e.getStart(_n)=2||!!_e.noEmit}e.compilerOptionsIndicateEs6Modules=fa;function Xa(_e,nn){return{fileExists:function(_n){return _e.fileExists(_n)},getCurrentDirectory:function(){return nn.getCurrentDirectory()},readFile:e.maybeBind(nn,nn.readFile),useCaseSensitiveFileNames:e.maybeBind(nn,nn.useCaseSensitiveFileNames),getSymlinkCache:e.maybeBind(nn,nn.getSymlinkCache)||_e.getSymlinkCache,getModuleSpecifierCache:e.maybeBind(nn,nn.getModuleSpecifierCache),getGlobalTypingsCacheLocation:e.maybeBind(nn,nn.getGlobalTypingsCacheLocation),redirectTargetsMap:_e.redirectTargetsMap,getProjectReferenceRedirect:function(_n){return _e.getProjectReferenceRedirect(_n)},isSourceOfProjectReferenceRedirect:function(_n){return _e.isSourceOfProjectReferenceRedirect(_n)},getNearestAncestorDirectoryWithPackageJson:e.maybeBind(nn,nn.getNearestAncestorDirectoryWithPackageJson),getFileIncludeReasons:function(){return _e.getFileIncludeReasons()}}}e.createModuleSpecifierResolutionHost=Xa;function Ka(_e,nn){return Dt(Dt({},Xa(_e,nn)),{getCommonSourceDirectory:function(){return _e.getCommonSourceDirectory()}})}e.getModuleSpecifierResolverHost=Ka;function Ei(_e,nn,_n,sr){return _e||nn&&nn.length?ti(_e,nn,_n,sr):void 0}e.makeImportIfNecessary=Ei;function ti(_e,nn,_n,sr,$r){return e.factory.createImportDeclaration(void 0,void 0,_e||nn?e.factory.createImportClause(!!$r,_e,nn&&nn.length?e.factory.createNamedImports(nn):void 0):void 0,typeof _n=="string"?ta(_n,sr):_n)}e.makeImport=ti;function ta(_e,nn){return e.factory.createStringLiteral(_e,nn===0)}e.makeStringLiteral=ta,function(_e){_e[_e.Single=0]="Single",_e[_e.Double=1]="Double"}(e.QuotePreference||(e.QuotePreference={}));function yr(_e,nn){return e.isStringDoubleQuoted(_e,nn)?1:0}e.quotePreferenceFromString=yr;function Kr(_e,nn){if(nn.quotePreference&&nn.quotePreference!=="auto")return nn.quotePreference==="single"?0:1;var _n=_e.imports&&e.find(_e.imports,function(sr){return e.isStringLiteral(sr)&&!e.nodeIsSynthesized(sr.parent)});return _n?yr(_n,_e):1}e.getQuotePreference=Kr;function Vr(_e){switch(_e){case 0:return"'";case 1:return'"';default:return e.Debug.assertNever(_e)}}e.getQuoteFromPreference=Vr;function wt(_e){var nn=Bt(_e);return nn===void 0?void 0:e.unescapeLeadingUnderscores(nn)}e.symbolNameNoDefault=wt;function Bt(_e){return _e.escapedName!=="default"?_e.escapedName:e.firstDefined(_e.declarations,function(nn){var _n=e.getNameOfDeclaration(nn);return _n&&_n.kind===79?_n.escapedText:void 0})}e.symbolEscapedNameNoDefault=Bt;function Tr(_e){return e.isStringLiteralLike(_e)&&(e.isExternalModuleReference(_e.parent)||e.isImportDeclaration(_e.parent)||e.isRequireCall(_e.parent,!1)&&_e.parent.arguments[0]===_e||e.isImportCall(_e.parent)&&_e.parent.arguments[0]===_e)}e.isModuleSpecifierLike=Tr;function vr(_e){return e.isBindingElement(_e)&&e.isObjectBindingPattern(_e.parent)&&e.isIdentifier(_e.name)&&!_e.propertyName}e.isObjectBindingElementWithoutPropertyName=vr;function Br(_e,nn){var _n=_e.getTypeAtLocation(nn.parent);return _n&&_e.getPropertyOfType(_n,nn.name.text)}e.getPropertySymbolFromBindingElement=Br;function Wr(_e,nn,_n){if(!!_e)for(;_e.parent;){if(e.isSourceFile(_e.parent)||!tt(_n,_e.parent,nn))return _e;_e=_e.parent}}e.getParentNodeInSpan=Wr;function tt(_e,nn,_n){return e.textSpanContainsPosition(_e,nn.getStart(_n))&&nn.getEnd()<=e.textSpanEnd(_e)}function er(_e,nn){return _e.modifiers&&e.find(_e.modifiers,function(_n){return _n.kind===nn})}e.findModifier=er;function Zt(_e,nn,_n,sr){var $r=e.isArray(_n)?_n[0]:_n,Ft=$r.kind===235?e.isRequireVariableStatement:e.isAnyImportSyntax,Lt=e.filter(nn.statements,Ft),Na=e.isArray(_n)?e.stableSort(_n,e.OrganizeImports.compareImportsOrRequireStatements):[_n];if(!Lt.length)_e.insertNodesAtTopOfFile(nn,Na,sr);else if(Lt&&e.OrganizeImports.importsAreSorted(Lt))for(var Ni=0,qi=Na;Ni0&&_e.declarations[0].kind===162}e.isFirstDeclarationOfSymbolParameter=Di;var Vi=ni();function ni(){var _e=e.defaultMaximumTruncationLength*10,nn,_n,sr,$r;go();var Ft=function(di){return Na(di,e.SymbolDisplayPartKind.text)};return{displayParts:function(){var di=nn.length&&nn[nn.length-1].text;return $r>_e&&di&&di!=="..."&&(e.isWhiteSpaceLike(di.charCodeAt(di.length-1))||nn.push(Ci(" ",e.SymbolDisplayPartKind.space)),nn.push(Ci("...",e.SymbolDisplayPartKind.punctuation))),nn},writeKeyword:function(di){return Na(di,e.SymbolDisplayPartKind.keyword)},writeOperator:function(di){return Na(di,e.SymbolDisplayPartKind.operator)},writePunctuation:function(di){return Na(di,e.SymbolDisplayPartKind.punctuation)},writeTrailingSemicolon:function(di){return Na(di,e.SymbolDisplayPartKind.punctuation)},writeSpace:function(di){return Na(di,e.SymbolDisplayPartKind.space)},writeStringLiteral:function(di){return Na(di,e.SymbolDisplayPartKind.stringLiteral)},writeParameter:function(di){return Na(di,e.SymbolDisplayPartKind.parameterName)},writeProperty:function(di){return Na(di,e.SymbolDisplayPartKind.propertyName)},writeLiteral:function(di){return Na(di,e.SymbolDisplayPartKind.stringLiteral)},writeSymbol:Ni,writeLine:qi,write:Ft,writeComment:Ft,getText:function(){return""},getTextPos:function(){return 0},getColumn:function(){return 0},getLine:function(){return 0},isAtStartOfLine:function(){return!1},hasTrailingWhitespace:function(){return!1},hasTrailingComment:function(){return!1},rawWrite:e.notImplemented,getIndent:function(){return sr},increaseIndent:function(){sr++},decreaseIndent:function(){sr--},clear:go,trackSymbol:function(){return!1},reportInaccessibleThisError:e.noop,reportInaccessibleUniqueSymbolError:e.noop,reportPrivateInBaseOfClassExpression:e.noop};function Lt(){if(!($r>_e)&&_n){var di=e.getIndentString(sr);di&&($r+=di.length,nn.push(Ci(di,e.SymbolDisplayPartKind.space))),_n=!1}}function Na(di,io){$r>_e||(Lt(),$r+=di.length,nn.push(Ci(di,io)))}function Ni(di,io){$r>_e||(Lt(),$r+=di.length,nn.push(Ti(di,io)))}function qi(){$r>_e||($r+=1,nn.push(So()),_n=!0)}function go(){nn=[],_n=!0,sr=0,$r=0}}function Ti(_e,nn){return Ci(_e,_n(nn));function _n(sr){var $r=sr.flags;return $r&3?Di(sr)?e.SymbolDisplayPartKind.parameterName:e.SymbolDisplayPartKind.localName:$r&4||$r&32768||$r&65536?e.SymbolDisplayPartKind.propertyName:$r&8?e.SymbolDisplayPartKind.enumMemberName:$r&16?e.SymbolDisplayPartKind.functionName:$r&32?e.SymbolDisplayPartKind.className:$r&64?e.SymbolDisplayPartKind.interfaceName:$r&384?e.SymbolDisplayPartKind.enumName:$r&1536?e.SymbolDisplayPartKind.moduleName:$r&8192?e.SymbolDisplayPartKind.methodName:$r&262144?e.SymbolDisplayPartKind.typeParameterName:$r&524288||$r&2097152?e.SymbolDisplayPartKind.aliasName:e.SymbolDisplayPartKind.text}}e.symbolPart=Ti;function Ci(_e,nn){return{text:_e,kind:e.SymbolDisplayPartKind[nn]}}e.displayPart=Ci;function Zi(){return Ci(" ",e.SymbolDisplayPartKind.space)}e.spacePart=Zi;function Ki(_e){return Ci(e.tokenToString(_e),e.SymbolDisplayPartKind.keyword)}e.keywordPart=Ki;function ho(_e){return Ci(e.tokenToString(_e),e.SymbolDisplayPartKind.punctuation)}e.punctuationPart=ho;function Ri(_e){return Ci(e.tokenToString(_e),e.SymbolDisplayPartKind.operator)}e.operatorPart=Ri;function zi(_e){return Ci(_e,e.SymbolDisplayPartKind.parameterName)}e.parameterNamePart=zi;function Qo(_e){return Ci(_e,e.SymbolDisplayPartKind.propertyName)}e.propertyNamePart=Qo;function Pa(_e){var nn=e.stringToToken(_e);return nn===void 0?co(_e):Ki(nn)}e.textOrKeywordPart=Pa;function co(_e){return Ci(_e,e.SymbolDisplayPartKind.text)}e.textPart=co;function za(_e){return Ci(_e,e.SymbolDisplayPartKind.aliasName)}e.typeAliasNamePart=za;function fi(_e){return Ci(_e,e.SymbolDisplayPartKind.typeParameterName)}e.typeParameterNamePart=fi;function Wi(_e){return Ci(_e,e.SymbolDisplayPartKind.linkText)}e.linkTextPart=Wi;function _o(_e,nn){return{text:e.getTextOfNode(_e),kind:e.SymbolDisplayPartKind[e.SymbolDisplayPartKind.linkName],target:{fileName:e.getSourceFileOfNode(nn).fileName,textSpan:In(nn)}}}e.linkNamePart=_o;function No(_e){return Ci(_e,e.SymbolDisplayPartKind.link)}e.linkPart=No;function Mo(_e,nn){var _n,sr=e.isJSDocLink(_e)?"link":e.isJSDocLinkCode(_e)?"linkcode":"linkplain",$r=[No("{@"+sr+" ")];if(!_e.name)_e.text&&$r.push(Wi(_e.text));else{var Ft=nn==null?void 0:nn.getSymbolAtLocation(_e.name),Lt=(Ft==null?void 0:Ft.valueDeclaration)||((_n=Ft==null?void 0:Ft.declarations)===null||_n===void 0?void 0:_n[0]);Lt?($r.push(_o(_e.name,Lt)),_e.text&&$r.push(Wi(_e.text))):$r.push(Wi(e.getTextOfNode(_e.name)+" "+_e.text))}return $r.push(No("}")),$r}e.buildLinkParts=Mo;var yo=`\r -`;function qo(_e,nn){var _n;return(nn==null?void 0:nn.newLineCharacter)||((_n=_e.getNewLine)===null||_n===void 0?void 0:_n.call(_e))||yo}e.getNewLineOrDefaultFromHost=qo;function So(){return Ci(` -`,e.SymbolDisplayPartKind.lineBreak)}e.lineBreakPart=So;function Zo(_e){try{return _e(Vi),Vi.displayParts()}finally{Vi.clear()}}e.mapToDisplayParts=Zo;function fn(_e,nn,_n,sr){return sr===void 0&&(sr=0),Zo(function($r){_e.writeType(nn,_n,sr|1024|16384,$r)})}e.typeToDisplayParts=fn;function cr(_e,nn,_n,sr,$r){return $r===void 0&&($r=0),Zo(function(Ft){_e.writeSymbol(nn,_n,sr,$r|8,Ft)})}e.symbolToDisplayParts=cr;function Hr(_e,nn,_n,sr){return sr===void 0&&(sr=0),sr|=16384|1024|32|8192,Zo(function($r){_e.writeSignature(nn,_n,sr,void 0,$r)})}e.signatureToDisplayParts=Hr;function zt(_e){return!!_e.parent&&e.isImportOrExportSpecifier(_e.parent)&&_e.parent.propertyName===_e}e.isImportOrExportSpecifierName=zt;function Oe(_e,nn){return e.ensureScriptKind(_e,nn.getScriptKind&&nn.getScriptKind(_e))}e.getScriptKind=Oe;function Zn(_e,nn){for(var _n=_e;te(_n)||Pr(_n)&&_n.target;)Pr(_n)&&_n.target?_n=_n.target:_n=e.skipAlias(_n,nn);return _n}e.getSymbolTarget=Zn;function Pr(_e){return(_e.flags&33554432)!=0}function te(_e){return(_e.flags&2097152)!=0}function Q(_e,nn){return e.getSymbolId(e.skipAlias(_e,nn))}e.getUniqueSymbolId=Q;function Ae(_e,nn){for(;e.isWhiteSpaceLike(_e.charCodeAt(nn));)nn+=1;return nn}e.getFirstNonSpaceCharacterPosition=Ae;function Fe(_e,nn){for(;nn>-1&&e.isWhiteSpaceSingleLine(_e.charCodeAt(nn));)nn-=1;return nn+1}e.getPrecedingNonSpaceCharacterPosition=Fe;function Ze(_e,nn){nn===void 0&&(nn=!0);var _n=_e&&Yn(_e);return _n&&!nn&&Et(_n),_n}e.getSynthesizedDeepClone=Ze;function Gn(_e,nn,_n){var sr=_n(_e);return sr?e.setOriginalNode(sr,_e):sr=Yn(_e,_n),sr&&!nn&&Et(sr),sr}e.getSynthesizedDeepCloneWithReplacements=Gn;function Yn(_e,nn){var _n=nn?function(Lt){return Gn(Lt,!0,nn)}:Ze,sr=nn?function(Lt){return Lt&&kr(Lt,!0,nn)}:function(Lt){return Lt&&_r(Lt)},$r=e.visitEachChild(_e,_n,e.nullTransformationContext,sr,_n);if($r===_e){var Ft=e.isStringLiteral(_e)?e.setOriginalNode(e.factory.createStringLiteralFromNode(_e),_e):e.isNumericLiteral(_e)?e.setOriginalNode(e.factory.createNumericLiteral(_e.text,_e.numericLiteralFlags),_e):e.factory.cloneNode(_e);return e.setTextRange(Ft,_e)}return $r.parent=void 0,$r}function _r(_e,nn){return nn===void 0&&(nn=!0),_e&&e.factory.createNodeArray(_e.map(function(_n){return Ze(_n,nn)}),_e.hasTrailingComma)}e.getSynthesizedDeepClones=_r;function kr(_e,nn,_n){return e.factory.createNodeArray(_e.map(function(sr){return Gn(sr,nn,_n)}),_e.hasTrailingComma)}e.getSynthesizedDeepClonesWithReplacements=kr;function Et(_e){Vt(_e),Ea(_e)}e.suppressLeadingAndTrailingTrivia=Et;function Vt(_e){ji(_e,512,wi)}e.suppressLeadingTrivia=Vt;function Ea(_e){ji(_e,1024,e.getLastChild)}e.suppressTrailingTrivia=Ea;function da(_e,nn){var _n=_e.getSourceFile(),sr=_n.text;ai(_e,sr)?as(_e,nn,_n):ks(_e,nn,_n),cs(_e,nn,_n)}e.copyComments=da;function ai(_e,nn){for(var _n=_e.getFullStart(),sr=_e.getStart(),$r=_n;$r=0),Ft}e.getRenameLocation=hs;function as(_e,nn,_n,sr,$r){e.forEachLeadingCommentRange(_n.text,_e.pos,pl(nn,_n,sr,$r,e.addSyntheticLeadingComment))}e.copyLeadingComments=as;function cs(_e,nn,_n,sr,$r){e.forEachTrailingCommentRange(_n.text,_e.end,pl(nn,_n,sr,$r,e.addSyntheticTrailingComment))}e.copyTrailingComments=cs;function ks(_e,nn,_n,sr,$r){e.forEachTrailingCommentRange(_n.text,_e.pos,pl(nn,_n,sr,$r,e.addSyntheticLeadingComment))}e.copyTrailingAsLeadingComments=ks;function pl(_e,nn,_n,sr,$r){return function(Ft,Lt,Na,Ni){Na===3?(Ft+=2,Lt-=2):Ft+=2,$r(_e,_n||Na,nn.text.slice(Ft,Lt),sr!==void 0?sr:Ni)}}function ml(_e,nn){if(e.startsWith(_e,nn))return 0;var _n=_e.indexOf(" "+nn);return _n===-1&&(_n=_e.indexOf("."+nn)),_n===-1&&(_n=_e.indexOf('"'+nn)),_n===-1?-1:_n+1}function yl(_e){return e.isBinaryExpression(_e)&&_e.operatorToken.kind===27||e.isObjectLiteralExpression(_e)||e.isAsExpression(_e)&&e.isObjectLiteralExpression(_e.expression)}e.needsParentheses=yl;function Ss(_e,nn){var _n=_e.parent;switch(_n.kind){case 207:return nn.getContextualType(_n);case 219:{var sr=_n,$r=sr.left,Ft=sr.operatorToken,Lt=sr.right;return sl(Ft.kind)?nn.getTypeAtLocation(_e===Lt?$r:Lt):nn.getContextualType(_e)}case 287:return _n.expression===_e?pe(_n,nn):void 0;default:return nn.getContextualType(_e)}}e.getContextualTypeFromParent=Ss;function Es(_e,nn,_n){var sr=Kr(_e,nn),$r=JSON.stringify(_n);return sr===0?"'"+e.stripQuotes($r).replace(/'/g,"\\'").replace(/\\"/g,'"')+"'":$r}e.quote=Es;function sl(_e){switch(_e){case 36:case 34:case 37:case 35:return!0;default:return!1}}e.isEqualityOperatorKind=sl;function El(_e){switch(_e.kind){case 10:case 14:case 221:case 208:return!0;default:return!1}}e.isStringLiteralOrTemplate=El;function bs(_e){return!!_e.getStringIndexType()||!!_e.getNumberIndexType()}e.hasIndexSignature=bs;function pe(_e,nn){return nn.getTypeAtLocation(_e.parent.parent.expression)}e.getSwitchedType=pe,e.ANONYMOUS="anonymous function";function Pn(_e,nn,_n,sr){var $r=_n.getTypeChecker(),Ft=!0,Lt=function(){Ft=!1},Na=$r.typeToTypeNode(_e,nn,1,{trackSymbol:function(Ni,qi,go){return Ft=Ft&&$r.isSymbolAccessible(Ni,qi,go,!1).accessibility===0,!Ft},reportInaccessibleThisError:Lt,reportPrivateInBaseOfClassExpression:Lt,reportInaccessibleUniqueSymbolError:Lt,moduleResolverHost:Ka(_n,sr)});return Ft?Na:void 0}e.getTypeNodeIfAccessible=Pn;function mr(_e){return _e===172||_e===173||_e===174||_e===164||_e===166}e.syntaxRequiresTrailingCommaOrSemicolonOrASI=mr;function Ce(_e){return _e===254||_e===169||_e===167||_e===170||_e===171}e.syntaxRequiresTrailingFunctionBlockOrSemicolonOrASI=Ce;function Xn(_e){return _e===259}e.syntaxRequiresTrailingModuleBlockOrSemicolonOrASI=Xn;function it(_e){return _e===235||_e===236||_e===238||_e===243||_e===244||_e===245||_e===249||_e===251||_e===165||_e===257||_e===264||_e===263||_e===270||_e===262||_e===269}e.syntaxRequiresTrailingSemicolonOrASI=it,e.syntaxMayBeASICandidate=e.or(mr,Ce,Xn,it);function Wt(_e,nn){var _n=_e.getLastToken(nn);if(_n&&_n.kind===26)return!1;if(mr(_e.kind)){if(_n&&_n.kind===27)return!1}else if(Xn(_e.kind)){var sr=e.last(_e.getChildren(nn));if(sr&&e.isModuleBlock(sr))return!1}else if(Ce(_e.kind)){var sr=e.last(_e.getChildren(nn));if(sr&&e.isFunctionBlock(sr))return!1}else if(!it(_e.kind))return!1;if(_e.kind===238)return!0;var $r=e.findAncestor(_e,function(Ni){return!Ni.parent}),Ft=Be(_e,$r,nn);if(!Ft||Ft.kind===19)return!0;var Lt=nn.getLineAndCharacterOfPosition(_e.getEnd()).line,Na=nn.getLineAndCharacterOfPosition(Ft.getStart(nn)).line;return Lt!==Na}function oa(_e,nn,_n){var sr=e.findAncestor(nn,function($r){return $r.end!==_e?"quit":e.syntaxMayBeASICandidate($r.kind)});return!!sr&&Wt(sr,_n)}e.positionIsASICandidate=oa;function ci(_e){var nn=0,_n=0,sr=5;return e.forEachChild(_e,function $r(Ft){if(it(Ft.kind)){var Lt=Ft.getLastToken(_e);Lt&&Lt.kind===26?nn++:_n++}return nn+_n>=sr?!0:e.forEachChild(Ft,$r)}),nn===0&&_n<=1?!0:nn/_n>1/sr}e.probablyUsesSemicolons=ci;function ui(_e,nn){return Hs(_e,_e.getDirectories,nn)||[]}e.tryGetDirectories=ui;function xn(_e,nn,_n,sr,$r){return Hs(_e,_e.readDirectory,nn,_n,sr,$r)||e.emptyArray}e.tryReadDirectory=xn;function $o(_e,nn){return Hs(_e,_e.fileExists,nn)}e.tryFileExists=$o;function Jo(_e,nn){return Ms(function(){return e.directoryProbablyExists(nn,_e)})||!1}e.tryDirectoryExists=Jo;function Ms(_e){try{return _e()}catch{return}}e.tryAndIgnoreErrors=Ms;function Hs(_e,nn){for(var _n=[],sr=2;sr=0){var $r=nn[sr];return e.Debug.assertEqual($r.file,_e.getSourceFile(),"Diagnostics proided to 'findDiagnosticForNode' must be from a single SourceFile"),e.cast($r,Ac)}}e.findDiagnosticForNode=Tl;function Dn(_e,nn){var _n,sr=e.binarySearchKey(nn,_e.start,function(Na){return Na.start},e.compareValues);for(sr<0&&(sr=~sr);((_n=nn[sr-1])===null||_n===void 0?void 0:_n.start)===_e.start;)sr--;for(var $r=[],Ft=e.textSpanEnd(_e);;){var Lt=e.tryCast(nn[sr],Ac);if(!Lt||Lt.start>Ft)break;e.textSpanContainsTextSpan(_e,Lt)&&$r.push(Lt),sr++}return $r}e.getDiagnosticsWithinSpan=Dn;function nr(_e){var nn=_e.startPosition,_n=_e.endPosition;return e.createTextSpanFromBounds(nn,_n===void 0?nn:_n)}e.getRefactorContextSpan=nr;function Sr(_e,nn,_n){return _n===void 0&&(_n=e.identity),_e?e.isArray(_e)?_n(e.map(_e,nn)):nn(_e,0):void 0}e.mapOneOrMany=Sr;function Qr(_e){return e.isArray(_e)?e.first(_e):_e}e.firstOrOnly=Qr;function lt(_e,nn){return!(_e.flags&33554432)&&(_e.escapedName==="export="||_e.escapedName==="default")?e.firstDefined(_e.declarations,function(_n){var sr;return e.isExportAssignment(_n)?(sr=e.tryCast(e.skipOuterExpressions(_n.expression),e.isIdentifier))===null||sr===void 0?void 0:sr.text:void 0})||e.codefix.moduleSymbolToValidIdentifier(ct(_e),nn):_e.name}e.getNameForExportedSymbol=lt;function ct(_e){var nn;return e.Debug.checkDefined(_e.parent,"Symbol parent was undefined. Flags: "+e.Debug.formatSymbolFlags(_e.flags)+". "+("Declarations: "+((nn=_e.declarations)===null||nn===void 0?void 0:nn.map(function(_n){var sr=e.Debug.formatSyntaxKind(_n.kind),$r=e.isInJSFile(_n),Ft=_n.expression;return($r?"[JS]":"")+sr+(Ft?" (expression: "+e.Debug.formatSyntaxKind(Ft.kind)+")":"")}).join(", "))+"."))}function Nt(_e,nn,_n){var sr=nn.length;if(sr+_n>_e.length)return!1;for(var $r=0;$r=ne.length){var V=g(M,K,e.lastOrUndefined(b));V!==void 0&&(m=V)}}while(K!==1);function Z(){switch(K){case 43:case 68:!d[ee]&&M.reScanSlashToken()===13&&(K=13);break;case 29:ee===79&&f++;break;case 31:f>0&&f--;break;case 129:case 148:case 145:case 132:case 149:f>0&&!H&&(K=79);break;case 15:b.push(K);break;case 18:b.length>0&&b.push(K);break;case 19:if(b.length>0){var S=e.lastOrUndefined(b);S===15?(K=M.reScanTemplateToken(!1),K===17?b.pop():e.Debug.assertEqual(K,16,"Should have been a template middle.")):(e.Debug.assertEqual(S,18,"Should have been an open brace"),b.pop())}break;default:if(!e.isKeyword(K))break;(ee===24||e.isKeyword(ee)&&e.isKeyword(K)&&!J(ee,K))&&(K=79)}}return{endOfLineState:m,spans:c}}return{getClassificationsForLine:z,getEncodedLexicalClassifications:Y}}e.createClassifier=a;var d=e.arrayToNumericMap([79,10,8,9,13,108,45,46,21,23,19,110,95],function(M){return M},function(){return!0});function g(M,z,Y){switch(z){case 10:{if(!M.isUnterminated())return;for(var ne=M.getTokenText(),j=ne.length-1,H=0;ne.charCodeAt(j-H)===92;)H++;return(H&1)==0?void 0:ne.charCodeAt(0)===34?3:2}case 3:return M.isUnterminated()?1:void 0;default:if(e.isTemplateLiteralKind(z)){if(!M.isUnterminated())return;switch(z){case 17:return 5;case 14:return 4;default:return e.Debug.fail("Only 'NoSubstitutionTemplateLiteral's and 'TemplateTail's can be unterminated; got SyntaxKind #"+z)}}return Y===15?6:void 0}}function t(M,z,Y,ne,j){if(ne!==8){M===0&&Y>0&&(M+=Y);var H=z-M;H>0&&j.push(M-Y,H,ne)}}function p(M,z){for(var Y=[],ne=M.spans,j=0,H=0;H=0){var A=K-j;A>0&&Y.push({length:A,classification:e.TokenClass.Whitespace})}Y.push({length:ee,classification:P(b)}),j=K+ee}var E=z.length-j;return E>0&&Y.push({length:E,classification:e.TokenClass.Whitespace}),{entries:Y,finalLexState:M.endOfLineState}}function P(M){switch(M){case 1:return e.TokenClass.Comment;case 3:return e.TokenClass.Keyword;case 4:return e.TokenClass.NumberLiteral;case 25:return e.TokenClass.BigIntLiteral;case 5:return e.TokenClass.Operator;case 6:return e.TokenClass.StringLiteral;case 8:return e.TokenClass.Whitespace;case 10:return e.TokenClass.Punctuation;case 2:case 11:case 12:case 13:case 14:case 15:case 16:case 9:case 17:return e.TokenClass.Identifier;default:return}}function J(M,z){if(!e.isAccessibilityModifier(M))return!0;switch(z){case 135:case 147:case 133:case 124:return!0;default:return!1}}function h(M){switch(M){case 3:return{prefix:`"\\ -`};case 2:return{prefix:`'\\ -`};case 1:return{prefix:`/* -`};case 4:return{prefix:"`\n"};case 5:return{prefix:`} -`,pushTemplate:!0};case 6:return{prefix:"",pushTemplate:!0};case 0:return{prefix:""};default:return e.Debug.assertNever(M)}}function v(M){switch(M){case 41:case 43:case 44:case 39:case 40:case 47:case 48:case 49:case 29:case 31:case 32:case 33:case 102:case 101:case 127:case 34:case 35:case 36:case 37:case 50:case 52:case 51:case 55:case 56:case 74:case 73:case 78:case 70:case 71:case 72:case 64:case 65:case 66:case 68:case 69:case 63:case 27:case 60:case 75:case 76:case 77:return!0;default:return!1}}function I(M){switch(M){case 39:case 40:case 54:case 53:case 45:case 46:return!0;default:return!1}}function X(M){if(e.isKeyword(M))return 3;if(v(M)||I(M))return 5;if(M>=18&&M<=78)return 10;switch(M){case 8:return 4;case 9:return 25;case 10:return 6;case 13:return 7;case 7:case 3:case 2:return 1;case 5:case 4:return 8;case 79:default:return e.isTemplateLiteralKind(M)?6:2}}function se(M,z,Y,ne,j){return R(w(M,z,Y,ne,j))}e.getSemanticClassifications=se;function y(M,z){switch(z){case 259:case 255:case 256:case 254:case 224:case 211:case 212:M.throwIfCancellationRequested()}}function w(M,z,Y,ne,j){var H=[];return Y.forEachChild(function ee(b){if(!(!b||!e.textSpanIntersectsWith(j,b.pos,b.getFullWidth()))){if(y(z,b.kind),e.isIdentifier(b)&&!e.nodeIsMissing(b)&&ne.has(b.escapedText)){var A=M.getSymbolAtLocation(b),E=A&&D(A,e.getMeaningFromLocation(b),M);E&&K(b.getStart(Y),b.getEnd(),E)}b.forEachChild(ee)}}),{spans:H,endOfLineState:0};function K(ee,b,A){var E=b-ee;e.Debug.assert(E>0,"Classification had non-positive length of "+E),H.push(ee),H.push(E),H.push(A)}}e.getEncodedSemanticClassifications=w;function D(M,z,Y){var ne=M.getFlags();if((ne&2885600)!=0)return ne&32?11:ne&384?12:ne&524288?16:ne&1536?z&4||z&1&&U(M)?14:void 0:ne&2097152?D(Y.getAliasedSymbol(M),z,Y):z&2?ne&64?13:ne&262144?15:void 0:void 0}function U(M){return e.some(M.declarations,function(z){return e.isModuleDeclaration(z)&&e.getModuleInstanceState(z)===1})}function B(M){switch(M){case 1:return"comment";case 2:return"identifier";case 3:return"keyword";case 4:return"number";case 25:return"bigint";case 5:return"operator";case 6:return"string";case 8:return"whitespace";case 9:return"text";case 10:return"punctuation";case 11:return"class name";case 12:return"enum name";case 13:return"interface name";case 14:return"module name";case 15:return"type parameter name";case 16:return"type alias name";case 17:return"parameter name";case 18:return"doc comment tag name";case 19:return"jsx open tag name";case 20:return"jsx close tag name";case 21:return"jsx self closing tag name";case 22:return"jsx attribute";case 23:return"jsx text";case 24:return"jsx attribute string literal value";default:return}}function R(M){e.Debug.assert(M.spans.length%3==0);for(var z=M.spans,Y=[],ne=0;ne])*)(\/>)?)?/im,re=/(\s)(\S+)(\s*)(=)(\s*)('[^']+'|"[^"]+")/img,q=z.text.substr(ge,ae),ue=F.exec(q);if(!ue||!ue[3]||!(ue[3]in e.commentPragmas))return!1;var ke=ge;x(ke,ue[1].length),ke+=ue[1].length,b(ke,ue[2].length,10),ke+=ue[2].length,b(ke,ue[3].length,21),ke+=ue[3].length;for(var de=ue[4],xe=ke;;){var Le=re.exec(de);if(!Le)break;var He=ke+Le.index+Le[1].length;He>xe&&(x(xe,He-xe),xe=He),b(xe,Le[2].length,22),xe+=Le[2].length,Le[3].length&&(x(xe,Le[3].length),xe+=Le[3].length),b(xe,Le[4].length,5),xe+=Le[4].length,Le[5].length&&(x(xe,Le[5].length),xe+=Le[5].length),b(xe,Le[6].length,24),xe+=Le[6].length}ke+=ue[4].length,ke>xe&&x(xe,ke-xe),ue[5]&&(b(ke,ue[5].length,10),ke+=ue[5].length);var Ne=ge+ae;return ke=0),re>0){var q=ae||S(ge.kind,ge);q&&b(F,re,q)}return!0}function Z(ge){switch(ge.parent&&ge.parent.kind){case 278:if(ge.parent.tagName===ge)return 19;break;case 279:if(ge.parent.tagName===ge)return 20;break;case 277:if(ge.parent.tagName===ge)return 21;break;case 283:if(ge.parent.name===ge)return 22;break}}function S(ge,ae){if(e.isKeyword(ge))return 3;if((ge===29||ge===31)&&ae&&e.getTypeArgumentOrTypeParameterList(ae.parent))return 10;if(e.isPunctuation(ge)){if(ae){var F=ae.parent;if(ge===63&&(F.kind===252||F.kind===165||F.kind===162||F.kind===283)||F.kind===219||F.kind===217||F.kind===218||F.kind===220)return 5}return 10}else{if(ge===8)return 4;if(ge===9)return 25;if(ge===10)return ae&&ae.parent.kind===283?24:6;if(ge===13)return 6;if(e.isTemplateLiteralKind(ge))return 6;if(ge===11)return 23;if(ge===79){if(ae)switch(ae.parent.kind){case 255:return ae.parent.name===ae?11:void 0;case 161:return ae.parent.name===ae?15:void 0;case 256:return ae.parent.name===ae?13:void 0;case 258:return ae.parent.name===ae?12:void 0;case 259:return ae.parent.name===ae?14:void 0;case 162:return ae.parent.name===ae?e.isThisIdentifier(ae)?3:17:void 0}return 2}}}function ce(ge){if(!!ge&&e.decodedTextSpanIntersectsWith(ne,j,ge.pos,ge.getFullWidth())){y(M,ge.kind);for(var ae=0,F=ge.getChildren(z);ae0}))return 0;if(O(function(k){return k.getCallSignatures().length>0})&&!O(function(k){return k.getProperties().length>0})||se(U))return B===9?11:10}}return B}function v(D,U){return e.isBindingElement(D)&&(D=I(D)),e.isVariableDeclaration(D)?(!e.isSourceFile(D.parent.parent.parent)||e.isCatchClause(D.parent))&&D.getSourceFile()===U:e.isFunctionDeclaration(D)?!e.isSourceFile(D.parent)&&D.getSourceFile()===U:!1}function I(D){for(;;)if(e.isBindingElement(D.parent.parent))D=D.parent.parent;else return D.parent.parent}function X(D){var U=D.parent;return U&&(e.isImportClause(U)||e.isImportSpecifier(U)||e.isNamespaceImport(U))}function se(D){for(;y(D);)D=D.parent;return e.isCallExpression(D.parent)&&D.parent.expression===D}function y(D){return e.isQualifiedName(D.parent)&&D.parent.right===D||e.isPropertyAccessExpression(D.parent)&&D.parent.name===D}var w=new e.Map([[252,7],[162,6],[165,9],[259,3],[258,1],[294,8],[255,0],[167,11],[254,10],[211,10],[166,11],[170,9],[171,9],[164,9],[256,2],[257,5],[161,4],[291,9],[292,9]])})(a.v2020||(a.v2020={}))})(e.classifier||(e.classifier={}))})(un||(un={}));var un;(function(e){(function(a){(function(d){function g(q,ue,ke,de,xe,Le,He,Ne){if(e.isInReferenceComment(q,ue)){var De=N(q,ue,xe,Le);return De&&J(De)}if(e.isInString(q,ue,ke)){if(!ke||!e.isStringLiteralLike(ke))return;var De=I(q,ke,ue,de,xe,Le,Ne);return t(De,ke,q,de,He,xe,Ne)}}d.getStringLiteralCompletions=g;function t(q,ue,ke,de,xe,Le,He){if(q!==void 0){var Ne=e.createTextSpanFromStringLiteralLikeContent(ue);switch(q.kind){case 0:return J(q.paths);case 1:{var De=[];return a.getCompletionEntriesFromSymbols(q.symbols,De,ue,ke,ke,de,99,xe,4,He,Le),{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:q.hasIndexSignature,optionalReplacementSpan:Ne,entries:De}}case 2:{var De=q.types.map(function(We){return{name:We.value,kindModifiers:"",kind:"string",sortText:a.SortText.LocationPriority,replacementSpan:e.getReplacementSpanForContextToken(ue)}});return{isGlobalCompletion:!1,isMemberCompletion:!1,isNewIdentifierLocation:q.isNewIdentifier,optionalReplacementSpan:Ne,entries:De}}default:return e.Debug.assertNever(q)}}}function p(q,ue,ke,de,xe,Le,He,Ne,De){if(!(!de||!e.isStringLiteralLike(de))){var Ee=I(ue,de,ke,xe,Le,He,De);return Ee&&P(q,de,Ee,ue,xe,Ne)}}d.getStringLiteralCompletionDetails=p;function P(q,ue,ke,de,xe,Le){switch(ke.kind){case 0:{var He=e.find(ke.paths,function(Ne){return Ne.name===q});return He&&a.createCompletionDetails(q,h(He.extension),He.kind,[e.textPart(q)])}case 1:{var He=e.find(ke.symbols,function(De){return De.name===q});return He&&a.createCompletionDetailsForSymbol(He,xe,de,ue,Le)}case 2:return e.find(ke.types,function(Ne){return Ne.value===q})?a.createCompletionDetails(q,"","type",[e.textPart(q)]):void 0;default:return e.Debug.assertNever(ke)}}function J(q){var ue=!1,ke=!0,de=q.map(function(xe){var Le=xe.name,He=xe.kind,Ne=xe.span,De=xe.extension;return{name:Le,kind:He,kindModifiers:h(De),sortText:a.SortText.LocationPriority,replacementSpan:Ne}});return{isGlobalCompletion:ue,isMemberCompletion:!1,isNewIdentifierLocation:ke,entries:de}}function h(q){switch(q){case".d.ts":return".d.ts";case".js":return".js";case".json":return".json";case".jsx":return".jsx";case".ts":return".ts";case".tsx":return".tsx";case".tsbuildinfo":return e.Debug.fail("Extension .tsbuildinfo is unsupported.");case void 0:return"";default:return e.Debug.assertNever(q)}}var v;(function(q){q[q.Paths=0]="Paths",q[q.Properties=1]="Properties",q[q.Types=2]="Types"})(v||(v={}));function I(q,ue,ke,de,xe,Le,He){var Ne=X(ue.parent);switch(Ne.kind){case 194:{var De=X(Ne.parent);switch(De.kind){case 176:{var Ee=De,We=e.findAncestor(Ne,function(Nn){return Nn.parent===Ee});return We?{kind:2,types:U(de.getTypeArgumentConstraint(We)),isNewIdentifier:!1}:void 0}case 192:var ye=De,Ie=ye.indexType,je=ye.objectType;return e.rangeContainsPosition(Ie,ke)?w(de.getTypeFromTypeNode(je)):void 0;case 198:return{kind:0,paths:k(q,ue,xe,Le,de,He)};case 185:{if(!e.isTypeReferenceNode(De.parent))return;var Sn=se(De,Ne),Me=U(de.getTypeArgumentConstraint(De)).filter(function(Nn){return!e.contains(Sn,Nn.value)});return{kind:2,types:Me,isNewIdentifier:!1}}default:return}}case 291:return e.isObjectLiteralExpression(Ne.parent)&&Ne.name===ue?D(de,Ne.parent):vn();case 205:{var we=Ne,ze=we.expression,Cn=we.argumentExpression;return ue===e.skipParentheses(Cn)?w(de.getTypeAtLocation(ze)):void 0}case 206:case 207:if(!re(ue)&&!e.isImportCall(Ne)){var an=e.SignatureHelp.getArgumentInfoForCompletions(ue,ke,q);return an?y(an,de):vn()}case 264:case 270:case 275:return{kind:0,paths:k(q,ue,xe,Le,de,He)};default:return vn()}function vn(){return{kind:2,types:U(e.getContextualTypeFromParent(ue,de)),isNewIdentifier:!1}}}function X(q){switch(q.kind){case 189:return e.walkUpParenthesizedTypes(q);case 210:return e.walkUpParenthesizedExpressions(q);default:return q}}function se(q,ue){return e.mapDefined(q.types,function(ke){return ke!==ue&&e.isLiteralTypeNode(ke)&&e.isStringLiteral(ke.literal)?ke.literal.text:void 0})}function y(q,ue){var ke=!1,de=new e.Map,xe=[];ue.getResolvedSignature(q.invocation,xe,q.argumentCount);var Le=e.flatMap(xe,function(He){if(!(!e.signatureHasRestParameter(He)&&q.argumentCount>He.parameters.length)){var Ne=ue.getParameterType(He,q.argumentIndex);return ke=ke||!!(Ne.flags&4),U(Ne,de)}});return{kind:2,types:Le,isNewIdentifier:ke}}function w(q){return q&&{kind:1,symbols:e.filter(q.getApparentProperties(),function(ue){return!(ue.valueDeclaration&&e.isPrivateIdentifierClassElementDeclaration(ue.valueDeclaration))}),hasIndexSignature:e.hasIndexSignature(q)}}function D(q,ue){var ke=q.getContextualType(ue);if(!!ke){var de=q.getContextualType(ue,4),xe=a.getPropertiesForObjectExpression(ke,de,ue,q);return{kind:1,symbols:xe,hasIndexSignature:e.hasIndexSignature(ke)}}}function U(q,ue){return ue===void 0&&(ue=new e.Map),q?(q=e.skipConstraint(q),q.isUnion()?e.flatMap(q.types,function(ke){return U(ke,ue)}):q.isStringLiteral()&&!(q.flags&1024)&&e.addToSeen(ue,q.value)?[q]:e.emptyArray):e.emptyArray}function B(q,ue,ke){return{name:q,kind:ue,extension:ke}}function R(q){return B(q,"directory",void 0)}function O(q,ue,ke){var de=S(q,ue),xe=q.length===0?void 0:e.createTextSpan(ue,q.length);return ke.map(function(Le){var He=Le.name,Ne=Le.kind,De=Le.extension;return Math.max(He.indexOf(e.directorySeparator),He.indexOf(e.altDirectorySeparator))!==-1?{name:He,kind:Ne,extension:De,span:xe}:{name:He,kind:Ne,extension:De,span:de}})}function k(q,ue,ke,de,xe,Le){return O(ue.text,ue.getStart(q)+1,M(q,ue,ke,de,xe,Le))}function M(q,ue,ke,de,xe,Le){var He=e.normalizeSlashes(ue.text),Ne=q.path,De=e.getDirectoryPath(Ne);return ce(He)||!ke.baseUrl&&(e.isRootedDiskPath(He)||e.isUrl(He))?Y(He,De,ke,de,Ne,Le):A(He,De,ke,de,xe)}function z(q,ue){return ue===void 0&&(ue=0),{extensions:ne(q),includeExtensionsOption:ue}}function Y(q,ue,ke,de,xe,Le){var He=Le.importModuleSpecifierEnding==="js"?2:0,Ne=z(ke,He);return ke.rootDirs?H(ke.rootDirs,q,ue,Ne,ke,de,xe):ee(q,ue,Ne,de,xe)}function ne(q){var ue=e.getSupportedExtensions(q);return q.resolveJsonModule&&e.getEmitModuleResolutionKind(q)===e.ModuleResolutionKind.NodeJs?ue.concat(".json"):ue}function j(q,ue,ke,de){q=q.map(function(Le){return e.normalizePath(e.isRootedDiskPath(Le)?Le:e.combinePaths(ue,Le))});var xe=e.firstDefined(q,function(Le){return e.containsPath(Le,ke,ue,de)?ke.substr(Le.length):void 0});return e.deduplicate(Mr(Mr([],q.map(function(Le){return e.combinePaths(Le,xe)}),!0),[ke],!1),e.equateStringsCaseSensitive,e.compareStringsCaseSensitive)}function H(q,ue,ke,de,xe,Le,He){var Ne=xe.project||Le.getCurrentDirectory(),De=!(Le.useCaseSensitiveFileNames&&Le.useCaseSensitiveFileNames()),Ee=j(q,Ne,ke,De);return e.flatMap(Ee,function(We){return ee(ue,We,de,Le,He)})}var K;(function(q){q[q.Exclude=0]="Exclude",q[q.Include=1]="Include",q[q.ModuleSpecifierCompletion=2]="ModuleSpecifierCompletion"})(K||(K={}));function ee(q,ue,ke,de,xe,Le){var He=ke.extensions,Ne=ke.includeExtensionsOption;Le===void 0&&(Le=[]),q===void 0&&(q=""),q=e.normalizeSlashes(q),e.hasTrailingDirectorySeparator(q)||(q=e.getDirectoryPath(q)),q===""&&(q="."+e.directorySeparator),q=e.ensureTrailingDirectorySeparator(q);var De=e.resolvePath(ue,q),Ee=e.hasTrailingDirectorySeparator(De)?De:e.getDirectoryPath(De),We=!(de.useCaseSensitiveFileNames&&de.useCaseSensitiveFileNames());if(!e.tryDirectoryExists(de,Ee))return Le;var ye=e.tryReadDirectory(de,Ee,He,void 0,["./*"]);if(ye){for(var Ie=new e.Map,je=0,Sn=ye;je=Sn.pos&&ue<=Sn.end});if(!!He){var Ne=q.text.slice(He.pos,ue),De=ge.exec(Ne);if(!!De){var Ee=De[1],We=De[2],ye=De[3],Ie=e.getDirectoryPath(q.path),je=We==="path"?ee(ye,Ie,z(ke,1),de,q.path):We==="types"?V(de,ke,Ie,E(ye),z(ke)):e.Debug.fail();return O(ye,He.pos+Ee.length,je)}}}function V(q,ue,ke,de,xe,Le){Le===void 0&&(Le=[]);for(var He=new e.Map,Ne=e.tryAndIgnoreErrors(function(){return e.getEffectiveTypeRoots(ue,q)})||e.emptyArray,De=0,Ee=Ne;De=2&&q.charCodeAt(0)===46){var ue=q.length>=3&&q.charCodeAt(1)===46?2:1,ke=q.charCodeAt(ue);return ke===47||ke===92}return!1}var ge=/^(\/\/\/\s*"),xr=e.createTextSpanFromNode(sn.tagName),Gr={name:Cr,kind:"class",kindModifiers:void 0,sortText:d.LocationPriority};return{isGlobalCompletion:!1,isMemberCompletion:!0,isNewIdentifierLocation:!1,optionalReplacementSpan:xr,entries:[Gr]}}}function H(he,ln,sn,An,Un){e.getNameTable(he).forEach(function(pr,Cr){if(pr!==ln){var xr=e.unescapeLeadingUnderscores(Cr);!sn.has(xr)&&e.isIdentifierText(xr,An)&&(sn.add(xr),Un.push({name:xr,kind:"warning",kindModifiers:"",sortText:d.JavascriptIdentifiers,isFromUncheckedFile:!0}))}})}function K(he,ln,sn){return typeof sn=="object"?e.pseudoBigIntToString(sn)+"n":e.isString(sn)?e.quote(he,ln,sn):JSON.stringify(sn)}function ee(he,ln,sn){return{name:K(he,ln,sn),kind:"string",kindModifiers:"",sortText:d.LocationPriority}}function b(he,ln,sn,An,Un,pr,Cr,xr,Gr,Ve,Ln,Wn,Je,kn,Qn,jn){var on,fe,Ge=e.getReplacementSpanForContextToken(sn),tn,le,Vn,or,bn=Gr&&y(Gr),In=Gr&&J(Gr)||xr;if(Gr&&P(Gr))fe=xr?"this"+(bn?"?.":"")+"["+x(Un,jn,Cr)+"]":"this"+(bn?"?.":".")+Cr;else if((In||bn)&&Ln){fe=In?xr?"["+x(Un,jn,Cr)+"]":"["+Cr+"]":Cr,(bn||Ln.questionDotToken)&&(fe="?."+fe);var pn=e.findChildOfKind(Ln,24,Un)||e.findChildOfKind(Ln,28,Un);if(!pn)return;var Rn=e.startsWith(Cr,Ln.name.text)?Ln.name.end:pn.end;Ge=e.createTextSpanFromBounds(pn.getStart(Un),Rn)}if(Wn&&(fe===void 0&&(fe=Cr),fe="{"+fe+"}",typeof Wn!="boolean"&&(Ge=e.createTextSpanFromNode(Wn,Un))),Gr&&se(Gr)&&Ln){fe===void 0&&(fe=Cr);var hn=e.findPrecedingToken(Ln.pos,Un),rr="";hn&&e.positionIsASICandidate(hn.end,hn.parent,Un)&&(rr=";"),rr+="(await "+Ln.expression.getText()+")",fe=xr?""+rr+fe:""+rr+(bn?"?.":".")+fe,Ge=e.createTextSpanFromBounds(Ln.getStart(Un),Ln.end)}if(v(Gr)&&(Vn=[e.textPart(Gr.moduleSpecifier)],Je&&(on=E(Cr,Je,Gr,kn,Qn,jn),fe=on.insertText,Ge=on.replacementSpan,le=jn.includeCompletionsWithSnippetText?!0:void 0)),!(fe!==void 0&&!jn.includeCompletionsWithInsertText))return(h(Gr)||v(Gr))&&(tn=A(Gr),or=!Je),{name:Cr,kind:e.SymbolDisplay.getSymbolKind(pr,he,An),kindModifiers:e.SymbolDisplay.getSymbolModifiers(pr,he),sortText:ln,source:m(Gr),hasAction:or?!0:void 0,isRecommended:C(he,Ve,pr)||void 0,insertText:fe,replacementSpan:Ge,sourceDisplay:Vn,isSnippet:le,isPackageJsonImport:X(Gr)||void 0,isImportStatementCompletion:!!Je||void 0,data:tn}}function A(he){return{exportName:he.exportName,fileName:he.fileName,ambientModuleName:he.fileName?void 0:e.stripQuotes(he.moduleSymbol.name),isPackageJsonImport:he.isFromPackageJson?!0:void 0,moduleSpecifier:v(he)?he.moduleSpecifier:void 0}}function E(he,ln,sn,An,Un,pr){var Cr=ln.getSourceFile(),xr=e.createTextSpanFromNode(ln,Cr),Gr=e.quote(Cr,pr,sn.moduleSpecifier),Ve=sn.isDefaultExport?1:sn.exportName==="export="?2:0,Ln=pr.includeCompletionsWithSnippetText?"$1":"",Wn=e.codefix.getImportKind(Cr,Ve,Un,!0),Je=An?";":"";switch(Wn){case 3:return{replacementSpan:xr,insertText:"import "+he+Ln+" = require("+Gr+")"+Je};case 1:return{replacementSpan:xr,insertText:"import "+he+Ln+" from "+Gr+Je};case 2:return{replacementSpan:xr,insertText:"import * as "+he+" from "+Gr+Je};case 0:return{replacementSpan:xr,insertText:"import { "+he+Ln+" } from "+Gr+Je}}}function x(he,ln,sn){return/^\d+$/.test(sn)?sn:e.quote(he,ln,sn)}function C(he,ln,sn){return he===ln||!!(he.flags&1048576)&&sn.getExportSymbolOfSymbol(he)===ln}function m(he){if(h(he))return e.stripQuotes(he.moduleSymbol.name);if(v(he))return he.moduleSpecifier;if((he==null?void 0:he.kind)===1)return t.ThisProperty}function c(he,ln,sn,An,Un,pr,Cr,xr,Gr,Ve,Ln,Wn,Je,kn,Qn,jn,on,fe,Ge){for(var tn,le=e.timestamp(),Vn=qe(An),or=e.probablyUsesSemicolons(Un),bn=new e.Map,In=0;In-1?S(Wn,"keyword",e.SymbolDisplayPartKind.keyword):void 0;default:return e.Debug.assertNever(Qn)}}case"symbol":{var jn=kn.symbol,on=kn.location,fe=kn.origin,Ge=kn.previousToken,tn=ae(fe,jn,he,pr,Ln,sn,An,Ge,Cr,xr,Un.data),le=tn.codeActions,Vn=tn.sourceDisplay;return ce(jn,Ve,sn,on,Gr,le,Vn)}case"literal":{var or=kn.literal;return S(K(sn,xr,or),"string",typeof or=="string"?e.SymbolDisplayPartKind.stringLiteral:e.SymbolDisplayPartKind.numericLiteral)}case"none":return Ee().some(function(bn){return bn.name===Wn})?S(Wn,"keyword",e.SymbolDisplayPartKind.keyword):void 0;default:e.Debug.assertNever(kn)}}a.getCompletionEntryDetails=Z;function S(he,ln,sn){return ge(he,"",ln,[e.displayPart(he,sn)])}function ce(he,ln,sn,An,Un,pr,Cr){var xr=ln.runWithCancellationToken(Un,function(Je){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(Je,he,sn,An,An,7)}),Gr=xr.displayParts,Ve=xr.documentation,Ln=xr.symbolKind,Wn=xr.tags;return ge(he.name,e.SymbolDisplay.getSymbolModifiers(ln,he),Ln,Gr,Ve,Wn,pr,Cr)}a.createCompletionDetailsForSymbol=ce;function ge(he,ln,sn,An,Un,pr,Cr,xr){return{name:he,kindModifiers:ln,kind:sn,displayParts:An,documentation:Un,tags:pr,codeActions:Cr,source:xr,sourceDisplay:xr}}a.createCompletionDetails=ge;function ae(he,ln,sn,An,Un,pr,Cr,xr,Gr,Ve,Ln){if(Ln==null?void 0:Ln.moduleSpecifier){var Wn=Le(Cr,pr),Je=Wn.contextToken,kn=Wn.previousToken;if(kn&&Be(Je||kn))return{codeActions:void 0,sourceDisplay:[e.textPart(Ln.moduleSpecifier)]}}if(!he||!(h(he)||v(he)))return{codeActions:void 0,sourceDisplay:void 0};var Qn=he.isFromPackageJson?An.getPackageJsonAutoImportProvider().getTypeChecker():sn.getTypeChecker(),jn=he.moduleSymbol,on=Qn.getMergedSymbol(e.skipAlias(ln.exportSymbol||ln,Qn)),fe=e.codefix.getImportCompletionAction(on,jn,pr,e.getNameForExportedSymbol(ln,Un.target),An,sn,Gr,xr&&e.isIdentifier(xr)?xr.getStart(pr):Cr,Ve),Ge=fe.moduleSpecifier,tn=fe.codeAction;return e.Debug.assert(!(Ln==null?void 0:Ln.moduleSpecifier)||Ge===Ln.moduleSpecifier),{sourceDisplay:[e.textPart(Ge)],codeActions:[tn]}}function F(he,ln,sn,An,Un,pr,Cr){var xr=V(he,ln,sn,An,Un,pr,Cr);return xr.type==="symbol"?xr.symbol:void 0}a.getCompletionEntrySymbol=F;var re;(function(he){he[he.Data=0]="Data",he[he.JsDocTagName=1]="JsDocTagName",he[he.JsDocTag=2]="JsDocTag",he[he.JsDocParameterName=3]="JsDocParameterName",he[he.Keywords=4]="Keywords"})(re||(re={})),function(he){he[he.ObjectPropertyDeclaration=0]="ObjectPropertyDeclaration",he[he.Global=1]="Global",he[he.PropertyAccess=2]="PropertyAccess",he[he.MemberLike=3]="MemberLike",he[he.String=4]="String",he[he.None=5]="None"}(a.CompletionKind||(a.CompletionKind={}));function q(he,ln,sn){return e.firstDefined(ln&&(ln.isUnion()?ln.types:[ln]),function(An){var Un=An&&An.symbol;return Un&&Un.flags&(8|384|32)&&!e.isAbstractConstructorSymbol(Un)?ke(Un,he,sn):void 0})}function ue(he,ln,sn,An){var Un=he.parent;switch(he.kind){case 79:return e.getContextualTypeFromParent(he,An);case 63:switch(Un.kind){case 252:return An.getContextualType(Un.initializer);case 219:return An.getTypeAtLocation(Un.left);case 283:return An.getContextualTypeForJsxAttribute(Un);default:return}case 103:return An.getContextualType(Un);case 82:return e.getSwitchedType(e.cast(Un,e.isCaseClause),An);case 18:return e.isJsxExpression(Un)&&Un.parent.kind!==276?An.getContextualTypeForJsxAttribute(Un.parent):void 0;default:var pr=e.SignatureHelp.getArgumentInfoForCompletions(he,ln,sn);return pr?An.getContextualTypeForArgumentAtIndex(pr.invocation,pr.argumentIndex+(he.kind===27?1:0)):e.isEqualityOperatorKind(he.kind)&&e.isBinaryExpression(Un)&&e.isEqualityOperatorKind(Un.operatorToken.kind)?An.getTypeAtLocation(Un.left):An.getContextualType(he)}}function ke(he,ln,sn){var An=sn.getAccessibleSymbolChain(he,ln,67108863,!1);return An?e.first(An):he.parent&&(de(he.parent)?he:ke(he.parent,ln,sn))}function de(he){var ln;return!!((ln=he.declarations)===null||ln===void 0?void 0:ln.some(function(sn){return sn.kind===300}))}function xe(he,ln,sn,An,Un,pr,Cr,xr,Gr){var Ve=he.getTypeChecker(),Ln=e.timestamp(),Wn=e.getTokenAtPosition(sn,Un);ln("getCompletionData: Get current token: "+(e.timestamp()-Ln)),Ln=e.timestamp();var Je=e.isInComment(sn,Un,Wn);ln("getCompletionData: Is inside comment: "+(e.timestamp()-Ln));var kn=!1,Qn=!1;if(Je){if(e.hasDocComment(sn,Un)){if(sn.text.charCodeAt(Un-1)===64)return{kind:1};var jn=e.getLineStartPositionForPosition(Un,sn);if(!/[^\*|\s(/)]/.test(sn.text.substring(jn,Un)))return{kind:2}}var on=ze(Wn,Un);if(on){if(on.tagName.pos<=Un&&Un<=on.tagName.end)return{kind:1};if(wt(on)&&on.typeExpression&&on.typeExpression.kind===304&&(Wn=e.getTokenAtPosition(sn,Un),(!Wn||!e.isDeclarationName(Wn)&&(Wn.parent.kind!==342||Wn.parent.name!==Wn))&&(kn=Pr(on.typeExpression))),!kn&&e.isJSDocParameterTag(on)&&(e.nodeIsMissing(on.name)||on.name.pos<=Un&&Un<=on.name.end))return{kind:3,tag:on}}if(!kn){ln("Returning an empty list because completion was inside a regular comment or plain text part of a JsDoc comment.");return}}Ln=e.timestamp();var fe=Le(Un,sn),Ge=fe.previousToken,tn=fe.contextToken;ln("getCompletionData: Get previous token: "+(e.timestamp()-Ln));var le=Wn,Vn,or=!1,bn=!1,In=!1,pn=!1,Rn=!1,hn=!1,rr,lr=e.getTouchingPropertyName(sn,Un);if(tn){var dr=Be(tn);if(dr===154)return{kind:4,keywords:[154]};if(dr&&pr.includeCompletionsForImportStatements&&pr.includeCompletionsWithInsertText&&(rr=dr),!rr&&Ci(tn)){ln("Returning an empty list because completion was requested in an invalid position.");return}var gr=tn.parent;if(tn.kind===24||tn.kind===28)switch(or=tn.kind===24,bn=tn.kind===28,gr.kind){case 204:Vn=gr,le=Vn.expression;var zr=e.getLeftmostAccessExpression(Vn);if(e.nodeIsMissing(zr)||(e.isCallExpression(le)||e.isFunctionLike(le))&&le.end===tn.pos&&le.getChildCount(sn)&&e.last(le.getChildren(sn)).kind!==21)return;break;case 159:le=gr.left;break;case 259:le=gr.name;break;case 198:le=gr;break;case 229:le=gr.getFirstToken(sn),e.Debug.assert(le.kind===100||le.kind===103);break;default:return}else if(!rr&&sn.languageVariant===1){if(gr&&gr.kind===204&&(tn=gr,gr=gr.parent),Wn.parent===lr)switch(Wn.kind){case 31:(Wn.parent.kind===276||Wn.parent.kind===278)&&(lr=Wn);break;case 43:Wn.parent.kind===277&&(lr=Wn);break}switch(gr.kind){case 279:tn.kind===43&&(pn=!0,lr=tn);break;case 219:if(!dn(gr))break;case 277:case 276:case 278:hn=!0,tn.kind===29&&(In=!0,lr=tn);break;case 286:case 285:Ge.kind===19&&Wn.kind===31&&(hn=!0);break;case 283:if(gr.initializer===Ge&&Ge.end0&&(fr=e.concatenate(fr,fn(Q,e.Debug.checkDefined(Ae)))),Hr(),1}function Qo(){var te=tn&&(tn.kind===18||tn.kind===27)?e.tryCast(tn.parent,e.isNamedImportsOrExports):void 0;if(!te)return 0;var Q=(te.kind===267?te.parent.parent:te.parent).moduleSpecifier;if(!Q)return te.kind===267?2:0;var Ae=Ve.getSymbolAtLocation(Q);if(!Ae)return 2;ht=3,Or=!1;var Fe=Ve.getExportsAndPropertiesOfModule(Ae),Ze=new e.Set(te.elements.filter(function(Gn){return!Pr(Gn)}).map(function(Gn){return(Gn.propertyName||Gn.name).escapedText}));return fr=e.concatenate(fr,Fe.filter(function(Gn){return Gn.escapedName!=="default"&&!Ze.has(Gn.escapedName)})),1}function Pa(){var te,Q=tn&&(tn.kind===18||tn.kind===27)?e.tryCast(tn.parent,e.isNamedExports):void 0;if(!Q)return 0;var Ae=e.findAncestor(Q,e.or(e.isSourceFile,e.isModuleDeclaration));return ht=5,Or=!1,(te=Ae.locals)===null||te===void 0||te.forEach(function(Fe,Ze){var Gn,Yn;fr.push(Fe),((Yn=(Gn=Ae.symbol)===null||Gn===void 0?void 0:Gn.exports)===null||Yn===void 0?void 0:Yn.has(Ze))&&(fa[e.getSymbolId(Fe)]=12)}),1}function co(){var te=vn(sn,tn,lr,Un);if(!te)return 0;if(ht=3,Or=!0,Xt=tn.kind===41?0:e.isClassLike(te)?2:3,!e.isClassLike(te))return 1;var Q=tn.kind===26?tn.parent.parent:tn.parent,Ae=e.isClassElement(Q)?e.getEffectiveModifierFlags(Q):0;if(tn.kind===79&&!Pr(tn))switch(tn.getText()){case"private":Ae=Ae|8;break;case"static":Ae=Ae|32;break;case"override":Ae=Ae|16384;break}if(e.isClassStaticBlockDeclaration(Q)&&(Ae|=32),!(Ae&8)){var Fe=e.isClassLike(te)&&Ae&16384?e.singleElementArray(e.getEffectiveBaseTypeNode(te)):e.getAllSuperTypeNodes(te),Ze=e.flatMap(Fe,function(Gn){var Yn=Ve.getTypeAtLocation(Gn);return Ae&32?(Yn==null?void 0:Yn.symbol)&&Ve.getPropertiesOfType(Ve.getTypeOfSymbolAtLocation(Yn.symbol,te)):Yn&&Ve.getPropertiesOfType(Yn)});fr=e.concatenate(fr,Oe(Ze,te.members,Ae))}return 1}function za(te){if(te){var Q=te.parent;switch(te.kind){case 18:case 27:if(e.isObjectLiteralExpression(Q)||e.isObjectBindingPattern(Q))return Q;break;case 41:return e.isMethodDeclaration(Q)?e.tryCast(Q.parent,e.isObjectLiteralExpression):void 0;case 79:return te.text==="async"&&e.isShorthandPropertyAssignment(te.parent)?te.parent.parent:void 0}}}function fi(te){return!!te.parent&&e.isParameter(te.parent)&&e.isConstructorDeclaration(te.parent.parent)&&(e.isParameterPropertyModifier(te.kind)||e.isDeclarationName(te))}function Wi(te){if(te){var Q=te.parent;switch(te.kind){case 20:case 27:return e.isConstructorDeclaration(te.parent)?te.parent:void 0;default:if(fi(te))return Q.parent}}}function _o(te){if(te){var Q,Ae=e.findAncestor(te.parent,function(Fe){return e.isClassLike(Fe)?"quit":e.isFunctionLikeDeclaration(Fe)&&Q===Fe.body?!0:(Q=Fe,!1)});return Ae&&Ae}}function No(te){if(te){var Q=te.parent;switch(te.kind){case 31:case 30:case 43:case 79:case 204:case 284:case 283:case 285:if(Q&&(Q.kind===277||Q.kind===278)){if(te.kind===31){var Ae=e.findPrecedingToken(te.pos,sn,void 0);if(!Q.typeArguments||Ae&&Ae.kind===43)break}return Q}else if(Q.kind===283)return Q.parent.parent;break;case 10:if(Q&&(Q.kind===283||Q.kind===285))return Q.parent.parent;break;case 19:if(Q&&Q.kind===286&&Q.parent&&Q.parent.kind===283)return Q.parent.parent.parent;if(Q&&Q.kind===285)return Q.parent.parent;break}}}function Mo(te){var Q=te.parent,Ae=Q.kind;switch(te.kind){case 27:return Ae===252||Zo(te)||Ae===235||Ae===258||qo(Ae)||Ae===256||Ae===200||Ae===257||e.isClassLike(Q)&&!!Q.typeParameters&&Q.typeParameters.end>=te.pos;case 24:return Ae===200;case 58:return Ae===201;case 22:return Ae===200;case 20:return Ae===290||qo(Ae);case 18:return Ae===258;case 29:return Ae===255||Ae===224||Ae===256||Ae===257||e.isFunctionLikeKind(Ae);case 124:return Ae===165&&!e.isClassLike(Q.parent);case 25:return Ae===162||!!Q.parent&&Q.parent.kind===200;case 123:case 121:case 122:return Ae===162&&!e.isConstructorDeclaration(Q.parent);case 127:return Ae===268||Ae===273||Ae===266;case 135:case 147:return!$e(te);case 84:case 92:case 118:case 98:case 113:case 100:case 119:case 85:case 136:case 150:return!0;case 41:return e.isFunctionLike(te.parent)&&!e.isMethodDeclaration(te.parent)}if(Sn(we(te))&&$e(te)||fi(te)&&(!e.isIdentifier(te)||e.isParameterPropertyModifier(we(te))||Pr(te)))return!1;switch(we(te)){case 126:case 84:case 85:case 134:case 92:case 98:case 118:case 119:case 121:case 122:case 123:case 124:case 113:return!0;case 130:return e.isPropertyDeclaration(te.parent)}var Fe=e.findAncestor(te.parent,e.isClassLike);if(Fe&&te===Ge&&yo(te,Un))return!1;var Ze=e.getAncestor(te.parent,165);if(Ze&&te!==Ge&&e.isClassLike(Ge.parent.parent)&&Un<=Ge.end){if(yo(te,Ge.end))return!1;if(te.kind!==63&&(e.isInitializedProperty(Ze)||e.hasType(Ze)))return!0}return e.isDeclarationName(te)&&!e.isShorthandPropertyAssignment(te.parent)&&!e.isJsxAttribute(te.parent)&&!(e.isClassLike(te.parent)&&(te!==Ge||Un>Ge.end))}function yo(te,Q){return te.kind!==63&&(te.kind===26||!e.positionsAreOnSameLine(te.end,Q,sn))}function qo(te){return e.isFunctionLikeKind(te)&&te!==169}function So(te){if(te.kind===8){var Q=te.getFullText();return Q.charAt(Q.length-1)==="."}return!1}function Zo(te){return te.parent.kind===253&&!e.isPossiblyTypeArgumentPosition(te,sn,Ve)}function fn(te,Q){if(Q.length===0)return te;for(var Ae=new e.Set,Fe=new e.Set,Ze=0,Gn=Q;Ze=0&&!D(b,A[E],115);E--);return e.forEach(v(ee.statement),function(x){X(ee,x)&&D(b,x.getFirstToken(),81,86)}),b}function B(ee){var b=se(ee);if(b)switch(b.kind){case 240:case 241:case 242:case 238:case 239:return U(b);case 247:return R(b)}}function R(ee){var b=[];return D(b,ee.getFirstToken(),107),e.forEach(ee.caseBlock.clauses,function(A){D(b,A.getFirstToken(),82,88),e.forEach(v(A),function(E){X(ee,E)&&D(b,E.getFirstToken(),81)})}),b}function O(ee,b){var A=[];if(D(A,ee.getFirstToken(),111),ee.catchClause&&D(A,ee.catchClause.getFirstToken(),83),ee.finallyBlock){var E=e.findChildOfKind(ee,96,b);D(A,E,96)}return A}function k(ee,b){var A=h(ee);if(!!A){var E=[];return e.forEach(J(A),function(x){E.push(e.findChildOfKind(x,109,b))}),e.isFunctionBlock(A)&&e.forEachReturnStatement(A,function(x){E.push(e.findChildOfKind(x,105,b))}),E}}function M(ee,b){var A=e.getContainingFunction(ee);if(!!A){var E=[];return e.forEachReturnStatement(e.cast(A.body,e.isBlock),function(x){E.push(e.findChildOfKind(x,105,b))}),e.forEach(J(A.body),function(x){E.push(e.findChildOfKind(x,109,b))}),E}}function z(ee){var b=e.getContainingFunction(ee);if(!!b){var A=[];return b.modifiers&&b.modifiers.forEach(function(E){D(A,E,130)}),e.forEachChild(b,function(E){ne(E,function(x){e.isAwaitExpression(x)&&D(A,x.getFirstToken(),131)})}),A}}function Y(ee){var b=e.getContainingFunction(ee);if(!!b){var A=[];return e.forEachChild(b,function(E){ne(E,function(x){e.isYieldExpression(x)&&D(A,x.getFirstToken(),125)})}),A}}function ne(ee,b){b(ee),!e.isFunctionLike(ee)&&!e.isClassLike(ee)&&!e.isInterfaceDeclaration(ee)&&!e.isModuleDeclaration(ee)&&!e.isTypeAliasDeclaration(ee)&&!e.isTypeNode(ee)&&e.forEachChild(ee,function(A){return ne(A,b)})}function j(ee,b){for(var A=H(ee,b),E=[],x=0;x=C.end;f--)if(!e.isWhiteSpaceSingleLine(b.text.charCodeAt(f))){c=!1;break}if(c){E.push({fileName:b.fileName,textSpan:e.createTextSpanFromBounds(C.getStart(),m.end),kind:"reference"}),x++;continue}}E.push(g(A[x],b))}return E}function H(ee,b){for(var A=[];e.isIfStatement(ee.parent)&&ee.parent.elseStatement===ee;)ee=ee.parent;for(;;){var E=ee.getChildren(b);D(A,E[0],99);for(var x=E.length-1;x>=0&&!D(A,E[x],91);x--);if(!ee.elseStatement||!e.isIfStatement(ee.elseStatement))break;ee=ee.elseStatement}return A}function K(ee,b){return!!e.findAncestor(ee.parent,function(A){return e.isLabeledStatement(A)?A.label.escapedText===b:"quit"})}})(e.DocumentHighlights||(e.DocumentHighlights={}))})(un||(un={}));var un;(function(e){function a(p){return!!p.sourceFile}function d(p,P){return g(p,P)}e.createDocumentRegistry=d;function g(p,P,J){P===void 0&&(P="");var h=new e.Map,v=e.createGetCanonicalFileName(!!p);function I(){var k=e.arrayFrom(h.keys()).filter(function(M){return M&&M.charAt(0)==="_"}).map(function(M){var z=h.get(M),Y=[];return z.forEach(function(ne,j){a(ne)?Y.push({name:j,scriptKind:ne.sourceFile.scriptKind,refCount:ne.languageServiceRefCount}):ne.forEach(function(H,K){return Y.push({name:j,scriptKind:K,refCount:H.languageServiceRefCount})})}),Y.sort(function(ne,j){return j.refCount-ne.refCount}),{bucket:M,sourceFiles:Y}});return JSON.stringify(k,void 0,2)}function X(k,M,z,Y,ne){var j=e.toPath(k,P,v),H=t(M);return se(k,j,M,H,z,Y,ne)}function se(k,M,z,Y,ne,j,H){return U(k,M,z,Y,ne,j,!0,H)}function y(k,M,z,Y,ne){var j=e.toPath(k,P,v),H=t(M);return w(k,j,M,H,z,Y,ne)}function w(k,M,z,Y,ne,j,H){return U(k,M,z,Y,ne,j,!1,H)}function D(k,M){var z=a(k)?k:k.get(e.Debug.checkDefined(M,"If there are more than one scriptKind's for same document the scriptKind should be provided"));return e.Debug.assert(M===void 0||!z||z.sourceFile.scriptKind===M,"Script kind should match provided ScriptKind:"+M+" and sourceFile.scriptKind: "+(z==null?void 0:z.sourceFile.scriptKind)+", !entry: "+!z),z}function U(k,M,z,Y,ne,j,H,K){K=e.ensureScriptKind(k,K);var ee=K===6?100:z.target||1,b=e.getOrUpdate(h,Y,function(){return new e.Map}),A=b.get(M),E=A&&D(A,K);if(!E&&J){var x=J.getDocument(Y,M);x&&(e.Debug.assert(H),E={sourceFile:x,languageServiceRefCount:0},C())}if(E)E.sourceFile.version!==j&&(E.sourceFile=e.updateLanguageServiceSourceFile(E.sourceFile,ne,j,ne.getChangeRange(E.sourceFile.scriptSnapshot)),J&&J.setDocument(Y,M,E.sourceFile)),H&&E.languageServiceRefCount++;else{var x=e.createLanguageServiceSourceFile(k,ne,ee,j,!1,K);J&&J.setDocument(Y,M,x),E={sourceFile:x,languageServiceRefCount:1},C()}return e.Debug.assert(E.languageServiceRefCount!==0),E.sourceFile;function C(){if(!A)b.set(M,E);else if(a(A)){var m=new e.Map;m.set(A.sourceFile.scriptKind,A),m.set(K,E),b.set(M,m)}else A.set(K,E)}}function B(k,M,z){var Y=e.toPath(k,P,v),ne=t(M);return R(Y,ne,z)}function R(k,M,z){var Y=e.Debug.checkDefined(h.get(M)),ne=Y.get(k),j=D(ne,z);j.languageServiceRefCount--,e.Debug.assert(j.languageServiceRefCount>=0),j.languageServiceRefCount===0&&(a(ne)?Y.delete(k):(ne.delete(z),ne.size===1&&Y.set(k,e.firstDefinedIterator(ne.values(),e.identity))))}function O(k,M){return e.arrayFrom(h.entries(),function(z){var Y=z[0],ne=z[1],j=ne.get(k),H=j&&D(j,M);return[Y,H&&H.languageServiceRefCount]})}return{acquireDocument:X,acquireDocumentWithKey:se,updateDocument:y,updateDocumentWithKey:w,releaseDocument:B,releaseDocumentWithKey:R,getLanguageServiceRefCounts:O,reportStats:I,getKeyForCompilationSettings:t}}e.createDocumentRegistryInternal=g;function t(p){return e.sourceFileAffectingCompilerOptions.map(function(P){return e.getCompilerOptionValue(p,P)}).join("|")}})(un||(un={}));var un;(function(e){(function(a){function d(k,M,z,Y){var ne=J(k,z,Y);return function(j,H,K){var ee=g(k,M,ne,H,z,Y),b=ee.directImports,A=ee.indirectUsers;return Dt({indirectUsers:A},t(b,j,H.exportKind,z,K))}}a.createImportTracker=d,function(k){k[k.Named=0]="Named",k[k.Default=1]="Default",k[k.ExportEquals=2]="ExportEquals"}(a.ExportKind||(a.ExportKind={})),function(k){k[k.Import=0]="Import",k[k.Export=1]="Export"}(a.ImportExport||(a.ImportExport={}));function g(k,M,z,Y,ne,j){var H=Y.exportingModuleSymbol,K=Y.exportKind,ee=e.nodeSeenTracker(),b=e.nodeSeenTracker(),A=[],E=!!H.globalExports,x=E?void 0:[];return m(H),{directImports:A,indirectUsers:C()};function C(){if(E)return k;if(H.declarations)for(var S=0,ce=H.declarations;S=0&&!(bn>Ge.end);){var In=bn+or;(bn===0||!e.isIdentifierPart(le.charCodeAt(bn-1),99))&&(In===Vn||!e.isIdentifierPart(le.charCodeAt(In),99))&&tn.push(bn),bn=le.indexOf(fe,bn+or+1)}return tn}function je(on,fe){var Ge=on.getSourceFile(),tn=fe.text,le=e.mapDefined(ye(Ge,tn,on),function(Vn){return Vn===fe||e.isJumpStatementTarget(Vn)&&e.getTargetLabel(Vn,tn)===fe?d(Vn):void 0});return[{definition:{type:1,node:fe},references:le}]}function Sn(on,fe){switch(on.kind){case 80:if(e.isJSDocMemberName(on.parent))return!0;case 79:return on.text.length===fe.length;case 14:case 10:{var Ge=on;return(e.isLiteralNameOfPropertyDeclarationOrIndexAccess(Ge)||e.isNameOfModuleDeclaration(on)||e.isExpressionOfExternalModuleImportEqualsDeclaration(on)||e.isCallExpression(on.parent)&&e.isBindableObjectDefinePropertyCall(on.parent)&&on.parent.arguments[1]===on)&&Ge.text.length===fe.length}case 8:return e.isLiteralNameOfPropertyDeclarationOrIndexAccess(on)&&on.text.length===fe.length;case 88:return"default".length===fe.length;default:return!1}}function Me(on,fe,Ge,tn){var le=e.flatMap(on,function(Vn){return Ge.throwIfCancellationRequested(),e.mapDefined(ye(Vn,e.tokenToString(fe),Vn),function(or){if(or.kind===fe&&(!tn||tn(or)))return d(or)})});return le.length?[{definition:{type:2,node:le[0].node},references:le}]:void 0}function we(on,fe,Ge,tn){return tn===void 0&&(tn=!0),Ge.cancellationToken.throwIfCancellationRequested(),ze(on,on,fe,Ge,tn)}function ze(on,fe,Ge,tn,le){if(!!tn.markSearchedSymbols(fe,Ge.allSearchSymbols))for(var Vn=0,or=Ie(fe,Ge.text,on);Vn0;we--){var Sn=je[we];ne(ye,Sn)}return[je.length-1,je[0]]}function ne(ye,Ie){var je=k(ye,Ie);B(h,je),J.push(h),v.push(I),I=void 0,h=je}function j(){h.children&&(A(h.children,h),Z(h.children)),h=J.pop(),I=v.pop()}function H(ye,Ie,je){ne(ye,je),b(Ie),j()}function K(ye){ye.initializer&&Ee(ye.initializer)?(ne(ye),e.forEachChild(ye.initializer,b),j()):H(ye,ye.initializer)}function ee(ye){return!e.hasDynamicName(ye)||ye.kind!==219&&e.isPropertyAccessExpression(ye.name.expression)&&e.isIdentifier(ye.name.expression.expression)&&e.idText(ye.name.expression.expression)==="Symbol"}function b(ye){var Ie;if(p.throwIfCancellationRequested(),!(!ye||e.isToken(ye)))switch(ye.kind){case 169:var je=ye;H(je,je.body);for(var Sn=0,Me=je.parameters;Sn0&&(ne(cn,Pe),e.forEachChild(cn.right,b),j()):e.isFunctionExpression(cn.right)||e.isArrowFunction(cn.right)?H(ye,cn.right,Pe):(ne(cn,Pe),H(ye,cn.right,be.name),j()),z(En);return}case 7:case 9:{var he=ye,Pe=qe===7?he.arguments[0]:he.arguments[0].expression,ln=he.arguments[1],sn=Y(ye,Pe),En=sn[0],An=sn[1];ne(ye,An),ne(ye,e.setTextRange(e.factory.createIdentifier(ln.text),ln)),b(ye.arguments[2]),j(),j(),z(En);return}case 5:{var cn=ye,be=cn.left,Un=be.expression;if(e.isIdentifier(Un)&&e.getElementOrPropertyAccessName(be)!=="prototype"&&I&&I.has(Un.text)){e.isFunctionExpression(cn.right)||e.isArrowFunction(cn.right)?H(ye,cn.right,Un):e.isBindableStaticAccessExpression(be)&&(ne(cn,Un),H(cn.left,cn.right,e.getNameOrArgument(be)),j());return}break}case 4:case 0:case 8:break;default:e.Debug.assertNever(qe)}}default:e.hasJSDocNodes(ye)&&e.forEach(ye.jsDoc,function(pr){e.forEach(pr.tags,function(Cr){e.isJSDocTypeAlias(Cr)&&O(Cr)})}),e.forEachChild(ye,b)}}function A(ye,Ie){var je=new e.Map;e.filterMutate(ye,function(Sn,Me){var we=Sn.name||e.getNameOfDeclaration(Sn.node),ze=we&&D(we);if(!ze)return!0;var Cn=je.get(ze);if(!Cn)return je.set(ze,Sn),!0;if(Cn instanceof Array){for(var an=0,vn=Cn;an0)return We(je)}switch(ye.kind){case 300:var Sn=ye;return e.isExternalModule(Sn)?'"'+e.escapeString(e.getBaseFileName(e.removeFileExtension(e.normalizePath(Sn.fileName))))+'"':"";case 269:return e.isExportAssignment(ye)&&ye.isExportEquals?"export=":"default";case 212:case 254:case 211:case 255:case 224:return e.getSyntacticModifierFlags(ye)&512?"default":Ne(ye);case 169:return"constructor";case 173:return"new()";case 172:return"()";case 174:return"[]";default:return""}}function ae(ye){var Ie=[];function je(Me){if(Sn(Me)&&(Ie.push(Me),Me.children))for(var we=0,ze=Me.children;we0)return We(e.declarationNameToString(ye.name));if(e.isVariableDeclaration(Ie))return We(e.declarationNameToString(Ie.name));if(e.isBinaryExpression(Ie)&&Ie.operatorToken.kind===63)return D(Ie.left).replace(g,"");if(e.isPropertyAssignment(Ie))return D(Ie.name);if(e.getSyntacticModifierFlags(ye)&512)return"default";if(e.isClassLike(ye))return"";if(e.isCallExpression(Ie)){var je=De(Ie.expression);if(je!==void 0){if(je=We(je),je.length>t)return je+" callback";var Sn=We(e.mapDefined(Ie.arguments,function(Me){return e.isStringLiteralLike(Me)?Me.getText(P):void 0}).join(", "));return je+"("+Sn+") callback"}}return""}function De(ye){if(e.isIdentifier(ye))return ye.text;if(e.isPropertyAccessExpression(ye)){var Ie=De(ye.expression),je=ye.name.text;return Ie===void 0?je:Ie+"."+je}else return}function Ee(ye){switch(ye.kind){case 212:case 211:case 224:return!0;default:return!1}}function We(ye){return ye=ye.length>t?ye.substring(0,t)+"...":ye,ye.replace(/\\?(\r?\n|\r|\u2028|\u2029)/g,"")}})(e.NavigationBar||(e.NavigationBar={}))})(un||(un={}));var un;(function(e){(function(a){function d(z,Y,ne,j,H,K){var ee=e.textChanges.ChangeTracker.fromContext({host:ne,formatContext:Y,preferences:H}),b=function(V){return e.stableSort(P(g(V,z,j,K)),function(Z,S){return O(Z,S)})},A=z.statements.filter(e.isImportDeclaration);N(A,b);var E=z.statements.filter(e.isExportDeclaration);N(E,h);for(var x=0,C=z.statements.filter(e.isAmbientModule);x0?C[0]:c[0],ue=re.length===0?ce?void 0:e.factory.createNamedImports(e.emptyArray):c.length===0?e.factory.createNamedImports(re):e.factory.updateNamedImports(c[0].importClause.namedBindings,re);x&&ce&&ue?(ee.push(v(q,ce,void 0)),ee.push(v((Y=c[0])!==null&&Y!==void 0?Y:q,void 0,ue))):ee.push(v(q,ce,ue))}}return ee}a.coalesceImports=P;function J(z){for(var Y,ne={defaultImports:[],namespaceImports:[],namedImports:[]},j={defaultImports:[],namespaceImports:[],namedImports:[]},H=0,K=z;H1&&R.push(v(k,M,"comment"))}}function h(D,U,B,R){e.isJsxText(D)||J(D.pos,U,B,R)}function v(D,U,B){return y(e.createTextSpanFromBounds(D,U),B)}function I(D,U){switch(D.kind){case 233:if(e.isFunctionLike(D.parent))return X(D.parent,D,U);switch(D.parent.kind){case 238:case 241:case 242:case 240:case 237:case 239:case 246:case 290:return H(D.parent);case 250:var B=D.parent;if(B.tryBlock===D)return H(D.parent);if(B.finallyBlock===D){var R=e.findChildOfKind(B,96,U);if(R)return H(R)}default:return y(e.createTextSpanFromNode(D,U),"code")}case 260:return H(D.parent);case 255:case 224:case 256:case 258:case 261:case 180:case 199:return H(D);case 182:return H(D,!1,!e.isTupleTypeNode(D.parent),22);case 287:case 288:return K(D.statements);case 203:return j(D);case 202:return j(D,22);case 276:return M(D);case 280:return z(D);case 277:case 278:return Y(D.attributes);case 221:case 14:return ne(D);case 200:return H(D,!1,!e.isBindingElement(D.parent),22);case 212:return k(D);case 206:return O(D)}function O(ee){if(!!ee.arguments.length){var b=e.findChildOfKind(ee,20,U),A=e.findChildOfKind(ee,21,U);if(!(!b||!A||e.positionsAreOnSameLine(b.pos,A.pos,U)))return se(b,A,ee,U,!1,!0)}}function k(ee){if(!(e.isBlock(ee.body)||e.positionsAreOnSameLine(ee.body.getFullStart(),ee.body.getEnd(),U))){var b=e.createTextSpanFromBounds(ee.body.getFullStart(),ee.body.getEnd());return y(b,"code",e.createTextSpanFromNode(ee))}}function M(ee){var b=e.createTextSpanFromBounds(ee.openingElement.getStart(U),ee.closingElement.getEnd()),A=ee.openingElement.tagName.getText(U),E="<"+A+">...";return y(b,"code",b,!1,E)}function z(ee){var b=e.createTextSpanFromBounds(ee.openingFragment.getStart(U),ee.closingFragment.getEnd()),A="<>...";return y(b,"code",b,!1,A)}function Y(ee){if(ee.properties.length!==0)return v(ee.getStart(U),ee.getEnd(),"code")}function ne(ee){if(!(ee.kind===14&&ee.text.length===0))return v(ee.getStart(U),ee.getEnd(),"code")}function j(ee,b){return b===void 0&&(b=18),H(ee,!1,!e.isArrayLiteralExpression(ee.parent)&&!e.isCallExpression(ee.parent),b)}function H(ee,b,A,E,x){b===void 0&&(b=!1),A===void 0&&(A=!0),E===void 0&&(E=18),x===void 0&&(x=E===18?19:23);var C=e.findChildOfKind(D,E,U),m=e.findChildOfKind(D,x,U);return C&&m&&se(C,m,ee,U,b,A)}function K(ee){return ee.length?y(e.createTextSpanFromRange(ee),"code"):void 0}}function X(D,U,B){var R=w(D,U,B),O=e.findChildOfKind(U,19,B);return R&&O&&se(R,O,D,B,D.kind!==212)}function se(D,U,B,R,O,k){O===void 0&&(O=!1),k===void 0&&(k=!0);var M=e.createTextSpanFromBounds(k?D.getFullStart():D.getStart(R),U.getEnd());return y(M,"code",e.createTextSpanFromNode(B,R),O)}function y(D,U,B,R,O){return B===void 0&&(B=D),R===void 0&&(R=!1),O===void 0&&(O="..."),{textSpan:D,kind:U,hintSpan:B,bannerText:O,autoCollapse:R}}function w(D,U,B){if(e.isNodeArrayMultiLine(D.parameters,B)){var R=e.findChildOfKind(D,20,B);if(R)return R}return e.findChildOfKind(U,18,B)}})(e.OutliningElementsCollector||(e.OutliningElementsCollector={}))})(un||(un={}));var un;(function(e){var a;(function(E){E[E.exact=0]="exact",E[E.prefix=1]="prefix",E[E.substring=2]="substring",E[E.camelCase=3]="camelCase"})(a=e.PatternMatchKind||(e.PatternMatchKind={}));function d(E,x){return{kind:E,isCaseSensitive:x}}function g(E){var x=new e.Map,C=E.trim().split(".").map(function(m){return y(m.trim())});if(!C.some(function(m){return!m.subWordTextChunks.length}))return{getFullMatch:function(m,c){return t(m,c,C,x)},getMatchForLastSegmentOfPattern:function(m){return J(m,e.last(C),x)},patternContainsDots:C.length>1}}e.createPatternMatcher=g;function t(E,x,C,m){var c=J(x,e.last(C),m);if(!!c&&!(C.length-1>E.length)){for(var f,N=C.length-2,V=E.length-1;N>=0;N-=1,V-=1)f=h(f,J(E[V],C[N],m));return f}}function p(E,x){var C=x.get(E);return C||x.set(E,C=Y(E)),C}function P(E,x,C){var m=U(E,x.textLowerCase);if(m===0)return d(x.text.length===E.length?a.exact:a.prefix,e.startsWith(E,x.text));if(x.isLowerCase){if(m===-1)return;for(var c=p(E,C),f=0,N=c;f0)return d(a.substring,!0);if(x.characterSpans.length>0){var Z=p(E,C),S=se(E,Z,x,!1)?!0:se(E,Z,x,!0)?!1:void 0;if(S!==void 0)return d(a.camelCase,S)}}}function J(E,x,C){if(A(x.totalTextChunk.text,function(S){return S!==32&&S!==42})){var m=P(E,x.totalTextChunk,C);if(m)return m}for(var c=x.subWordTextChunks,f,N=0,V=c;N=65&&E<=90)return!0;if(E<127||!e.isUnicodeIdentifierStart(E,99))return!1;var x=String.fromCharCode(E);return x===x.toUpperCase()}function D(E){if(E>=97&&E<=122)return!0;if(E<127||!e.isUnicodeIdentifierStart(E,99))return!1;var x=String.fromCharCode(E);return x===x.toLowerCase()}function U(E,x){for(var C=E.length-x.length,m=function(N){if(A(x,function(V,Z){return B(E.charCodeAt(Z+N))===V}))return{value:N}},c=0;c<=C;c++){var f=m(c);if(typeof f=="object")return f.value}return-1}function B(E){return E>=65&&E<=90?97+(E-65):E<127?E:String.fromCharCode(E).toLowerCase().charCodeAt(0)}function R(E){return E>=48&&E<=57}function O(E){return w(E)||D(E)||R(E)||E===95||E===36}function k(E){for(var x=[],C=0,m=0,c=0;c0&&(x.push(M(E.substr(C,m))),m=0)}return m>0&&x.push(M(E.substr(C,m))),x}function M(E){var x=E.toLowerCase();return{text:E,textLowerCase:x,isLowerCase:E===x,characterSpans:z(E)}}function z(E){return ne(E,!1)}e.breakIntoCharacterSpans=z;function Y(E){return ne(E,!0)}e.breakIntoWordSpans=Y;function ne(E,x){for(var C=[],m=0,c=1;cse)break e;var z=e.singleOrUndefined(e.getTrailingCommentRanges(y.text,k.end));if(z&&z.kind===2&&b(z.pos,z.end),g(y,se,k)){if(e.isBlock(k)||e.isTemplateSpan(k)||e.isTemplateHead(k)||e.isTemplateTail(k)||O&&e.isTemplateHead(O)||e.isVariableDeclarationList(k)&&e.isVariableStatement(U)||e.isSyntaxList(k)&&e.isVariableDeclarationList(U)||e.isVariableDeclaration(k)&&e.isSyntaxList(U)&&B.length===1||e.isJSDocTypeExpression(k)||e.isJSDocSignature(k)||e.isJSDocTypeLiteral(k)){U=k;break}if(e.isTemplateSpan(U)&&M&&e.isTemplateMiddleOrTemplateTail(M)){var Y=k.getFullStart()-"${".length,ne=M.getStart()+"}".length;ee(Y,ne)}var j=e.isSyntaxList(k)&&v(O)&&I(M)&&!e.positionsAreOnSameLine(O.getStart(),M.getStart(),y),H=j?O.getEnd():k.getStart(),K=j?M.getStart():X(y,k);e.hasJSDocNodes(k)&&((w=k.jsDoc)===null||w===void 0?void 0:w.length)&&ee(e.first(k.jsDoc).getStart(),K),ee(H,K),(e.isStringLiteral(k)||e.isTemplateLiteral(k))&&ee(H+1,K-1),U=k;break}if(R===B.length-1)break e}}return D;function ee(A,E){if(A!==E){var x=e.createTextSpanFromBounds(A,E);(!D||!e.textSpansEqual(x,D.textSpan)&&e.textSpanIntersectsWithPosition(x,se))&&(D=Dt({textSpan:x},D&&{parent:D}))}}function b(A,E){ee(A,E);for(var x=A;y.text.charCodeAt(x)===47;)x++;ee(x,E)}}a.getSmartSelectionRange=d;function g(se,y,w){if(e.Debug.assert(w.pos<=y),y0&&e.last(ce).kind===27&&ge++,ge}function M(S,ce,ge,ae){return e.Debug.assert(ge>=ce.getStart(),"Assumed 'position' could not occur before node."),e.isTemplateLiteralToken(ce)?e.isInsideTemplateLiteral(ce,ge,ae)?0:S+2:S+1}function z(S,ce,ge){var ae=e.isNoSubstitutionTemplateLiteral(S.template)?1:S.template.templateSpans.length+1;return ce!==0&&e.Debug.assertLessThan(ce,ae),{isTypeParameterList:!1,invocation:{kind:0,node:S},argumentsSpan:ne(S,ge),argumentIndex:ce,argumentCount:ae}}function Y(S,ce){var ge=S.getFullStart(),ae=e.skipTrivia(ce.text,S.getEnd(),!1);return e.createTextSpan(ge,ae-ge)}function ne(S,ce){var ge=S.template,ae=ge.getStart(),F=ge.getEnd();if(ge.kind===221){var re=e.last(ge.templateSpans);re.literal.getFullWidth()===0&&(F=e.skipTrivia(ce.text,F,!1))}return e.createTextSpan(ae,F-ae)}function j(S,ce,ge,ae,F){for(var re=function(ke){e.Debug.assert(e.rangeContainsRange(ke.parent,ke),"Not a subspan",function(){return"Child: "+e.Debug.formatSyntaxKind(ke.kind)+", parent: "+e.Debug.formatSyntaxKind(ke.parent.kind)});var de=y(ke,ce,ge,ae);if(de)return{value:de}},q=S;!e.isSourceFile(q)&&(F||!e.isBlock(q));q=q.parent){var ue=re(q);if(typeof ue=="object")return ue.value}}function H(S,ce,ge){var ae=S.getChildren(ge),F=ae.indexOf(ce);return e.Debug.assert(F>=0&&ae.length>F+1),ae[F+1]}function K(S){return S.kind===0?e.getInvokedExpression(S.node):S.called}function ee(S){return S.kind===0?S.node:S.kind===1?S.called:S.node}var b=8192|70221824|16384;function A(S,ce,ge,ae,F,re){var q,ue=ge.isTypeParameterList,ke=ge.argumentCount,de=ge.argumentsSpan,xe=ge.invocation,Le=ge.argumentIndex,He=ee(xe),Ne=xe.kind===2?xe.symbol:F.getSymbolAtLocation(K(xe))||re&&((q=ce.declaration)===null||q===void 0?void 0:q.symbol),De=Ne?e.symbolToDisplayParts(F,Ne,re?ae:void 0,void 0):e.emptyArray,Ee=e.map(S,function(Nn){return m(Nn,De,ue,F,He,ae)});Le!==0&&e.Debug.assertLessThan(Le,ke);for(var We=0,ye=0,Ie=0;Ie1))for(var Sn=0,Me=0,we=je;Me=ke){We=ye+Sn;break}Sn++}ye+=je.length}e.Debug.assert(We!==-1);var Cn={items:e.flatMapToMutable(Ee,e.identity),applicableSpan:de,selectedItemIndex:We,argumentIndex:Le,argumentCount:ke},an=Cn.items[We];if(an.isVariadic){var vn=e.findIndex(an.parameters,function(Nn){return!!Nn.isRest});-1N?f.substr(0,N-"...".length)+"...":f}function m(f){var N=70221824|1048576|16384,V={removeComments:!0},Z=e.createPrinter(V);return e.usingSingleLineStringWriter(function(S){var ce=D.typeToTypeNode(f,void 0,N,S);e.Debug.assertIsDefined(ce,"should always get typenode"),Z.writeNode(4,ce,h,S)})}function c(f){return f==="undefined"}}a.provideInlayHints=P})(e.InlayHints||(e.InlayHints={}))})(un||(un={}));var un;(function(e){var a=/^data:(?:application\/json(?:;charset=[uU][tT][fF]-8);base64,([A-Za-z0-9+\/=]+)$)?/;function d(P){var J=e.createGetCanonicalFileName(P.useCaseSensitiveFileNames()),h=P.getCurrentDirectory(),v=new e.Map,I=new e.Map;return{tryGetSourcePosition:y,tryGetGeneratedPosition:w,toLineColumnOffset:R,clearCache:O};function X(k){return e.toPath(k,h,J)}function se(k,M){var z=X(k),Y=I.get(z);if(Y)return Y;var ne;if(P.getDocumentPositionMapper)ne=P.getDocumentPositionMapper(k,M);else if(P.readFile){var j=B(k);ne=j&&e.getDocumentPositionMapper({getSourceFileLike:B,getCanonicalFileName:J,log:function(H){return P.log(H)}},k,e.getLineInfo(j.text,e.getLineStarts(j)),function(H){return!P.fileExists||P.fileExists(H)?P.readFile(H):void 0})}return I.set(z,ne||e.identitySourceMapConsumer),ne||e.identitySourceMapConsumer}function y(k){if(!!e.isDeclarationFileName(k.fileName)){var M=D(k.fileName);if(!!M){var z=se(k.fileName).getSourcePosition(k);return!z||z===k?void 0:y(z)||z}}}function w(k){if(!e.isDeclarationFileName(k.fileName)){var M=D(k.fileName);if(!!M){var z=P.getProgram();if(!z.isSourceOfProjectReferenceRedirect(M.fileName)){var Y=z.getCompilerOptions(),ne=e.outFile(Y),j=ne?e.removeFileExtension(ne)+".d.ts":e.getDeclarationEmitOutputFilePathWorker(k.fileName,z.getCompilerOptions(),h,z.getCommonSourceDirectory(),J);if(j!==void 0){var H=se(j,k.fileName).getGeneratedPosition(k);return H===k?void 0:H}}}}}function D(k){var M=P.getProgram();if(!!M){var z=X(k),Y=M.getSourceFileByPath(z);return Y&&Y.resolvedPath===z?Y:void 0}}function U(k){var M=X(k),z=v.get(M);if(z!==void 0)return z||void 0;if(!P.readFile||P.fileExists&&!P.fileExists(M)){v.set(M,!1);return}var Y=P.readFile(M),ne=Y?p(Y):!1;return v.set(M,ne),ne||void 0}function B(k){return P.getSourceFileLike?P.getSourceFileLike(k):D(k)||U(k)}function R(k,M){var z=B(k);return z.getLineAndCharacterOfPosition(M)}function O(){v.clear(),I.clear()}}e.getSourceMapper=d;function g(P,J,h,v){var I=e.tryGetSourceMappingURL(h);if(I){var X=a.exec(I);if(X){if(X[1]){var se=X[1];return t(P,e.base64decode(e.sys,se),J)}I=void 0}}var y=[];I&&y.push(I),y.push(J+".map");for(var w=I&&e.getNormalizedAbsolutePath(I,e.getDirectoryPath(J)),D=0,U=y;D2?!1:O.arguments.length<2?!0:e.some(O.arguments,function(k){return k.kind===104||e.isIdentifier(k)&&k.text==="undefined"})}function D(O,k){switch(O.kind){case 254:case 211:var M=e.getFunctionFlags(O);if(M&1)return!1;case 212:a.set(U(O),!0);case 104:return!0;case 79:case 204:{var z=k.getSymbolAtLocation(O);return z?k.isUndefinedSymbol(z)||e.some(e.skipAlias(z,k).declarations,function(Y){return e.isFunctionLike(Y)||e.hasInitializer(Y)&&!!Y.initializer&&e.isFunctionLike(Y.initializer)}):!1}default:return!1}}function U(O){return O.pos.toString()+":"+O.end.toString()}function B(O,k){var M,z,Y,ne;if(O.kind===211){if(e.isVariableDeclaration(O.parent)&&((M=O.symbol.members)===null||M===void 0?void 0:M.size))return!0;var j=k.getSymbolOfExpando(O,!1);return!!(j&&(((z=j.exports)===null||z===void 0?void 0:z.size)||((Y=j.members)===null||Y===void 0?void 0:Y.size)))}return O.kind===254?!!((ne=O.symbol.members)===null||ne===void 0?void 0:ne.size):!1}function R(O){switch(O.kind){case 254:case 167:case 211:case 212:return!0;default:return!1}}e.canBeConvertedToAsync=R})(un||(un={}));var un;(function(e){(function(a){var d=8192|70221824|16384;function g(v,I,X){var se=t(v,I,X);if(se!=="")return se;var y=e.getCombinedLocalAndExportSymbolFlags(I);return y&32?e.getDeclarationOfKind(I,224)?"local class":"class":y&384?"enum":y&524288?"type":y&64?"interface":y&262144?"type parameter":y&8?"enum member":y&2097152?"alias":y&1536?"module":se}a.getSymbolKind=g;function t(v,I,X){var se=v.getRootSymbols(I);if(se.length===1&&e.first(se).flags&8192&&v.getTypeOfSymbolAtLocation(I,X).getNonNullableType().getCallSignatures().length!==0)return"method";if(v.isUndefinedSymbol(I))return"var";if(v.isArgumentsSymbol(I))return"local var";if(X.kind===108&&e.isExpression(X))return"parameter";var y=e.getCombinedLocalAndExportSymbolFlags(I);if(y&3)return e.isFirstDeclarationOfSymbolParameter(I)?"parameter":I.valueDeclaration&&e.isVarConst(I.valueDeclaration)?"const":e.forEach(I.declarations,e.isLet)?"let":h(I)?"local var":"var";if(y&16)return h(I)?"local function":"function";if(y&32768)return"getter";if(y&65536)return"setter";if(y&8192)return"method";if(y&16384)return"constructor";if(y&4){if(y&33554432&&I.checkFlags&6){var w=e.forEach(v.getRootSymbols(I),function(U){var B=U.getFlags();if(B&(98308|3))return"property"});if(!w){var D=v.getTypeOfSymbolAtLocation(I,X);return D.getCallSignatures().length?"method":"property"}return w}switch(X.parent&&X.parent.kind){case 278:case 276:case 277:return X.kind===79?"property":"JSX attribute";case 283:return"JSX attribute";default:return"property"}}return""}function p(v){if(v.declarations&&v.declarations.length){var I=v.declarations,X=I[0],se=I.slice(1),y=e.length(se)&&e.isDeprecatedDeclaration(X)&&e.some(se,function(D){return!e.isDeprecatedDeclaration(D)})?8192:0,w=e.getNodeModifiers(X,y);if(w)return w.split(",")}return[]}function P(v,I){if(!I)return"";var X=new e.Set(p(I));if(I.flags&2097152){var se=v.getAliasedSymbol(I);se!==I&&e.forEach(p(se),function(y){X.add(y)})}return I.flags&16777216&&X.add("optional"),X.size>0?e.arrayFrom(X.values()).join(","):""}a.getSymbolModifiers=P;function J(v,I,X,se,y,w,D){var U;w===void 0&&(w=e.getMeaningFromLocation(y));var B=[],R=[],O=[],k=e.getCombinedLocalAndExportSymbolFlags(I),M=w&1?t(v,I,y):"",z=!1,Y=y.kind===108&&e.isInExpressionContext(y),ne,j,H,K,ee=!1;if(y.kind===108&&!Y)return{displayParts:[e.keywordPart(108)],documentation:[],symbolKind:"primitive type",tags:void 0};if(M!==""||k&32||k&2097152){(M==="getter"||M==="setter")&&(M="property");var b=void 0;if(ne=Y?v.getTypeAtLocation(y):v.getTypeOfSymbolAtLocation(I,y),y.parent&&y.parent.kind===204){var A=y.parent.name;(A===y||A&&A.getFullWidth()===0)&&(y=y.parent)}var E=void 0;if(e.isCallOrNewExpression(y)?E=y:(e.isCallExpressionTarget(y)||e.isNewExpressionTarget(y)||y.parent&&(e.isJsxOpeningLikeElement(y.parent)||e.isTaggedTemplateExpression(y.parent))&&e.isFunctionLike(I.valueDeclaration))&&(E=y.parent),E){b=v.getResolvedSignature(E);var x=E.kind===207||e.isCallExpression(E)&&E.expression.kind===106,C=x?ne.getConstructSignatures():ne.getCallSignatures();if(b&&!e.contains(C,b.target)&&!e.contains(C,b)&&(b=C.length?C[0]:void 0),b){switch(x&&k&32?(M="constructor",We(ne.symbol,M)):k&2097152?(M="alias",ye(M),B.push(e.spacePart()),x&&(b.flags&4&&(B.push(e.keywordPart(126)),B.push(e.spacePart())),B.push(e.keywordPart(103)),B.push(e.spacePart())),Ee(I)):We(I,M),M){case"JSX attribute":case"property":case"var":case"const":case"let":case"parameter":case"local var":B.push(e.punctuationPart(58)),B.push(e.spacePart()),!(e.getObjectFlags(ne)&16)&&ne.symbol&&(e.addRange(B,e.symbolToDisplayParts(v,ne.symbol,se,void 0,4|1)),B.push(e.lineBreakPart())),x&&(b.flags&4&&(B.push(e.keywordPart(126)),B.push(e.spacePart())),B.push(e.keywordPart(103)),B.push(e.spacePart())),Ie(b,C,262144);break;default:Ie(b,C)}z=!0,ee=C.length>1}}else if(e.isNameOfFunctionDeclaration(y)&&!(k&98304)||y.kind===133&&y.parent.kind===169){var m=y.parent,c=I.declarations&&e.find(I.declarations,function(Sn){return Sn===(y.kind===133?m.parent:m)});if(c){var C=m.kind===169?ne.getNonNullableType().getConstructSignatures():ne.getNonNullableType().getCallSignatures();v.isImplementationOfOverload(m)?b=C[0]:b=v.getSignatureFromDeclaration(m),m.kind===169?(M="constructor",We(ne.symbol,M)):We(m.kind===172&&!(ne.symbol.flags&2048||ne.symbol.flags&4096)?ne.symbol:I,M),b&&Ie(b,C),z=!0,ee=C.length>1}}}if(k&32&&!z&&!Y&&(Ne(),e.getDeclarationOfKind(I,224)?ye("local class"):B.push(e.keywordPart(84)),B.push(e.spacePart()),Ee(I),je(I,X)),k&64&&w&2&&(He(),B.push(e.keywordPart(118)),B.push(e.spacePart()),Ee(I),je(I,X)),k&524288&&w&2&&(He(),B.push(e.keywordPart(150)),B.push(e.spacePart()),Ee(I),je(I,X),B.push(e.spacePart()),B.push(e.operatorPart(63)),B.push(e.spacePart()),e.addRange(B,e.typeToDisplayParts(v,v.getDeclaredTypeOfSymbol(I),se,8388608))),k&384&&(He(),e.some(I.declarations,function(Sn){return e.isEnumDeclaration(Sn)&&e.isEnumConst(Sn)})&&(B.push(e.keywordPart(85)),B.push(e.spacePart())),B.push(e.keywordPart(92)),B.push(e.spacePart()),Ee(I)),k&1536&&!Y){He();var f=e.getDeclarationOfKind(I,259),N=f&&f.name&&f.name.kind===79;B.push(e.keywordPart(N?141:140)),B.push(e.spacePart()),Ee(I)}if(k&262144&&w&2)if(He(),B.push(e.punctuationPart(20)),B.push(e.textPart("type parameter")),B.push(e.punctuationPart(21)),B.push(e.spacePart()),Ee(I),I.parent)De(),Ee(I.parent,se),je(I.parent,se);else{var V=e.getDeclarationOfKind(I,161);if(V===void 0)return e.Debug.fail();var f=V.parent;if(f)if(e.isFunctionLikeKind(f.kind)){De();var b=v.getSignatureFromDeclaration(f);f.kind===173?(B.push(e.keywordPart(103)),B.push(e.spacePart())):f.kind!==172&&f.name&&Ee(f.symbol),e.addRange(B,e.signatureToDisplayParts(v,b,X,32))}else f.kind===257&&(De(),B.push(e.keywordPart(150)),B.push(e.spacePart()),Ee(f.symbol),je(f.symbol,X))}if(k&8){M="enum member",We(I,"enum member");var f=(U=I.declarations)===null||U===void 0?void 0:U[0];if((f==null?void 0:f.kind)===294){var Z=v.getConstantValue(f);Z!==void 0&&(B.push(e.spacePart()),B.push(e.operatorPart(63)),B.push(e.spacePart()),B.push(e.displayPart(e.getTextOfConstantValue(Z),typeof Z=="number"?e.SymbolDisplayPartKind.numericLiteral:e.SymbolDisplayPartKind.stringLiteral)))}}if(I.flags&2097152){if(He(),!z){var S=v.getAliasedSymbol(I);if(S!==I&&S.declarations&&S.declarations.length>0){var ce=S.declarations[0],ge=e.getNameOfDeclaration(ce);if(ge){var ae=e.isModuleWithStringLiteralName(ce)&&e.hasSyntacticModifier(ce,2),F=I.name!=="default"&&!ae,re=J(v,S,e.getSourceFileOfNode(ce),ce,ge,w,F?I:S);B.push.apply(B,re.displayParts),B.push(e.lineBreakPart()),H=re.documentation,K=re.tags}else H=S.getContextualDocumentationComment(ce,v),K=S.getJsDocTags(v)}}if(I.declarations)switch(I.declarations[0].kind){case 262:B.push(e.keywordPart(93)),B.push(e.spacePart()),B.push(e.keywordPart(141));break;case 269:B.push(e.keywordPart(93)),B.push(e.spacePart()),B.push(e.keywordPart(I.declarations[0].isExportEquals?63:88));break;case 273:B.push(e.keywordPart(93));break;default:B.push(e.keywordPart(100))}B.push(e.spacePart()),Ee(I),e.forEach(I.declarations,function(Sn){if(Sn.kind===263){var Me=Sn;if(e.isExternalModuleImportEqualsDeclaration(Me))B.push(e.spacePart()),B.push(e.operatorPart(63)),B.push(e.spacePart()),B.push(e.keywordPart(144)),B.push(e.punctuationPart(20)),B.push(e.displayPart(e.getTextOfNode(e.getExternalModuleImportEqualsDeclarationExpression(Me)),e.SymbolDisplayPartKind.stringLiteral)),B.push(e.punctuationPart(21));else{var we=v.getSymbolAtLocation(Me.moduleReference);we&&(B.push(e.spacePart()),B.push(e.operatorPart(63)),B.push(e.spacePart()),Ee(we,se))}return!0}})}if(!z)if(M!==""){if(ne){if(Y?(He(),B.push(e.keywordPart(108))):We(I,M),M==="property"||M==="JSX attribute"||k&3||M==="local var"||Y){if(B.push(e.punctuationPart(58)),B.push(e.spacePart()),ne.symbol&&ne.symbol.flags&262144){var q=e.mapToDisplayParts(function(Sn){var Me=v.typeParameterToDeclaration(ne,se,d);Le().writeNode(4,Me,e.getSourceFileOfNode(e.getParseTreeNode(se)),Sn)});e.addRange(B,q)}else e.addRange(B,e.typeToDisplayParts(v,ne,se));if(I.target&&I.target.tupleLabelDeclaration){var ue=I.target.tupleLabelDeclaration;e.Debug.assertNode(ue.name,e.isIdentifier),B.push(e.spacePart()),B.push(e.punctuationPart(20)),B.push(e.textPart(e.idText(ue.name))),B.push(e.punctuationPart(21))}}else if(k&16||k&8192||k&16384||k&131072||k&98304||M==="method"){var C=ne.getNonNullableType().getCallSignatures();C.length&&(Ie(C[0],C),ee=C.length>1)}}}else M=g(v,I,y);if(R.length===0&&!ee&&(R=I.getContextualDocumentationComment(se,v)),R.length===0&&k&4&&I.parent&&I.declarations&&e.forEach(I.parent.declarations,function(Sn){return Sn.kind===300}))for(var ke=0,de=I.declarations;ke0))break}}return O.length===0&&!ee&&(O=I.getJsDocTags(v)),R.length===0&&H&&(R=H),O.length===0&&K&&(O=K),{displayParts:B,documentation:R,symbolKind:M,tags:O.length===0?void 0:O};function Le(){return j||(j=e.createPrinter({removeComments:!0})),j}function He(){B.length&&B.push(e.lineBreakPart()),Ne()}function Ne(){D&&(ye("alias"),B.push(e.spacePart()))}function De(){B.push(e.spacePart()),B.push(e.keywordPart(101)),B.push(e.spacePart())}function Ee(Sn,Me){D&&Sn===I&&(Sn=D);var we=e.symbolToDisplayParts(v,Sn,Me||X,void 0,1|2|4);e.addRange(B,we),I.flags&16777216&&B.push(e.punctuationPart(57))}function We(Sn,Me){He(),Me&&(ye(Me),Sn&&!e.some(Sn.declarations,function(we){return e.isArrowFunction(we)||(e.isFunctionExpression(we)||e.isClassExpression(we))&&!we.name})&&(B.push(e.spacePart()),Ee(Sn)))}function ye(Sn){switch(Sn){case"var":case"function":case"let":case"const":case"constructor":B.push(e.textOrKeywordPart(Sn));return;default:B.push(e.punctuationPart(20)),B.push(e.textOrKeywordPart(Sn)),B.push(e.punctuationPart(21));return}}function Ie(Sn,Me,we){we===void 0&&(we=0),e.addRange(B,e.signatureToDisplayParts(v,Sn,se,we|32)),Me.length>1&&(B.push(e.spacePart()),B.push(e.punctuationPart(20)),B.push(e.operatorPart(39)),B.push(e.displayPart((Me.length-1).toString(),e.SymbolDisplayPartKind.numericLiteral)),B.push(e.spacePart()),B.push(e.textPart(Me.length===2?"overload":"overloads")),B.push(e.punctuationPart(21))),R=Sn.getDocumentationComment(v),O=Sn.getJsDocTags(),Me.length>1&&R.length===0&&O.length===0&&(R=Me[0].getDocumentationComment(v),O=Me[0].getJsDocTags())}function je(Sn,Me){var we=e.mapToDisplayParts(function(ze){var Cn=v.symbolToTypeParameterDeclarations(Sn,Me,d);Le().writeList(53776,Cn,e.getSourceFileOfNode(e.getParseTreeNode(Me)),ze)});e.addRange(B,we)}}a.getSymbolDisplayPartsDocumentationAndSymbolKind=J;function h(v){return v.parent?!1:e.forEach(v.declarations,function(I){if(I.kind===211)return!0;if(I.kind!==252&&I.kind!==254)return!1;for(var X=I.parent;!e.isFunctionBlock(X);X=X.parent)if(X.kind===300||X.kind===260)return!1;return!0})}})(e.SymbolDisplay||(e.SymbolDisplay={}))})(un||(un={}));var un;(function(e){function a(p,P){var J=[],h=P.compilerOptions?t(P.compilerOptions,J):{},v=e.getDefaultCompilerOptions();for(var I in v)e.hasProperty(v,I)&&h[I]===void 0&&(h[I]=v[I]);for(var X=0,se=e.transpileOptionValueCompilerOptions;X>=v;return R}function D(U,B){var R=(U>>B&I)+1;return e.Debug.assert((R&I)===R,"Adding more rules into the sub-bucket than allowed. Maximum allowed is 32 rules."),U&~(I<=E.length)return!1;var c=E[x];if(m.end<=c.start)return!1;if(e.startEndOverlapsWithStartEnd(m.pos,m.end,c.start,c.start+c.length))return!0;x++}};function C(){return!1}}function D(b,A,E){var x=b.getStart(E);if(x===A.pos&&b.end===A.end)return x;var C=e.findPrecedingToken(A.pos,E);return!C||C.end>=A.pos?b.pos:C.end}function U(b,A,E){for(var x=-1,C;b;){var m=E.getLineAndCharacterOfPosition(b.getStart(E)).line;if(x!==-1&&m!==x)break;if(a.SmartIndenter.shouldIndentChildNode(A,b,C,E))return A.indentSize;x=m,C=b,b=b.parent}return 0}function B(b,A,E,x,C,m){var c={pos:0,end:A.text.length};return a.getFormattingScanner(A.text,E,c.pos,c.end,function(f){return k(c,b,x,C,f,m,1,function(N){return!1},A)})}a.formatNodeGivenIndentation=B;function R(b,A,E,x){if(!b)return[];var C={pos:e.getLineStartPositionForPosition(b.getStart(A),A),end:b.end};return O(C,A,E,x)}function O(b,A,E,x){var C=y(b,A);return a.getFormattingScanner(A.text,A.languageVariant,D(C,b,A),b.end,function(m){return k(b,C,a.SmartIndenter.getIndentationForNode(C,b,A,E.options),U(C,E.options,A),m,E,x,w(A.parseDiagnostics,b),A)})}function k(b,A,E,x,C,m,c,f,N){var V=m.options,Z=m.getRules,S=m.host,ce=new a.FormattingContext(N,c,V),ge,ae,F,re,q=-1,ue=[];if(C.advance(),C.isOnToken()){var ke=N.getLineAndCharacterOfPosition(A.getStart(N)).line,de=ke;A.decorators&&(de=N.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(A,N)).line),We(A,A,ke,de,E,x)}if(!C.isOnToken()){var xe=a.SmartIndenter.nodeWillIndentChild(V,A,void 0,N,!1)?E+V.indentSize:E,Le=C.getCurrentLeadingTrivia();Le&&ye(Le,xe,!1,function(Tn){return je(Tn,N.getLineAndCharacterOfPosition(Tn.pos),A,A,void 0)})}return V.trimTrailingWhitespace!==!1&&Nn(),ue;function He(Tn,qn,oe,Be,Te){if(e.rangeOverlapsWithStartEnd(Be,Tn,qn)||e.rangeContainsStartEnd(Be,Tn,qn)){if(Te!==-1)return Te}else{var qe=N.getLineAndCharacterOfPosition(Tn).line,cn=e.getLineStartPositionForPosition(Tn,N),be=a.SmartIndenter.findFirstNonWhitespaceColumn(cn,Tn,N,V);if(qe!==oe||Tn===be){var Xe=a.SmartIndenter.getBaseIndentation(V);return Xe>be?Xe:be}}return-1}function Ne(Tn,qn,oe,Be,Te,qe){var cn=a.SmartIndenter.shouldIndentChildNode(V,Tn)?V.indentSize:0;return qe===qn?{indentation:qn===re?q:Te.getIndentation(),delta:Math.min(V.indentSize,Te.getDelta(Tn)+cn)}:oe===-1?Tn.kind===20&&qn===re?{indentation:q,delta:Te.getDelta(Tn)}:a.SmartIndenter.childStartsOnTheSameLineWithElseInIfStatement(Be,Tn,qn,N)||a.SmartIndenter.childIsUnindentedBranchOfConditionalExpression(Be,Tn,qn,N)||a.SmartIndenter.argumentStartsOnSameLineAsPreviousArgument(Be,Tn,qn,N)?{indentation:Te.getIndentation(),delta:cn}:{indentation:Te.getIndentation()+Te.getDelta(Tn),delta:cn}:{indentation:oe,delta:cn}}function De(Tn){if(Tn.modifiers&&Tn.modifiers.length)return Tn.modifiers[0].kind;switch(Tn.kind){case 255:return 84;case 256:return 118;case 254:return 98;case 258:return 258;case 170:return 135;case 171:return 147;case 167:if(Tn.asteriskToken)return 41;case 165:case 162:var qn=e.getNameOfDeclaration(Tn);if(qn)return qn.kind}}function Ee(Tn,qn,oe,Be){return{getIndentationForComment:function(cn,be,Xe){switch(cn){case 19:case 23:case 21:return oe+qe(Xe)}return be!==-1?be:oe},getIndentationForToken:function(cn,be,Xe,En){return!En&&Te(cn,be,Xe)?oe+qe(Xe):oe},getIndentation:function(){return oe},getDelta:qe,recomputeIndentation:function(cn,be){a.SmartIndenter.shouldIndentChildNode(V,be,Tn,N)&&(oe+=cn?V.indentSize:-V.indentSize,Be=a.SmartIndenter.shouldIndentChildNode(V,Tn)?V.indentSize:0)}};function Te(cn,be,Xe){switch(be){case 18:case 19:case 21:case 91:case 115:case 59:return!1;case 43:case 31:switch(Xe.kind){case 278:case 279:case 277:case 226:return!1}break;case 22:case 23:if(Xe.kind!==193)return!1;break}return qn!==cn&&!(Tn.decorators&&be===De(Tn))}function qe(cn){return a.SmartIndenter.nodeWillIndentChild(V,Tn,cn,N,!0)?Be:0}}function We(Tn,qn,oe,Be,Te,qe){if(!e.rangeOverlapsWithStartEnd(b,Tn.getStart(N),Tn.getEnd()))return;var cn=Ee(Tn,oe,Te,qe),be=qn;for(e.forEachChild(Tn,function(sn){Pe(sn,-1,Tn,cn,oe,Be,!1)},function(sn){he(sn,Tn,oe,cn)});C.isOnToken();){var Xe=C.readTokenInfo(Tn);if(Xe.token.end>Tn.end)break;ln(Xe,Tn,cn,Tn)}if(!Tn.parent&&C.isOnEOF()){var En=C.readEOFTokenRange();En.end<=Tn.end&&ge&&Sn(En,N.getLineAndCharacterOfPosition(En.pos).line,Tn,ge,F,ae,qn,cn)}function Pe(sn,An,Un,pr,Cr,xr,Gr,Ve){var Ln=sn.getStart(N),Wn=N.getLineAndCharacterOfPosition(Ln).line,Je=Wn;sn.decorators&&(Je=N.getLineAndCharacterOfPosition(e.getNonDecoratorTokenPosOfNode(sn,N)).line);var kn=-1;if(Gr&&e.rangeContainsRange(b,Un)&&(kn=He(Ln,sn.end,Cr,b,An),kn!==-1&&(An=kn)),!e.rangeOverlapsWithStartEnd(b,sn.pos,sn.end))return sn.endLn){Qn.token.pos>Ln&&C.skipToStartOf(sn);break}ln(Qn,Tn,pr,Tn)}if(!C.isOnToken())return An;if(e.isToken(sn)){var Qn=C.readTokenInfo(sn);if(sn.kind!==11)return e.Debug.assert(Qn.token.end===sn.end,"Token end is child end"),ln(Qn,Tn,pr,sn),An}var jn=sn.kind===163?Wn:xr,on=Ne(sn,Wn,kn,Tn,pr,jn);return We(sn,be,Wn,Je,on.indentation,on.delta),be=Tn,Ve&&Un.kind===202&&An===-1&&(An=on.indentation),An}function he(sn,An,Un,pr){e.Debug.assert(e.isNodeArray(sn));var Cr=Y(An,sn),xr=pr,Gr=Un;if(Cr!==0)for(;C.isOnToken();){var Ve=C.readTokenInfo(An);if(Ve.token.end>sn.pos)break;if(Ve.token.kind===Cr){Gr=N.getLineAndCharacterOfPosition(Ve.token.pos).line,ln(Ve,An,pr,An);var Ln=void 0;if(q!==-1)Ln=q;else{var Wn=e.getLineStartPositionForPosition(Ve.token.pos,N);Ln=a.SmartIndenter.findFirstNonWhitespaceColumn(Wn,Ve.token.pos,N,V)}xr=Ee(An,Un,Ln,V.indentSize)}else ln(Ve,An,pr,An)}for(var Je=-1,kn=0;kn0){var xr=ee(Cr,V);$e(Un,pr.character,xr)}else Kn(Un,pr.character)}}}function an(Tn,qn,oe){for(var Be=Tn;Beqe)){var cn=vn(Te,qe);cn!==-1&&(e.Debug.assert(cn===Te||!e.isWhiteSpaceSingleLine(N.text.charCodeAt(cn-1))),Kn(cn,qe+1-cn))}}}function vn(Tn,qn){for(var oe=qn;oe>=Tn&&e.isWhiteSpaceSingleLine(N.text.charCodeAt(oe));)oe--;return oe!==qn?oe+1:-1}function Nn(){var Tn=ge?ge.end:b.pos,qn=N.getLineAndCharacterOfPosition(Tn).line,oe=N.getLineAndCharacterOfPosition(b.end).line;an(qn,oe+1,ge)}function Kn(Tn,qn){qn&&ue.push(e.createTextChangeFromStartLength(Tn,qn,""))}function $e(Tn,qn,oe){(qn||oe)&&ue.push(e.createTextChangeFromStartLength(Tn,qn,oe))}function ie(Tn,qn){qn&&ue.push(e.createTextChangeFromStartLength(Tn,0,qn))}function dn(Tn,qn,oe,Be,Te){var qe=Te!==oe;switch(Tn.action){case 1:return 0;case 16:if(qn.end!==Be.pos)return Kn(qn.end,Be.pos-qn.end),qe?2:0;break;case 32:Kn(qn.pos,qn.end-qn.pos);break;case 8:if(Tn.flags!==1&&oe!==Te)return 0;var cn=Te-oe;if(cn!==1)return $e(qn.end,Be.pos-qn.end,e.getNewLineOrDefaultFromHost(S,V)),qe?0:1;break;case 4:if(Tn.flags!==1&&oe!==Te)return 0;var be=Be.pos-qn.end;if(be!==1||N.text.charCodeAt(qn.end)!==32)return $e(qn.end,Be.pos-qn.end," "),qe?2:0;break;case 64:ie(qn.end,";")}return 0}}var M;(function(b){b[b.None=0]="None",b[b.LineAdded=1]="LineAdded",b[b.LineRemoved=2]="LineRemoved"})(M||(M={}));function z(b,A,E,x){x===void 0&&(x=e.getTokenAtPosition(b,A));var C=e.findAncestor(x,e.isJSDoc);C&&(x=C.parent);var m=x.getStart(b);if(!(m<=A&&Af.text.length)return v(N);if(N.indentStyle===e.IndentStyle.None)return 0;var Z=e.findPrecedingToken(c,f,void 0,!0),S=a.getRangeOfEnclosingComment(f,c,Z||null);if(S&&S.kind===3)return p(f,c,N,S);if(!Z)return v(N);var ce=e.isStringOrRegularExpressionOrTemplateLiteral(Z.kind);if(ce&&Z.getStart(f)<=c&&c=0),Z<=S)return A(e.getStartPositionOfLine(S,c),f,c,N);var ce=e.getStartPositionOfLine(Z,c),ge=b(ce,f,c,N),ae=ge.column,F=ge.character;if(ae===0)return ae;var re=c.text.charCodeAt(ce+F);return re===42?ae-1:ae}function P(c,f,N){for(var V=f;V>0;){var Z=c.text.charCodeAt(V);if(!e.isWhiteSpaceLike(Z))break;V--}var S=e.getLineStartPositionForPosition(V,c);return A(S,V,c,N)}function J(c,f,N,V,Z,S){for(var ce,ge=N;ge;){if(e.positionBelongsToNode(ge,f,c)&&C(S,ge,ce,c,!0)){var ae=U(ge,c),F=D(N,ge,V,c),re=F!==0?Z&&F===2?S.indentSize:0:V!==ae.line?S.indentSize:0;return I(ge,ae,void 0,re,c,!0,S)}var q=H(ge,c,S,!0);if(q!==-1)return q;ce=ge,ge=ge.parent}return v(S)}function h(c,f,N,V){var Z=N.getLineAndCharacterOfPosition(c.getStart(N));return I(c,Z,f,0,N,!1,V)}d.getIndentationForNode=h;function v(c){return c.baseIndentSize||0}d.getBaseIndentation=v;function I(c,f,N,V,Z,S,ce){for(var ge,ae=c.parent;ae;){var F=!0;if(N){var re=c.getStart(Z);F=reN.end}var q=X(ae,c,Z),ue=q.line===f.line||R(ae,c,f.line,Z);if(F){var ke=(ge=M(c,Z))===null||ge===void 0?void 0:ge[0],de=!!ke&&U(ke,Z).line>q.line,xe=H(c,Z,ce,de);if(xe!==-1||(xe=y(c,ae,f,ue,Z,ce),xe!==-1))return xe+V}C(ce,ae,c,Z,S)&&!ue&&(V+=ce.indentSize);var Le=B(ae,c,f.line,Z);c=ae,ae=c.parent,f=Le?Z.getLineAndCharacterOfPosition(c.getStart(Z)):q}return V+v(ce)}function X(c,f,N){var V=M(f,N),Z=V?V.pos:c.getStart(N);return N.getLineAndCharacterOfPosition(Z)}function se(c,f,N){var V=e.findListItemInfo(c);return V&&V.listItemIndex>0?K(V.list.getChildren(),V.listItemIndex-1,f,N):-1}function y(c,f,N,V,Z,S){var ce=(e.isDeclaration(c)||e.isStatementButNotDeclaration(c))&&(f.kind===300||!V);return ce?ee(N,Z,S):-1}var w;(function(c){c[c.Unknown=0]="Unknown",c[c.OpenBrace=1]="OpenBrace",c[c.CloseBrace=2]="CloseBrace"})(w||(w={}));function D(c,f,N,V){var Z=e.findNextToken(c,f,V);if(!Z)return 0;if(Z.kind===18)return 1;if(Z.kind===19){var S=U(Z,V).line;return N===S?2:0}return 0}function U(c,f){return f.getLineAndCharacterOfPosition(c.getStart(f))}function B(c,f,N,V){if(!(e.isCallExpression(c)&&e.contains(c.arguments,f)))return!1;var Z=c.expression.getEnd(),S=e.getLineAndCharacterOfPosition(V,Z).line;return S===N}d.isArgumentAndStartLineOverlapsExpressionBeingCalled=B;function R(c,f,N,V){if(c.kind===237&&c.elseStatement===f){var Z=e.findChildOfKind(c,91,V);e.Debug.assert(Z!==void 0);var S=U(Z,V).line;return S===N}return!1}d.childStartsOnTheSameLineWithElseInIfStatement=R;function O(c,f,N,V){if(e.isConditionalExpression(c)&&(f===c.whenTrue||f===c.whenFalse)){var Z=e.getLineAndCharacterOfPosition(V,c.condition.end).line;if(f===c.whenTrue)return N===Z;var S=U(c.whenTrue,V).line,ce=e.getLineAndCharacterOfPosition(V,c.whenTrue.end).line;return Z===S&&ce===N}return!1}d.childIsUnindentedBranchOfConditionalExpression=O;function k(c,f,N,V){if(e.isCallOrNewExpression(c)){if(!c.arguments)return!1;var Z=e.find(c.arguments,function(ae){return ae.pos===f.pos});if(!Z)return!1;var S=c.arguments.indexOf(Z);if(S===0)return!1;var ce=c.arguments[S-1],ge=e.getLineAndCharacterOfPosition(V,ce.getEnd()).line;if(N===ge)return!0}return!1}d.argumentStartsOnSameLineAsPreviousArgument=k;function M(c,f){return c.parent&&Y(c.getStart(f),c.getEnd(),c.parent,f)}d.getContainingList=M;function z(c,f,N){return f&&Y(c,c,f,N)}function Y(c,f,N,V){switch(N.kind){case 176:return Z(N.typeArguments);case 203:return Z(N.properties);case 202:return Z(N.elements);case 180:return Z(N.members);case 254:case 211:case 212:case 167:case 166:case 172:case 169:case 178:case 173:return Z(N.typeParameters)||Z(N.parameters);case 255:case 224:case 256:case 257:case 339:return Z(N.typeParameters);case 207:case 206:return Z(N.typeArguments)||Z(N.arguments);case 253:return Z(N.declarations);case 267:case 271:return Z(N.elements);case 199:case 200:return Z(N.elements)}function Z(S){return S&&e.rangeContainsStartEnd(ne(N,S,V),c,f)?S:void 0}}function ne(c,f,N){for(var V=c.getChildren(N),Z=1;Z=0&&f=0;ce--)if(c[ce].kind!==27){var ge=N.getLineAndCharacterOfPosition(c[ce].end).line;if(ge!==S.line)return ee(S,N,V);S=U(c[ce],N)}return-1}function ee(c,f,N){var V=f.getPositionOfLineAndCharacter(c.line,0);return A(V,V+c.character,f,N)}function b(c,f,N,V){for(var Z=0,S=0,ce=c;ce0?1:0,Le=e.getStartPositionOfLine(e.getLineOfLocalPosition(c,ue)+xe,c);return Le=h(c.text,Le),e.getStartPositionOfLine(e.getLineOfLocalPosition(c,Le),c)}function w(c,f,N){var V=f.end,Z=N.trailingTriviaOption;if(Z===J.Include){var S=e.getTrailingCommentRanges(c.text,V);if(S)for(var ce=e.getLineOfLocalPosition(c,f.end),ge=0,ae=S;gece)break;var re=e.getLineOfLocalPosition(c,F.end);if(re>ce)return e.skipTrivia(c.text,F.end,!0,!0)}}}function D(c,f,N){var V,Z=f.end,S=N.trailingTriviaOption;if(S===J.Exclude)return Z;if(S===J.ExcludeWhitespace){var ce=e.concatenate(e.getTrailingCommentRanges(c.text,Z),e.getLeadingCommentRanges(c.text,Z)),ge=(V=ce==null?void 0:ce[ce.length-1])===null||V===void 0?void 0:V.end;return ge||Z}var ae=w(c,f,N);if(ae)return ae;var F=e.skipTrivia(c.text,Z,!0);return F!==Z&&(S===J.Include||e.isLineBreak(c.text.charCodeAt(F-1)))?F:Z}function U(c,f){return!!f&&!!c.parent&&(f.kind===27||f.kind===26&&c.parent.kind===203)}function B(c){return e.isFunctionExpression(c)||e.isFunctionDeclaration(c)}a.isThisTypeAnnotatable=B;var R=function(){function c(f,N){this.newLineCharacter=f,this.formatContext=N,this.changes=[],this.newFiles=[],this.classesWithNodesInsertedAtStart=new e.Map,this.deletedNodes=[]}return c.fromContext=function(f){return new c(e.getNewLineOrDefaultFromHost(f.host,f.formatContext.options),f.formatContext)},c.with=function(f,N){var V=c.fromContext(f);return N(V),V.getChanges()},c.prototype.pushRaw=function(f,N){e.Debug.assertEqual(f.fileName,N.fileName);for(var V=0,Z=N.textChanges;V",joiner:", "})},c.prototype.getOptionsForInsertNodeBefore=function(f,N,V){return e.isStatement(f)||e.isClassElement(f)?{suffix:V?this.newLineCharacter+this.newLineCharacter:this.newLineCharacter}:e.isVariableDeclaration(f)?{suffix:", "}:e.isParameter(f)?e.isParameter(N)?{suffix:", "}:{}:e.isStringLiteral(f)&&e.isImportDeclaration(f.parent)||e.isNamedImports(f)?{suffix:", "}:e.isImportSpecifier(f)?{suffix:","+(V?this.newLineCharacter:" ")}:e.Debug.failBadSyntaxKind(f)},c.prototype.insertNodeAtConstructorStart=function(f,N,V){var Z=e.firstOrUndefined(N.body.statements);!Z||!N.body.multiLine?this.replaceConstructorBody(f,N,Mr([V],N.body.statements,!0)):this.insertNodeBefore(f,Z,V)},c.prototype.insertNodeAtConstructorStartAfterSuperCall=function(f,N,V){var Z=e.find(N.body.statements,function(S){return e.isExpressionStatement(S)&&e.isSuperCall(S.expression)});!Z||!N.body.multiLine?this.replaceConstructorBody(f,N,Mr(Mr([],N.body.statements,!0),[V],!1)):this.insertNodeAfter(f,Z,V)},c.prototype.insertNodeAtConstructorEnd=function(f,N,V){var Z=e.lastOrUndefined(N.body.statements);!Z||!N.body.multiLine?this.replaceConstructorBody(f,N,Mr(Mr([],N.body.statements,!0),[V],!1)):this.insertNodeAfter(f,Z,V)},c.prototype.replaceConstructorBody=function(f,N,V){this.replaceNode(f,N.body,e.factory.createBlock(V,!0))},c.prototype.insertNodeAtEndOfScope=function(f,N,V){var Z=y(f,N.getLastToken(),{});this.insertNodeAt(f,Z,V,{prefix:e.isLineBreak(f.text.charCodeAt(N.getLastToken().pos))?this.newLineCharacter:this.newLineCharacter+this.newLineCharacter,suffix:this.newLineCharacter})},c.prototype.insertNodeAtClassStart=function(f,N,V){this.insertNodeAtStartWorker(f,N,V)},c.prototype.insertNodeAtObjectStart=function(f,N,V){this.insertNodeAtStartWorker(f,N,V)},c.prototype.insertNodeAtStartWorker=function(f,N,V){var Z,S=(Z=this.guessIndentationFromExistingMembers(f,N))!==null&&Z!==void 0?Z:this.computeIndentationForNewMember(f,N);this.insertNodeAt(f,M(N).pos,V,this.getInsertNodeAtStartInsertOptions(f,N,S))},c.prototype.guessIndentationFromExistingMembers=function(f,N){for(var V,Z=N,S=0,ce=M(N);S0?{fileName:ke.fileName,textChanges:He}:void 0})}c.getTextChangesFromChanges=f;function N(ae,F,re,q,ue){var ke=V(ae,e.getScriptKindFromFileName(F),re,q,ue);return{fileName:F,textChanges:[e.createTextChange(e.createTextSpan(0,0),ke)],isNewFile:!0}}c.newFileChanges=N;function V(ae,F,re,q,ue){var ke=re.map(function(Le){return Le===4?"":ge(Le,ae,q).text}).join(q),de=e.createSourceFile("any file name",ke,99,!0,F),xe=e.formatting.formatDocument(de,ue);return ne(ke,xe)+q}c.newFileChangesWorker=V;function Z(ae,F,re,q,ue){var ke;if(ae.kind===X.Remove)return"";if(ae.kind===X.Text)return ae.text;var de=ae.options,xe=de===void 0?{}:de,Le=ae.range.pos,He=function(Ee){return ce(Ee,F,Le,xe,re,q,ue)},Ne=ae.kind===X.ReplaceWithMultipleNodes?ae.nodes.map(function(Ee){return e.removeSuffix(He(Ee),re)}).join(((ke=ae.options)===null||ke===void 0?void 0:ke.joiner)||re):He(ae.node),De=xe.preserveLeadingWhitespace||xe.indentation!==void 0||e.getLineStartPositionForPosition(Le,F)===Le?Ne:Ne.replace(/^\s+/,"");return(xe.prefix||"")+De+(!xe.suffix||e.endsWith(De,xe.suffix)?"":xe.suffix)}function S(ae,F){var re=ae.options,q=!re.semicolons||re.semicolons===e.SemicolonPreference.Ignore,ue=re.semicolons===e.SemicolonPreference.Remove||q&&!e.probablyUsesSemicolons(F);return Dt(Dt({},re),{semicolons:ue?e.SemicolonPreference.Remove:e.SemicolonPreference.Ignore})}function ce(ae,F,re,q,ue,ke,de){var xe=q.indentation,Le=q.prefix,He=q.delta,Ne=ge(ae,F,ue),De=Ne.node,Ee=Ne.text;de&&de(De,Ee);var We=S(ke,F),ye=xe!==void 0?xe:e.formatting.SmartIndenter.getIndentation(re,F,We,Le===ue||e.getLineStartPositionForPosition(re,F)===re);He===void 0&&(He=e.formatting.SmartIndenter.shouldIndentChildNode(We,ae)&&We.indentSize||0);var Ie={text:Ee,getLineAndCharacterOfPosition:function(Sn){return e.getLineAndCharacterOfPosition(this,Sn)}},je=e.formatting.formatNodeGivenIndentation(De,Ie,F.languageVariant,ye,He,Dt(Dt({},ke),{options:We}));return ne(Ee,je)}function ge(ae,F,re){var q=ee(re),ue=re===` -`?1:0;return e.createPrinter({newLine:ue,neverAsciiEscape:!0,preserveSourceNewlines:!0,terminateUnterminatedLiterals:!0},q).writeNode(4,ae,F,q),{text:q.getText(),node:H(ae)}}c.getNonformattedText=ge})(Y||(Y={}));function ne(c,f){for(var N=f.length-1;N>=0;N--){var V=f[N],Z=V.span,S=V.newText;c=""+c.substring(0,Z.start)+S+c.substring(e.textSpanEnd(Z))}return c}a.applyChanges=ne;function j(c){return e.skipTrivia(c,0)===c.length}function H(c){var f=e.visitEachChild(c,H,e.nullTransformationContext,K,H),N=e.nodeIsSynthesized(f)?f:Object.create(f);return e.setTextRangePosEnd(N,d(c),t(c)),N}function K(c,f,N,V,Z){var S=e.visitNodes(c,f,N,V,Z);if(!S)return S;var ce=S===c?e.factory.createNodeArray(S.slice(0)):S;return e.setTextRangePosEnd(ce,d(c),t(c)),ce}function ee(c){var f=0,N=e.createTextWriter(c),V=function(Kn){Kn&&g(Kn,f)},Z=function(Kn){Kn&&p(Kn,f)},S=function(Kn){Kn&&g(Kn,f)},ce=function(Kn){Kn&&p(Kn,f)},ge=function(Kn){Kn&&g(Kn,f)},ae=function(Kn){Kn&&p(Kn,f)};function F(Kn,$e){if($e||!j(Kn)){f=N.getTextPos();for(var ie=0;e.isWhiteSpaceLike(Kn.charCodeAt(Kn.length-ie-1));)ie++;f-=ie}}function re(Kn){N.write(Kn),F(Kn,!1)}function q(Kn){N.writeComment(Kn)}function ue(Kn){N.writeKeyword(Kn),F(Kn,!1)}function ke(Kn){N.writeOperator(Kn),F(Kn,!1)}function de(Kn){N.writePunctuation(Kn),F(Kn,!1)}function xe(Kn){N.writeTrailingSemicolon(Kn),F(Kn,!1)}function Le(Kn){N.writeParameter(Kn),F(Kn,!1)}function He(Kn){N.writeProperty(Kn),F(Kn,!1)}function Ne(Kn){N.writeSpace(Kn),F(Kn,!1)}function De(Kn){N.writeStringLiteral(Kn),F(Kn,!1)}function Ee(Kn,$e){N.writeSymbol(Kn,$e),F(Kn,!1)}function We(Kn){N.writeLine(Kn)}function ye(){N.increaseIndent()}function Ie(){N.decreaseIndent()}function je(){return N.getText()}function Sn(Kn){N.rawWrite(Kn),F(Kn,!1)}function Me(Kn){N.writeLiteral(Kn),F(Kn,!0)}function we(){return N.getTextPos()}function ze(){return N.getLine()}function Cn(){return N.getColumn()}function an(){return N.getIndent()}function vn(){return N.isAtStartOfLine()}function Nn(){N.clear(),f=0}return{onBeforeEmitNode:V,onAfterEmitNode:Z,onBeforeEmitNodeArray:S,onAfterEmitNodeArray:ce,onBeforeEmitToken:ge,onAfterEmitToken:ae,write:re,writeComment:q,writeKeyword:ue,writeOperator:ke,writePunctuation:de,writeTrailingSemicolon:xe,writeParameter:Le,writeProperty:He,writeSpace:Ne,writeStringLiteral:De,writeSymbol:Ee,writeLine:We,increaseIndent:ye,decreaseIndent:Ie,getText:je,rawWrite:Sn,writeLiteral:Me,getTextPos:we,getLine:ze,getColumn:Cn,getIndent:an,isAtStartOfLine:vn,hasTrailingComment:function(){return N.hasTrailingComment()},hasTrailingWhitespace:function(){return N.hasTrailingWhitespace()},clear:Nn}}function b(c){for(var f,N=0,V=c.statements;N=xe+2)break}if(c.statements.length){re===void 0&&(re=c.getLineAndCharacterOfPosition(c.statements[0].getStart()).line);var Le=c.getLineAndCharacterOfPosition(ke.end).line;if(re1)break}var H=z<2;return function(K){var ee=K.fixId,b=K.fixAllDescription,A=KE(K,["fixId","fixAllDescription"]);return H?A:Dt(Dt({},A),{fixId:ee,fixAllDescription:b})}}function se(O){var k=R(O),M=d.get(String(O.errorCode));return e.flatMap(M,function(z){return e.map(z.getCodeActions(O),X(z,k))})}a.getFixes=se;function y(O){return g.get(e.cast(O.fixId,e.isString)).getAllCodeActions(O)}a.getAllFixes=y;function w(O,k){return{changes:O,commands:k}}a.createCombinedCodeActions=w;function D(O,k){return{fileName:O,textChanges:k}}a.createFileTextChanges=D;function U(O,k,M){var z=[],Y=e.textChanges.ChangeTracker.with(O,function(ne){return B(O,k,function(j){return M(ne,j,z)})});return w(Y,z.length===0?void 0:z)}a.codeFixAll=U;function B(O,k,M){for(var z=0,Y=R(O);ze.textSpanEnd(v)?"quit":(e.isArrowFunction(se)||e.isMethodDeclaration(se)||e.isFunctionExpression(se)||e.isFunctionDeclaration(se))&&e.textSpansEqual(v,e.createTextSpanFromNode(se,h))});return X}}function J(h,v){return function(I){var X=I.start,se=I.length,y=I.relatedInformation,w=I.code;return e.isNumber(X)&&e.isNumber(se)&&e.textSpansEqual({start:X,length:se},h)&&w===v&&!!y&&e.some(y,function(D){return D.code===e.Diagnostics.Did_you_mean_to_mark_this_function_as_async.code})}}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="addMissingAwait",g=e.Diagnostics.Property_0_does_not_exist_on_type_1.code,t=[e.Diagnostics.This_expression_is_not_callable.code,e.Diagnostics.This_expression_is_not_constructable.code],p=Mr([e.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_bigint_or_an_enum_type.code,e.Diagnostics.Operator_0_cannot_be_applied_to_type_1.code,e.Diagnostics.Operator_0_cannot_be_applied_to_types_1_and_2.code,e.Diagnostics.This_condition_will_always_return_0_since_the_types_1_and_2_have_no_overlap.code,e.Diagnostics.This_condition_will_always_return_true_since_this_0_is_always_defined.code,e.Diagnostics.Type_0_is_not_an_array_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_Use_compiler_option_downlevelIteration_to_allow_iterating_of_iterators.code,e.Diagnostics.Type_0_is_not_an_array_type_or_a_string_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_is_not_an_array_type_or_does_not_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_iterator_method_that_returns_an_iterator.code,e.Diagnostics.Type_0_must_have_a_Symbol_asyncIterator_method_that_returns_an_async_iterator.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code,g],t,!0);a.registerCodeFix({fixIds:[d],errorCodes:p,getCodeActions:function(U){var B=U.sourceFile,R=U.errorCode,O=U.span,k=U.cancellationToken,M=U.program,z=v(B,R,O,k,M);if(!!z){var Y=U.program.getTypeChecker(),ne=function(j){return e.textChanges.ChangeTracker.with(U,j)};return e.compact([P(U,z,R,Y,ne),J(U,z,R,Y,ne)])}},getAllCodeActions:function(U){var B=U.sourceFile,R=U.program,O=U.cancellationToken,k=U.program.getTypeChecker(),M=new e.Set;return a.codeFixAll(U,p,function(z,Y){var ne=v(B,Y.code,Y,O,R);if(!!ne){var j=function(H){return H(z),[]};return P(U,ne,Y.code,k,j,M)||J(U,ne,Y.code,k,j,M)}})}});function P(U,B,R,O,k,M){var z=U.sourceFile,Y=U.program,ne=U.cancellationToken,j=I(B,z,ne,Y,O);if(j){var H=k(function(K){e.forEach(j.initializers,function(ee){var b=ee.expression;return w(K,R,z,O,b,M)}),M&&j.needsSecondPassForFixAll&&w(K,R,z,O,B,M)});return a.createCodeFixActionWithoutFixAll("addMissingAwaitToInitializer",H,j.initializers.length===1?[e.Diagnostics.Add_await_to_initializer_for_0,j.initializers[0].declarationSymbol.name]:e.Diagnostics.Add_await_to_initializers)}}function J(U,B,R,O,k,M){var z=k(function(Y){return w(Y,R,U.sourceFile,O,B,M)});return a.createCodeFixAction(d,z,e.Diagnostics.Add_await,d,e.Diagnostics.Fix_all_expressions_possibly_missing_await)}function h(U,B,R,O,k){var M=k.getDiagnosticsProducingTypeChecker(),z=M.getDiagnostics(U,O);return e.some(z,function(Y){var ne=Y.start,j=Y.length,H=Y.relatedInformation,K=Y.code;return e.isNumber(ne)&&e.isNumber(j)&&e.textSpansEqual({start:ne,length:j},R)&&K===B&&!!H&&e.some(H,function(ee){return ee.code===e.Diagnostics.Did_you_forget_to_use_await.code})})}function v(U,B,R,O,k){var M=e.getTokenAtPosition(U,R.start),z=e.findAncestor(M,function(Y){return Y.getStart(U)e.textSpanEnd(R)?"quit":e.isExpression(Y)&&e.textSpansEqual(R,e.createTextSpanFromNode(Y,U))});return z&&h(U,B,R,O,k)&&y(z)?z:void 0}function I(U,B,R,O,k){var M=X(U,k);if(!!M){for(var z=M.isCompleteFix,Y,ne=function(ee){var b=k.getSymbolAtLocation(ee);if(!b)return"continue";var A=e.tryCast(b.valueDeclaration,e.isVariableDeclaration),E=A&&e.tryCast(A.name,e.isIdentifier),x=e.getAncestor(A,235);if(!A||!x||A.type||!A.initializer||x.getSourceFile()!==B||e.hasSyntacticModifier(x,1)||!E||!y(A.initializer))return z=!1,"continue";var C=O.getSemanticDiagnostics(B,R),m=e.FindAllReferences.Core.eachSymbolReferenceInFile(E,k,B,function(c){return ee!==c&&!se(c,C,B,k)});if(m)return z=!1,"continue";(Y||(Y=[])).push({expression:A.initializer,declarationSymbol:b})},j=0,H=M.identifiers;j0)return[a.createCodeFixAction(d,X,e.Diagnostics.Add_const_to_unresolved_variable,d,e.Diagnostics.Add_const_to_all_unresolved_variables)]},fixIds:[d],getAllCodeActions:function(I){var X=new e.Set;return a.codeFixAll(I,g,function(se,y){return t(se,y.file,y.start,I.program,X)})}});function t(I,X,se,y,w){var D=e.getTokenAtPosition(X,se),U=e.findAncestor(D,function(M){return e.isForInOrOfStatement(M.parent)?M.parent.initializer===M:P(M)?!1:"quit"});if(U)return p(I,U,X,w);var B=D.parent;if(e.isBinaryExpression(B)&&B.operatorToken.kind===63&&e.isExpressionStatement(B.parent))return p(I,D,X,w);if(e.isArrayLiteralExpression(B)){var R=y.getTypeChecker();return e.every(B.elements,function(M){return J(M,R)})?p(I,B,X,w):void 0}var O=e.findAncestor(D,function(M){return e.isExpressionStatement(M.parent)?!0:h(M)?!1:"quit"});if(O){var k=y.getTypeChecker();return v(O,k)?p(I,O,X,w):void 0}}function p(I,X,se,y){(!y||e.tryAddToSet(y,X))&&I.insertModifierBefore(se,85,X)}function P(I){switch(I.kind){case 79:case 202:case 203:case 291:case 292:return!0;default:return!1}}function J(I,X){var se=e.isIdentifier(I)?I:e.isAssignmentExpression(I,!0)&&e.isIdentifier(I.left)?I.left:void 0;return!!se&&!X.getSymbolAtLocation(se)}function h(I){switch(I.kind){case 79:case 219:case 27:return!0;default:return!1}}function v(I,X){return e.isBinaryExpression(I)?I.operatorToken.kind===27?e.every([I.left,I.right],function(se){return v(se,X)}):I.operatorToken.kind===63&&e.isIdentifier(I.left)&&!X.getSymbolAtLocation(I.left):!1}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="addMissingDeclareProperty",g=[e.Diagnostics.Property_0_will_overwrite_the_base_property_in_1_If_this_is_intentional_add_an_initializer_Otherwise_add_a_declare_modifier_or_remove_the_redundant_declaration.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(p){var P=e.textChanges.ChangeTracker.with(p,function(J){return t(J,p.sourceFile,p.span.start)});if(P.length>0)return[a.createCodeFixAction(d,P,e.Diagnostics.Prefix_with_declare,d,e.Diagnostics.Prefix_all_incorrect_property_declarations_with_declare)]},fixIds:[d],getAllCodeActions:function(p){var P=new e.Set;return a.codeFixAll(p,g,function(J,h){return t(J,h.file,h.start,P)})}});function t(p,P,J,h){var v=e.getTokenAtPosition(P,J);if(!!e.isIdentifier(v)){var I=v.parent;I.kind===165&&(!h||e.tryAddToSet(h,I))&&p.insertModifierBefore(P,134,I)}}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="addMissingInvocationForDecorator",g=[e.Diagnostics._0_accepts_too_few_arguments_to_be_used_as_a_decorator_here_Did_you_mean_to_call_it_first_and_write_0.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(p){var P=e.textChanges.ChangeTracker.with(p,function(J){return t(J,p.sourceFile,p.span.start)});return[a.createCodeFixAction(d,P,e.Diagnostics.Call_decorator_expression,d,e.Diagnostics.Add_to_all_uncalled_decorators)]},fixIds:[d],getAllCodeActions:function(p){return a.codeFixAll(p,g,function(P,J){return t(P,J.file,J.start)})}});function t(p,P,J){var h=e.getTokenAtPosition(P,J),v=e.findAncestor(h,e.isDecorator);e.Debug.assert(!!v,"Expected position to be owned by a decorator.");var I=e.factory.createCallExpression(v.expression,void 0,void 0);p.replaceNode(P,v.expression,I)}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="addNameToNamelessParameter",g=[e.Diagnostics.Parameter_has_a_name_but_no_type_Did_you_mean_0_Colon_1.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(p){var P=e.textChanges.ChangeTracker.with(p,function(J){return t(J,p.sourceFile,p.span.start)});return[a.createCodeFixAction(d,P,e.Diagnostics.Add_parameter_name,d,e.Diagnostics.Add_names_to_all_parameters_without_names)]},fixIds:[d],getAllCodeActions:function(p){return a.codeFixAll(p,g,function(P,J){return t(P,J.file,J.start)})}});function t(p,P,J){var h=e.getTokenAtPosition(P,J);if(!e.isIdentifier(h))return e.Debug.fail("add-name-to-nameless-parameter operates on identifiers, but got a "+e.Debug.formatSyntaxKind(h.kind));var v=h.parent;if(!e.isParameter(v))return e.Debug.fail("Tried to add a parameter name to a non-parameter: "+e.Debug.formatSyntaxKind(h.kind));var I=v.parent.parameters.indexOf(v);e.Debug.assert(!v.type,"Tried to add a parameter name to a parameter that already had one."),e.Debug.assert(I>-1,"Parameter not found in parent parameter list.");var X=e.factory.createParameterDeclaration(void 0,v.modifiers,v.dotDotDotToken,"arg"+I,v.questionToken,e.factory.createTypeReferenceNode(h,void 0),v.initializer);p.replaceNode(P,h,X)}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="annotateWithTypeFromJSDoc",g=[e.Diagnostics.JSDoc_types_may_be_moved_to_TypeScript_types.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(B){var R=t(B.sourceFile,B.span.start);if(!!R){var O=e.textChanges.ChangeTracker.with(B,function(k){return J(k,B.sourceFile,R)});return[a.createCodeFixAction(d,O,e.Diagnostics.Annotate_with_type_from_JSDoc,d,e.Diagnostics.Annotate_everything_with_types_from_JSDoc)]}},fixIds:[d],getAllCodeActions:function(B){return a.codeFixAll(B,g,function(R,O){var k=t(O.file,O.start);k&&J(R,O.file,k)})}});function t(B,R){var O=e.getTokenAtPosition(B,R);return e.tryCast(e.isParameter(O.parent)?O.parent.parent:O.parent,p)}function p(B){return h(B)&&P(B)}a.parameterShouldGetTypeFromJSDoc=p;function P(B){return e.isFunctionLikeDeclaration(B)?B.parameters.some(P)||!B.type&&!!e.getJSDocReturnType(B):!B.type&&!!e.getJSDocType(B)}function J(B,R,O){if(e.isFunctionLikeDeclaration(O)&&(e.getJSDocReturnType(O)||O.parameters.some(function(ee){return!!e.getJSDocType(ee)}))){if(!O.typeParameters){var k=e.getJSDocTypeParameterDeclarations(O);k.length&&B.insertTypeParameters(R,O,k)}var M=e.isArrowFunction(O)&&!e.findChildOfKind(O,20,R);M&&B.insertNodeBefore(R,e.first(O.parameters),e.factory.createToken(20));for(var z=0,Y=O.parameters;z1?(h.delete(v,D),h.insertNodeAfter(v,B,U)):h.replaceNode(v,B,U)}function R(M){var z=[];return M.members&&M.members.forEach(function(j,H){if(H==="constructor"&&j.valueDeclaration){h.delete(v,j.valueDeclaration.parent);return}var K=ne(j,void 0);K&&z.push.apply(z,K)}),M.exports&&M.exports.forEach(function(j){if(j.name==="prototype"&&j.declarations){var H=j.declarations[0];if(j.declarations.length===1&&e.isPropertyAccessExpression(H)&&e.isBinaryExpression(H.parent)&&H.parent.operatorToken.kind===63&&e.isObjectLiteralExpression(H.parent.right)){var K=H.parent.right,ee=ne(K.symbol,void 0);ee&&z.push.apply(z,ee)}}else{var ee=ne(j,[e.factory.createToken(124)]);ee&&z.push.apply(z,ee)}}),z;function Y(j,H){return e.isAccessExpression(j)?e.isPropertyAccessExpression(j)&&P(j)?!0:e.isFunctionLike(H):e.every(j.properties,function(K){return!!(e.isMethodDeclaration(K)||e.isGetOrSetAccessorDeclaration(K)||e.isPropertyAssignment(K)&&e.isFunctionExpression(K.initializer)&&!!K.name||P(K))})}function ne(j,H){var K=[];if(!(j.flags&8192)&&!(j.flags&4096))return K;var ee=j.valueDeclaration,b=ee.parent,A=b.right;if(!Y(ee,A))return K;var E=b.parent&&b.parent.kind===236?b.parent:b;if(h.delete(v,E),!A)return K.push(e.factory.createPropertyDeclaration([],H,j.name,void 0,void 0,void 0)),K;if(e.isAccessExpression(ee)&&(e.isFunctionExpression(A)||e.isArrowFunction(A))){var x=e.getQuotePreference(v,se),C=J(ee,y,x);return C?c(K,A,C):K}else{if(e.isObjectLiteralExpression(A))return e.flatMap(A.properties,function(V){return e.isMethodDeclaration(V)||e.isGetOrSetAccessorDeclaration(V)?K.concat(V):e.isPropertyAssignment(V)&&e.isFunctionExpression(V.initializer)?c(K,V.initializer,V.name):P(V)?K:[]});if(e.isSourceFileJS(v)||!e.isPropertyAccessExpression(ee))return K;var m=e.factory.createPropertyDeclaration(void 0,H,ee.name,void 0,void 0,A);return e.copyLeadingComments(b.parent,m,v),K.push(m),K}function c(V,Z,S){return e.isFunctionExpression(Z)?f(V,Z,S):N(V,Z,S)}function f(V,Z,S){var ce=e.concatenate(H,p(Z,130)),ge=e.factory.createMethodDeclaration(void 0,ce,void 0,S,void 0,void 0,Z.parameters,void 0,Z.body);return e.copyLeadingComments(b,ge,v),V.concat(ge)}function N(V,Z,S){var ce=Z.body,ge;ce.kind===233?ge=ce:ge=e.factory.createBlock([e.factory.createReturnStatement(ce)]);var ae=e.concatenate(H,p(Z,130)),F=e.factory.createMethodDeclaration(void 0,ae,void 0,S,void 0,void 0,Z.parameters,void 0,ge);return e.copyLeadingComments(b,F,v),V.concat(F)}}}function O(M){var z=M.initializer;if(!(!z||!e.isFunctionExpression(z)||!e.isIdentifier(M.name))){var Y=R(M.symbol);z.body&&Y.unshift(e.factory.createConstructorDeclaration(void 0,void 0,z.parameters,z.body));var ne=p(M.parent.parent,93),j=e.factory.createClassDeclaration(void 0,ne,M.name,void 0,void 0,Y);return j}}function k(M){var z=R(w);M.body&&z.unshift(e.factory.createConstructorDeclaration(void 0,void 0,M.parameters,M.body));var Y=p(M,93),ne=e.factory.createClassDeclaration(void 0,Y,M.name,void 0,void 0,z);return ne}}function p(h,v){return e.filter(h.modifiers,function(I){return I.kind===v})}function P(h){return h.name?!!(e.isIdentifier(h.name)&&h.name.text==="constructor"):!1}function J(h,v,I){if(e.isPropertyAccessExpression(h))return h.name;var X=h.argumentExpression;if(e.isNumericLiteral(X))return X;if(e.isStringLiteralLike(X))return e.isIdentifierText(X.text,v.target)?e.factory.createIdentifier(X.text):e.isNoSubstitutionTemplateLiteral(X)?e.factory.createStringLiteral(X.text,I===0):X}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="convertToAsyncFunction",g=[e.Diagnostics.This_may_be_converted_to_an_async_function.code],t=!0;a.registerCodeFix({errorCodes:g,getCodeActions:function(m){t=!0;var c=e.textChanges.ChangeTracker.with(m,function(f){return P(f,m.sourceFile,m.span.start,m.program.getTypeChecker())});return t?[a.createCodeFixAction(d,c,e.Diagnostics.Convert_to_async_function,d,e.Diagnostics.Convert_all_to_async_functions)]:[]},fixIds:[d],getAllCodeActions:function(m){return a.codeFixAll(m,g,function(c,f){return P(c,f.file,f.start,m.program.getTypeChecker())})}});var p;(function(m){m[m.Identifier=0]="Identifier",m[m.BindingPattern=1]="BindingPattern"})(p||(p={}));function P(m,c,f,N){var V=e.getTokenAtPosition(c,f),Z;if(e.isIdentifier(V)&&e.isVariableDeclaration(V.parent)&&V.parent.initializer&&e.isFunctionLikeDeclaration(V.parent.initializer)?Z=V.parent.initializer:Z=e.tryCast(e.getContainingFunction(e.getTokenAtPosition(c,f)),e.canBeConvertedToAsync),!!Z){var S=new e.Map,ce=e.isInJSFile(Z),ge=h(Z,N),ae=X(Z,N,S);if(!!e.returnsPromise(ae,N)){var F=ae.body&&e.isBlock(ae.body)?J(ae.body,N):e.emptyArray,re={checker:N,synthNamesMap:S,setOfExpressionsToReturn:ge,isInJSFile:ce};if(!!F.length){var q=Z.modifiers?Z.modifiers.end:Z.decorators?e.skipTrivia(c.text,Z.decorators.end):Z.getStart(c),ue=Z.modifiers?{prefix:" "}:{suffix:" "};m.insertModifierAt(c,q,130,ue);for(var ke=function(He){e.forEachChild(He,function Ne(De){if(e.isCallExpression(De)){var Ee=w(De,re);m.replaceNodeWithNodes(c,He,Ee)}else e.isFunctionLike(De)||e.forEachChild(De,Ne)})},de=0,xe=F;de0)return Ie;if(xe){var We=z(V.checker,xe,de);if(C(N,V))return k(We,(ae=N.typeArguments)===null||ae===void 0?void 0:ae[0]);var je=O(c,We,void 0);return c&&c.types.push(xe),je}else return y()}}default:return y()}return e.emptyArray}function z(m,c,f){var N=e.getSynthesizedDeepClone(f);return m.getPromisedTypeOfPromise(c)?e.factory.createAwaitExpression(N):N}function Y(m,c){var f=c.getSignaturesOfType(m,0);return e.lastOrUndefined(f)}function ne(m,c,f,N){for(var V=[],Z=0,S=m;Z0)return}else e.isFunctionLike(ge)||e.forEachChild(ge,ce)})}return N}function H(m,c){var f=[],N;if(e.isFunctionLikeDeclaration(m)){if(m.parameters.length>0){var V=m.parameters[0].name;N=Z(V)}}else e.isIdentifier(m)?N=S(m):e.isPropertyAccessExpression(m)&&e.isIdentifier(m.name)&&(N=S(m.name));if(!N||"identifier"in N&&N.identifier.text==="undefined")return;return N;function Z(ae){if(e.isIdentifier(ae))return S(ae);var F=e.flatMap(ae.elements,function(re){return e.isOmittedExpression(re)?[]:[Z(re.name)]});return A(ae,F)}function S(ae){var F=ge(ae),re=ce(F);if(!re)return b(ae,f);var q=c.synthNamesMap.get(e.getSymbolId(re).toString());return q||b(ae,f)}function ce(ae){return ae.symbol?ae.symbol:c.checker.getSymbolAtLocation(ae)}function ge(ae){return ae.original?ae.original:ae}}function K(m){return m?E(m)?!m.identifier.text:e.every(m.elements,K):!0}function ee(m){return E(m)?m.identifier:m.bindingPattern}function b(m,c){return c===void 0&&(c=[]),{kind:0,identifier:m,types:c,hasBeenDeclared:!1}}function A(m,c,f){return c===void 0&&(c=e.emptyArray),f===void 0&&(f=[]),{kind:1,bindingPattern:m,elements:c,types:f}}function E(m){return m.kind===0}function x(m){return m.kind===1}function C(m,c){return!!m.original&&c.setOfExpressionsToReturn.has(e.getNodeId(m.original))}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){a.registerCodeFix({errorCodes:[e.Diagnostics.File_is_a_CommonJS_module_it_may_be_converted_to_an_ES6_module.code],getCodeActions:function(x){var C=x.sourceFile,m=x.program,c=x.preferences,f=e.textChanges.ChangeTracker.with(x,function(N){var V=g(C,m.getTypeChecker(),N,m.getCompilerOptions().target,e.getQuotePreference(C,c));if(V)for(var Z=0,S=m.getSourceFiles();Z1?[[w(m),D(m)],!0]:[[D(m)],!0]:[[w(m)],!1]}function w(x){return A(void 0,x)}function D(x){return A([e.factory.createExportSpecifier(void 0,"default")],x)}function U(x,C,m){var c=x.left,f=x.right,N=x.parent,V=c.name.text;if((e.isFunctionExpression(f)||e.isArrowFunction(f)||e.isClassExpression(f))&&(!f.name||f.name.text===V)){m.replaceRange(C,{pos:c.getStart(C),end:f.getStart(C)},e.factory.createToken(93),{suffix:" "}),f.name||m.insertName(C,f,V);var Z=e.findChildOfKind(N,26,C);Z&&m.delete(C,Z)}else m.replaceNodeRangeWithNodes(C,c.expression,e.findChildOfKind(c,24,C),[e.factory.createToken(93),e.factory.createToken(85)],{joiner:" ",suffix:" "})}function B(x,C,m){var c=[e.factory.createToken(93)];switch(C.kind){case 211:{var f=C.name;if(f&&f.text!==x)return N()}case 212:return j(x,c,C,m);case 224:return H(x,c,C,m);default:return N()}function N(){return b(c,e.factory.createIdentifier(x),R(C,m))}}function R(x,C){if(!C||!e.some(e.arrayFrom(C.keys()),function(c){return e.rangeContainsRange(x,c)}))return x;return e.isArray(x)?e.getSynthesizedDeepClonesWithReplacements(x,!0,m):e.getSynthesizedDeepCloneWithReplacements(x,!0,m);function m(c){if(c.kind===204){var f=C.get(c);return C.delete(c),f}}}function O(x,C,m,c,f,N){switch(x.kind){case 199:{var V=e.mapAllOrFail(x.elements,function(S){return S.dotDotDotToken||S.initializer||S.propertyName&&!e.isIdentifier(S.propertyName)||!e.isIdentifier(S.name)?void 0:ee(S.propertyName&&S.propertyName.text,S.name.text)});if(V)return E([e.makeImport(void 0,V,C,N)])}case 200:{var Z=M(a.moduleSpecifierToValidIdentifier(C.text,f),c);return E([e.makeImport(e.factory.createIdentifier(Z),void 0,C,N),b(void 0,e.getSynthesizedDeepClone(x),e.factory.createIdentifier(Z))])}case 79:return k(x,C,m,c,N);default:return e.Debug.assertNever(x,"Convert to ES6 module got invalid name kind "+x.kind)}}function k(x,C,m,c,f){for(var N=m.getSymbolAtLocation(x),V=new e.Map,Z=!1,S,ce=0,ge=c.original.get(x.text);ce=e.ModuleKind.ES2015)return He?1:2;if(Ne)return e.isExternalModule(de)||Le?He?1:2:3;for(var De=0,Ee=de.statements;De"),[e.Diagnostics.Convert_function_expression_0_to_arrow_function,se?se.text:e.ANONYMOUS]):(p.replaceNode(P,X,e.factory.createToken(85)),p.insertText(P,se.end," = "),p.insertText(P,y.pos," =>"),[e.Diagnostics.Convert_function_declaration_0_to_arrow_function,se.text])}}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="fixIncorrectNamedTupleSyntax",g=[e.Diagnostics.A_labeled_tuple_element_is_declared_as_optional_with_a_question_mark_after_the_name_and_before_the_colon_rather_than_after_the_type.code,e.Diagnostics.A_labeled_tuple_element_is_declared_as_rest_with_a_before_the_name_rather_than_before_the_type.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(P){var J=P.sourceFile,h=P.span,v=t(J,h.start),I=e.textChanges.ChangeTracker.with(P,function(X){return p(X,J,v)});return[a.createCodeFixAction(d,I,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels,d,e.Diagnostics.Move_labeled_tuple_element_modifiers_to_labels)]},fixIds:[d]});function t(P,J){var h=e.getTokenAtPosition(P,J);return e.findAncestor(h,function(v){return v.kind===195})}function p(P,J,h){if(!!h){for(var v=h.type,I=!1,X=!1;v.kind===183||v.kind===184||v.kind===189;)v.kind===183?I=!0:v.kind===184&&(X=!0),v=v.type;var se=e.factory.updateNamedTupleMember(h,h.dotDotDotToken||(X?e.factory.createToken(25):void 0),h.name,h.questionToken||(I?e.factory.createToken(57):void 0),v);se!==h&&P.replaceNode(J,h,se)}}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="fixSpelling",g=[e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Property_0_may_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_1.code,e.Diagnostics.Could_not_find_name_0_Did_you_mean_1.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_instance_member_this_0.code,e.Diagnostics.Cannot_find_name_0_Did_you_mean_the_static_member_1_0.code,e.Diagnostics._0_has_no_exported_member_named_1_Did_you_mean_2.code,e.Diagnostics.This_member_cannot_have_an_override_modifier_because_it_is_not_declared_in_the_base_class_0_Did_you_mean_1.code,e.Diagnostics.No_overload_matches_this_call.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(h){var v=h.sourceFile,I=h.errorCode,X=t(v,h.span.start,h,I);if(!!X){var se=X.node,y=X.suggestedSymbol,w=h.host.getCompilationSettings().target,D=e.textChanges.ChangeTracker.with(h,function(U){return p(U,v,se,y,w)});return[a.createCodeFixAction("spelling",D,[e.Diagnostics.Change_spelling_to_0,e.symbolName(y)],d,e.Diagnostics.Fix_all_detected_spelling_errors)]}},fixIds:[d],getAllCodeActions:function(h){return a.codeFixAll(h,g,function(v,I){var X=t(I.file,I.start,h,I.code),se=h.host.getCompilationSettings().target;X&&p(v,h.sourceFile,X.node,X.suggestedSymbol,se)})}});function t(h,v,I,X){var se=e.getTokenAtPosition(h,v),y=se.parent;if(!((X===e.Diagnostics.No_overload_matches_this_call.code||X===e.Diagnostics.Type_0_is_not_assignable_to_type_1.code)&&!e.isJsxAttribute(y))){var w=I.program.getTypeChecker(),D;if(e.isPropertyAccessExpression(y)&&y.name===se){e.Debug.assert(e.isMemberName(se),"Expected an identifier for spelling (property access)");var U=w.getTypeAtLocation(y.expression);y.flags&32&&(U=w.getNonNullableType(U)),D=w.getSuggestedSymbolForNonexistentProperty(se,U)}else if(e.isQualifiedName(y)&&y.right===se){var B=w.getSymbolAtLocation(y.left);B&&B.flags&1536&&(D=w.getSuggestedSymbolForNonexistentModule(y.right,B))}else if(e.isImportSpecifier(y)&&y.name===se){e.Debug.assertNode(se,e.isIdentifier,"Expected an identifier for spelling (import)");var R=e.findAncestor(se,e.isImportDeclaration),O=J(h,I,R);O&&O.symbol&&(D=w.getSuggestedSymbolForNonexistentModule(se,O.symbol))}else if(e.isJsxAttribute(y)&&y.name===se){e.Debug.assertNode(se,e.isIdentifier,"Expected an identifier for JSX attribute");var k=e.findAncestor(se,e.isJsxOpeningLikeElement),M=w.getContextualTypeForArgumentAtIndex(k,0);D=w.getSuggestedSymbolForNonexistentJSXAttribute(se,M)}else if(e.hasSyntacticModifier(y,16384)&&e.isClassElement(y)&&y.name===se){var z=e.findAncestor(se,e.isClassLike),Y=z?e.getEffectiveBaseTypeNode(z):void 0,ne=Y?w.getTypeAtLocation(Y):void 0;ne&&(D=w.getSuggestedSymbolForNonexistentClassMember(e.getTextOfNode(se),ne))}else{var j=e.getMeaningFromLocation(se),H=e.getTextOfNode(se);e.Debug.assert(H!==void 0,"name should be defined"),D=w.getSuggestedSymbolForNonexistentSymbol(se,H,P(j))}return D===void 0?void 0:{node:se,suggestedSymbol:D}}}function p(h,v,I,X,se){var y=e.symbolName(X);if(!e.isIdentifierText(y,se)&&e.isPropertyAccessExpression(I.parent)){var w=X.valueDeclaration;w&&e.isNamedDeclaration(w)&&e.isPrivateIdentifier(w.name)?h.replaceNode(v,I,e.factory.createIdentifier(y)):h.replaceNode(v,I.parent,e.factory.createElementAccessExpression(I.parent.expression,e.factory.createStringLiteral(y)))}else h.replaceNode(v,I,e.factory.createIdentifier(y))}function P(h){var v=0;return h&4&&(v|=1920),h&2&&(v|=788968),h&1&&(v|=111551),v}function J(h,v,I){if(!(!I||!e.isStringLiteralLike(I.moduleSpecifier))){var X=e.getResolvedModule(h,I.moduleSpecifier.text);if(!!X)return v.program.getSourceFile(X.resolvedFileName)}}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="returnValueCorrect",g="fixAddReturnStatement",t="fixRemoveBracesFromArrowFunctionBody",p="fixWrapTheBlockWithParen",P=[e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code,e.Diagnostics.Type_0_is_not_assignable_to_type_1.code,e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code],J;(function(O){O[O.MissingReturnStatement=0]="MissingReturnStatement",O[O.MissingParentheses=1]="MissingParentheses"})(J||(J={})),a.registerCodeFix({errorCodes:P,fixIds:[g,t,p],getCodeActions:function(O){var k=O.program,M=O.sourceFile,z=O.span.start,Y=O.errorCode,ne=X(k.getTypeChecker(),M,z,Y);if(!!ne)return ne.kind===J.MissingReturnStatement?e.append([U(O,ne.expression,ne.statement)],e.isArrowFunction(ne.declaration)?B(O,ne.declaration,ne.expression,ne.commentSource):void 0):[R(O,ne.declaration,ne.expression)]},getAllCodeActions:function(O){return a.codeFixAll(O,P,function(k,M){var z=X(O.program.getTypeChecker(),M.file,M.start,M.code);if(!!z)switch(O.fixId){case g:y(k,M.file,z.expression,z.statement);break;case t:if(!e.isArrowFunction(z.declaration))return;w(k,M.file,z.declaration,z.expression,z.commentSource,!1);break;case p:if(!e.isArrowFunction(z.declaration))return;D(k,M.file,z.declaration,z.expression);break;default:e.Debug.fail(JSON.stringify(O.fixId))}})}});function h(O,k,M){var z=O.createSymbol(4,k.escapedText);z.type=O.getTypeAtLocation(M);var Y=e.createSymbolTable([z]);return O.createAnonymousType(void 0,Y,[],[],[])}function v(O,k,M,z){if(!(!k.body||!e.isBlock(k.body)||e.length(k.body.statements)!==1)){var Y=e.first(k.body.statements);if(e.isExpressionStatement(Y)&&I(O,k,O.getTypeAtLocation(Y.expression),M,z))return{declaration:k,kind:J.MissingReturnStatement,expression:Y.expression,statement:Y,commentSource:Y.expression};if(e.isLabeledStatement(Y)&&e.isExpressionStatement(Y.statement)){var ne=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(Y.label,Y.statement.expression)]),j=h(O,Y.label,Y.statement.expression);if(I(O,k,j,M,z))return e.isArrowFunction(k)?{declaration:k,kind:J.MissingParentheses,expression:ne,statement:Y,commentSource:Y.statement.expression}:{declaration:k,kind:J.MissingReturnStatement,expression:ne,statement:Y,commentSource:Y.statement.expression}}else if(e.isBlock(Y)&&e.length(Y.statements)===1){var H=e.first(Y.statements);if(e.isLabeledStatement(H)&&e.isExpressionStatement(H.statement)){var ne=e.factory.createObjectLiteralExpression([e.factory.createPropertyAssignment(H.label,H.statement.expression)]),j=h(O,H.label,H.statement.expression);if(I(O,k,j,M,z))return{declaration:k,kind:J.MissingReturnStatement,expression:ne,statement:Y,commentSource:H}}}}}function I(O,k,M,z,Y){if(Y){var ne=O.getSignatureFromDeclaration(k);if(ne){e.hasSyntacticModifier(k,256)&&(M=O.createPromiseType(M));var j=O.createSignature(k,ne.typeParameters,ne.thisParameter,ne.parameters,M,void 0,ne.minArgumentCount,ne.flags);M=O.createAnonymousType(void 0,e.createSymbolTable(),[j],[],[])}else M=O.getAnyType()}return O.isTypeAssignableTo(M,z)}function X(O,k,M,z){var Y=e.getTokenAtPosition(k,M);if(!!Y.parent){var ne=e.findAncestor(Y.parent,e.isFunctionLikeDeclaration);switch(z){case e.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value.code:return!ne||!ne.body||!ne.type||!e.rangeContainsRange(ne.type,Y)?void 0:v(O,ne,O.getTypeFromTypeNode(ne.type),!1);case e.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1.code:if(!ne||!e.isCallExpression(ne.parent)||!ne.body)return;var j=ne.parent.arguments.indexOf(ne),H=O.getContextualTypeForArgumentAtIndex(ne.parent,j);return H?v(O,ne,H,!0):void 0;case e.Diagnostics.Type_0_is_not_assignable_to_type_1.code:if(!e.isDeclarationName(Y)||!e.isVariableLike(Y.parent)&&!e.isJsxAttribute(Y.parent))return;var K=se(Y.parent);return!K||!e.isFunctionLikeDeclaration(K)||!K.body?void 0:v(O,K,O.getTypeAtLocation(Y.parent),!0)}}}function se(O){switch(O.kind){case 252:case 162:case 201:case 165:case 291:return O.initializer;case 283:return O.initializer&&(e.isJsxExpression(O.initializer)?O.initializer.expression:void 0);case 292:case 164:case 294:case 342:case 335:return}}function y(O,k,M,z){e.suppressLeadingAndTrailingTrivia(M);var Y=e.probablyUsesSemicolons(k);O.replaceNode(k,z,e.factory.createReturnStatement(M),{leadingTriviaOption:e.textChanges.LeadingTriviaOption.Exclude,trailingTriviaOption:e.textChanges.TrailingTriviaOption.Exclude,suffix:Y?";":void 0})}function w(O,k,M,z,Y,ne){var j=ne||e.needsParentheses(z)?e.factory.createParenthesizedExpression(z):z;e.suppressLeadingAndTrailingTrivia(Y),e.copyComments(Y,j),O.replaceNode(k,M.body,j)}function D(O,k,M,z){O.replaceNode(k,M.body,e.factory.createParenthesizedExpression(z))}function U(O,k,M){var z=e.textChanges.ChangeTracker.with(O,function(Y){return y(Y,O.sourceFile,k,M)});return a.createCodeFixAction(d,z,e.Diagnostics.Add_a_return_statement,g,e.Diagnostics.Add_all_missing_return_statement)}function B(O,k,M,z){var Y=e.textChanges.ChangeTracker.with(O,function(ne){return w(ne,O.sourceFile,k,M,z,!1)});return a.createCodeFixAction(d,Y,e.Diagnostics.Remove_braces_from_arrow_function_body,t,e.Diagnostics.Remove_braces_from_all_arrow_function_bodies_with_relevant_issues)}function R(O,k,M){var z=e.textChanges.ChangeTracker.with(O,function(Y){return D(Y,O.sourceFile,k,M)});return a.createCodeFixAction(d,z,e.Diagnostics.Wrap_the_following_body_with_parentheses_which_should_be_an_object_literal,p,e.Diagnostics.Wrap_all_object_literal_with_parentheses)}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="fixMissingMember",g="fixMissingProperties",t="fixMissingAttributes",p="fixMissingFunctionDeclaration",P=[e.Diagnostics.Property_0_does_not_exist_on_type_1.code,e.Diagnostics.Property_0_does_not_exist_on_type_1_Did_you_mean_2.code,e.Diagnostics.Property_0_is_missing_in_type_1_but_required_in_type_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2.code,e.Diagnostics.Type_0_is_missing_the_following_properties_from_type_1_Colon_2_and_3_more.code,e.Diagnostics.Cannot_find_name_0.code];a.registerCodeFix({errorCodes:P,getCodeActions:function(b){var A=b.program.getTypeChecker(),E=h(b.sourceFile,b.span.start,A,b.program);if(!!E){if(E.kind===3){var x=e.textChanges.ChangeTracker.with(b,function(C){return ne(C,b,E)});return[a.createCodeFixAction(g,x,e.Diagnostics.Add_missing_properties,g,e.Diagnostics.Add_all_missing_properties)]}if(E.kind===4){var x=e.textChanges.ChangeTracker.with(b,function(m){return Y(m,b,E)});return[a.createCodeFixAction(t,x,e.Diagnostics.Add_missing_attributes,t,e.Diagnostics.Add_all_missing_attributes)]}if(E.kind===2){var x=e.textChanges.ChangeTracker.with(b,function(m){return z(m,b,E)});return[a.createCodeFixAction(p,x,[e.Diagnostics.Add_missing_function_declaration_0,E.token.text],p,e.Diagnostics.Add_all_missing_function_declarations)]}if(E.kind===0){var x=e.textChanges.ChangeTracker.with(b,function(m){return M(m,b.program.getTypeChecker(),E)});return[a.createCodeFixAction(d,x,[e.Diagnostics.Add_missing_enum_member_0,E.token.text],d,e.Diagnostics.Add_all_missing_members)]}return e.concatenate(O(b,E),I(b,E))}},fixIds:[d,p,g,t],getAllCodeActions:function(b){var A=b.program,E=b.fixId,x=A.getTypeChecker(),C=new e.Map,m=new e.Map;return a.createCombinedCodeActions(e.textChanges.ChangeTracker.with(b,function(c){a.eachDiagnostic(b,P,function(f){var N=h(f.file,f.start,x,b.program);if(!(!N||!e.addToSeen(C,e.getNodeId(N.parentDeclaration)+"#"+N.token.text))){if(E===p&&N.kind===2)z(c,b,N);else if(E===g&&N.kind===3)ne(c,b,N);else if(E===t&&N.kind===4)Y(c,b,N);else if(N.kind===0&&M(c,x,N),N.kind===1){var V=N.parentDeclaration,Z=N.token,S=e.getOrUpdate(m,V,function(){return[]});S.some(function(ce){return ce.token.text===Z.text})||S.push(N)}}}),m.forEach(function(f,N){for(var V=a.getAllSupers(N,x),Z=function(ae){if(V.some(function(Le){var He=m.get(Le);return!!He&&He.some(function(Ne){var De=Ne.token;return De.text===ae.token.text})}))return"continue";var F=ae.parentDeclaration,re=ae.declSourceFile,q=ae.modifierFlags,ue=ae.token,ke=ae.call,de=ae.isJSFile;if(ke&&!e.isPrivateIdentifier(ue))k(b,c,ke,ue,q&32,F,re);else if(de&&!e.isInterfaceDeclaration(F))se(c,re,F,ue,!!(q&32));else{var xe=D(A.getTypeChecker(),F,ue);U(c,re,F,ue.text,xe,q&32)}},S=0,ce=f;S=e.ModuleKind.ES2015&&P99;if(I){var h=e.textChanges.ChangeTracker.with(d,function(se){var y=e.getTsConfigObjectLiteralExpression(t);if(!!y){var w=[["target",e.factory.createStringLiteral("es2017")]];P===e.ModuleKind.CommonJS&&w.push(["module",e.factory.createStringLiteral("commonjs")]),a.setJsonCompilerOptionValues(se,t,w)}});p.push(a.createCodeFixActionWithoutFixAll("fixTargetOption",h,[e.Diagnostics.Set_the_target_option_in_your_configuration_file_to_0,"es2017"]))}return p.length?p:void 0}}})})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="fixPropertyAssignment",g=[e.Diagnostics.Did_you_mean_to_use_a_Colon_An_can_only_follow_a_property_name_when_the_containing_object_literal_is_part_of_a_destructuring_pattern.code];a.registerCodeFix({errorCodes:g,fixIds:[d],getCodeActions:function(P){var J=P.sourceFile,h=P.span,v=p(J,h.start),I=e.textChanges.ChangeTracker.with(P,function(X){return t(X,P.sourceFile,v)});return[a.createCodeFixAction(d,I,[e.Diagnostics.Change_0_to_1,"=",":"],d,[e.Diagnostics.Switch_each_misused_0_to_1,"=",":"])]},getAllCodeActions:function(P){return a.codeFixAll(P,g,function(J,h){return t(J,h.file,p(h.file,h.start))})}});function t(P,J,h){P.replaceNode(J,h,e.factory.createPropertyAssignment(h.name,h.objectAssignmentInitializer))}function p(P,J){return e.cast(e.getTokenAtPosition(P,J).parent,e.isShorthandPropertyAssignment)}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="extendsInterfaceBecomesImplements",g=[e.Diagnostics.Cannot_extend_an_interface_0_Did_you_mean_implements.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(P){var J=P.sourceFile,h=t(J,P.span.start);if(!!h){var v=h.extendsToken,I=h.heritageClauses,X=e.textChanges.ChangeTracker.with(P,function(se){return p(se,J,v,I)});return[a.createCodeFixAction(d,X,e.Diagnostics.Change_extends_to_implements,d,e.Diagnostics.Change_all_extended_interfaces_to_implements)]}},fixIds:[d],getAllCodeActions:function(P){return a.codeFixAll(P,g,function(J,h){var v=t(h.file,h.start);v&&p(J,h.file,v.extendsToken,v.heritageClauses)})}});function t(P,J){var h=e.getTokenAtPosition(P,J),v=e.getContainingClass(h).heritageClauses,I=v[0].getFirstToken();return I.kind===94?{extendsToken:I,heritageClauses:v}:void 0}function p(P,J,h,v){if(P.replaceNode(J,h,e.factory.createToken(117)),v.length===2&&v[0].token===94&&v[1].token===117){var I=v[1].getFirstToken(),X=I.getFullStart();P.replaceRange(J,{pos:X,end:X},e.factory.createToken(27));for(var se=J.text,y=I.end;y":">","}":"}"};function P(h){return e.hasProperty(p,h)}function J(h,v,I,X,se){var y=I.getText()[X];if(!!P(y)){var w=se?p[y]:"{"+e.quote(I,v,y)+"}";h.replaceRangeWithText(I,{pos:X,end:X+1},w)}}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="unusedIdentifier",g="unusedIdentifier_prefix",t="unusedIdentifier_delete",p="unusedIdentifier_deleteImports",P="unusedIdentifier_infer",J=[e.Diagnostics._0_is_declared_but_its_value_is_never_read.code,e.Diagnostics._0_is_declared_but_never_used.code,e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code,e.Diagnostics.All_imports_in_import_declaration_are_unused.code,e.Diagnostics.All_destructured_elements_are_unused.code,e.Diagnostics.All_variables_are_unused.code,e.Diagnostics.All_type_parameters_are_unused.code];a.registerCodeFix({errorCodes:J,getCodeActions:function(H){var K=H.errorCode,ee=H.sourceFile,b=H.program,A=H.cancellationToken,E=b.getTypeChecker(),x=b.getSourceFiles(),C=e.getTokenAtPosition(ee,H.span.start);if(e.isJSDocTemplateTag(C))return[v(e.textChanges.ChangeTracker.with(H,function(ge){return ge.delete(ee,C)}),e.Diagnostics.Remove_template_tag)];if(C.kind===29){var m=e.textChanges.ChangeTracker.with(H,function(ge){return I(ge,ee,C)});return[v(m,e.Diagnostics.Remove_type_parameters)]}var c=se(C);if(c){var m=e.textChanges.ChangeTracker.with(H,function(ae){return ae.delete(ee,c)});return[a.createCodeFixAction(d,m,[e.Diagnostics.Remove_import_from_0,e.showModuleSpecifier(c)],p,e.Diagnostics.Delete_all_unused_imports)]}else if(X(C)){var f=e.textChanges.ChangeTracker.with(H,function(ge){return R(ee,C,ge,E,x,b,A,!1)});if(f.length)return[a.createCodeFixAction(d,f,[e.Diagnostics.Remove_unused_declaration_for_Colon_0,C.getText(ee)],p,e.Diagnostics.Delete_all_unused_imports)]}if(e.isObjectBindingPattern(C.parent)||e.isArrayBindingPattern(C.parent)){if(e.isParameter(C.parent.parent)){var N=C.parent.elements,V=[N.length>1?e.Diagnostics.Remove_unused_declarations_for_Colon_0:e.Diagnostics.Remove_unused_declaration_for_Colon_0,e.map(N,function(ge){return ge.getText(ee)}).join(", ")];return[v(e.textChanges.ChangeTracker.with(H,function(ge){return D(ge,ee,C.parent)}),V)]}return[v(e.textChanges.ChangeTracker.with(H,function(ge){return ge.delete(ee,C.parent.parent)}),e.Diagnostics.Remove_unused_destructuring_declaration)]}if(y(ee,C))return[v(e.textChanges.ChangeTracker.with(H,function(ge){return w(ge,ee,C.parent)}),e.Diagnostics.Remove_variable_statement)];var Z=[];if(C.kind===136){var m=e.textChanges.ChangeTracker.with(H,function(ae){return h(ae,ee,C)}),S=e.cast(C.parent,e.isInferTypeNode).typeParameter.name.text;Z.push(a.createCodeFixAction(d,m,[e.Diagnostics.Replace_infer_0_with_unknown,S],P,e.Diagnostics.Replace_all_unused_infer_with_unknown))}else{var f=e.textChanges.ChangeTracker.with(H,function(ae){return R(ee,C,ae,E,x,b,A,!1)});if(f.length){var S=e.isComputedPropertyName(C.parent)?C.parent:C;Z.push(v(f,[e.Diagnostics.Remove_unused_declaration_for_Colon_0,S.getText(ee)]))}}var ce=e.textChanges.ChangeTracker.with(H,function(ge){return U(ge,K,ee,C)});return ce.length&&Z.push(a.createCodeFixAction(d,ce,[e.Diagnostics.Prefix_0_with_an_underscore,C.getText(ee)],g,e.Diagnostics.Prefix_all_unused_declarations_with_where_possible)),Z},fixIds:[g,t,p,P],getAllCodeActions:function(H){var K=H.sourceFile,ee=H.program,b=H.cancellationToken,A=ee.getTypeChecker(),E=ee.getSourceFiles();return a.codeFixAll(H,J,function(x,C){var m=e.getTokenAtPosition(K,C.start);switch(H.fixId){case g:U(x,C.code,K,m);break;case p:{var c=se(m);c?x.delete(K,c):X(m)&&R(K,m,x,A,E,ee,b,!0);break}case t:{if(m.kind===136||X(m))break;if(e.isJSDocTemplateTag(m))x.delete(K,m);else if(m.kind===29)I(x,K,m);else if(e.isObjectBindingPattern(m.parent)){if(m.parent.parent.initializer)break;(!e.isParameter(m.parent.parent)||M(m.parent.parent,A,E))&&x.delete(K,m.parent.parent)}else{if(e.isArrayBindingPattern(m.parent.parent)&&m.parent.parent.parent.initializer)break;y(K,m)?w(x,K,m.parent):R(K,m,x,A,E,ee,b,!0)}break}case P:m.kind===136&&h(x,K,m);break;default:e.Debug.fail(JSON.stringify(H.fixId))}})}});function h(H,K,ee){H.replaceNode(K,ee.parent,e.factory.createKeywordTypeNode(153))}function v(H,K){return a.createCodeFixAction(d,H,K,t,e.Diagnostics.Delete_all_unused_declarations)}function I(H,K,ee){H.delete(K,e.Debug.checkDefined(e.cast(ee.parent,e.isDeclarationWithTypeParameterChildren).typeParameters,"The type parameter to delete should exist"))}function X(H){return H.kind===100||H.kind===79&&(H.parent.kind===268||H.parent.kind===265)}function se(H){return H.kind===100?e.tryCast(H.parent,e.isImportDeclaration):void 0}function y(H,K){return e.isVariableDeclarationList(K.parent)&&e.first(K.parent.getChildren(H))===K}function w(H,K,ee){H.delete(K,ee.parent.kind===235?ee.parent:ee)}function D(H,K,ee){e.forEach(ee.elements,function(b){return H.delete(K,b)})}function U(H,K,ee,b){K!==e.Diagnostics.Property_0_is_declared_but_its_value_is_never_read.code&&(b.kind===136&&(b=e.cast(b.parent,e.isInferTypeNode).typeParameter.name),e.isIdentifier(b)&&B(b)&&(H.replaceNode(ee,b,e.factory.createIdentifier("_"+b.text)),e.isParameter(b.parent)&&e.getJSDocParameterTags(b.parent).forEach(function(A){e.isIdentifier(A.name)&&H.replaceNode(ee,A.name,e.factory.createIdentifier("_"+A.name.text))})))}function B(H){switch(H.parent.kind){case 162:case 161:return!0;case 252:{var K=H.parent;switch(K.parent.parent.kind){case 242:case 241:return!0}}}return!1}function R(H,K,ee,b,A,E,x,C){O(K,ee,H,b,A,E,x,C),e.isIdentifier(K)&&e.FindAllReferences.Core.eachSymbolReferenceInFile(K,b,H,function(m){e.isPropertyAccessExpression(m.parent)&&m.parent.name===m&&(m=m.parent),!C&&j(m)&&ee.delete(H,m.parent.parent)})}function O(H,K,ee,b,A,E,x,C){var m=H.parent;if(e.isParameter(m))k(K,ee,m,b,A,E,x,C);else if(!(C&&e.isIdentifier(H)&&e.FindAllReferences.Core.isSymbolReferencedInFile(H,b,ee))){var c=e.isImportClause(m)?H:e.isComputedPropertyName(m)?m.parent:m;e.Debug.assert(c!==ee,"should not delete whole source file"),K.delete(ee,c)}}function k(H,K,ee,b,A,E,x,C){C===void 0&&(C=!1),z(b,K,ee,A,E,x,C)&&(ee.modifiers&&ee.modifiers.length>0&&(!e.isIdentifier(ee.name)||e.FindAllReferences.Core.isSymbolReferencedInFile(ee.name,b,K))?ee.modifiers.forEach(function(m){return H.deleteModifier(K,m)}):!ee.initializer&&M(ee,b,A)&&H.delete(K,ee))}function M(H,K,ee){var b=H.parent.parameters.indexOf(H);return!e.FindAllReferences.Core.someSignatureUsage(H.parent,ee,K,function(A,E){return!E||E.arguments.length>b})}function z(H,K,ee,b,A,E,x){var C=ee.parent;switch(C.kind){case 167:case 169:var m=C.parameters.indexOf(ee),c=e.isMethodDeclaration(C)?C.name:C,f=e.FindAllReferences.Core.getReferencedSymbolsForNode(C.pos,c,A,b,E);if(f)for(var N=0,V=f;Nm,F=e.isPropertyAccessExpression(ge.node.parent)&&e.isSuperKeyword(ge.node.parent.expression)&&e.isCallExpression(ge.node.parent.parent)&&ge.node.parent.parent.arguments.length>m,re=(e.isMethodDeclaration(ge.node.parent)||e.isMethodSignature(ge.node.parent))&&ge.node.parent!==ee.parent&&ge.node.parent.parameters.length>m;if(ae||F||re)return!1}}return!0;case 254:return C.name&&Y(H,K,C.name)?ne(C,ee,x):!0;case 211:case 212:return ne(C,ee,x);case 171:return!1;default:return e.Debug.failBadSyntaxKind(C)}}function Y(H,K,ee){return!!e.FindAllReferences.Core.eachSymbolReferenceInFile(ee,H,K,function(b){return e.isIdentifier(b)&&e.isCallExpression(b.parent)&&b.parent.arguments.indexOf(b)>=0})}function ne(H,K,ee){var b=H.parameters,A=b.indexOf(K);return e.Debug.assert(A!==-1,"The parameter should already be in the list"),ee?b.slice(A+1).every(function(E){return e.isIdentifier(E.name)&&!E.symbol.isReferenced}):A===b.length-1}function j(H){return(e.isBinaryExpression(H.parent)&&H.parent.left===H||(e.isPostfixUnaryExpression(H.parent)||e.isPrefixUnaryExpression(H.parent))&&H.parent.operand===H)&&e.isExpressionStatement(H.parent.parent)}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="fixUnreachableCode",g=[e.Diagnostics.Unreachable_code_detected.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(P){var J=e.textChanges.ChangeTracker.with(P,function(h){return t(h,P.sourceFile,P.span.start,P.span.length,P.errorCode)});return[a.createCodeFixAction(d,J,e.Diagnostics.Remove_unreachable_code,d,e.Diagnostics.Remove_all_unreachable_code)]},fixIds:[d],getAllCodeActions:function(P){return a.codeFixAll(P,g,function(J,h){return t(J,h.file,h.start,h.length,h.code)})}});function t(P,J,h,v,I){var X=e.getTokenAtPosition(J,h),se=e.findAncestor(X,e.isStatement);if(se.getStart(J)!==X.getStart(J)){var y=JSON.stringify({statementKind:e.Debug.formatSyntaxKind(se.kind),tokenKind:e.Debug.formatSyntaxKind(X.kind),errorCode:I,start:h,length:v});e.Debug.fail("Token and statement should start at the same point. "+y)}var w=(e.isBlock(se.parent)?se.parent:se).parent;if(!e.isBlock(se.parent)||se===e.first(se.parent.statements))switch(w.kind){case 237:if(w.elseStatement){if(e.isBlock(se.parent))break;P.replaceNode(J,se,e.factory.createBlock(e.emptyArray));return}case 239:case 240:P.delete(J,w);return}if(e.isBlock(se.parent)){var D=h+v,U=e.Debug.checkDefined(p(e.sliceAfter(se.parent.statements,se),function(B){return B.posLe.length){var He=A.getSignatureFromDeclaration(b[b.length-1]);Ee(Z,He,c,C,se(Z))}else e.Debug.assert(b.length===Le.length,"Declarations and signatures should match count"),ee(v(A,j,Y,Le,C,N,c,Z));break}function Ee(We,ye,Ie,je,Sn){var Me=p(167,j,We,ye,Sn,je,Ie,N,Y,K);Me&&ee(Me)}}function p(z,Y,ne,j,H,K,ee,b,A,E){var x=Y.program,C=x.getTypeChecker(),m=e.getEmitScriptTarget(x.getCompilerOptions()),c=1|1073741824|256|(ne===0?268435456:0),f=C.signatureToSignatureDeclaration(j,z,A,c,g(Y));if(!!f){var N=f.typeParameters,V=f.parameters,Z=f.type;if(E){if(N){var S=e.sameMap(N,function(re){var q=re.constraint,ue=re.default;if(q){var ke=O(q,m);ke&&(q=ke.typeNode,M(E,ke.symbols))}if(ue){var ke=O(ue,m);ke&&(ue=ke.typeNode,M(E,ke.symbols))}return e.factory.updateTypeParameterDeclaration(re,re.name,q,ue)});N!==S&&(N=e.setTextRange(e.factory.createNodeArray(S,N.hasTrailingComma),N))}var ce=e.sameMap(V,function(re){var q=O(re.type,m),ue=re.type;return q&&(ue=q.typeNode,M(E,q.symbols)),e.factory.updateParameterDeclaration(re,re.decorators,re.modifiers,re.dotDotDotToken,re.name,re.questionToken,ue,re.initializer)});if(V!==ce&&(V=e.setTextRange(e.factory.createNodeArray(ce,V.hasTrailingComma),V)),Z){var ge=O(Z,m);ge&&(Z=ge.typeNode,M(E,ge.symbols))}}var ae=b?e.factory.createToken(57):void 0,F=f.asteriskToken;if(e.isFunctionExpression(f))return e.factory.updateFunctionExpression(f,ee,f.asteriskToken,e.tryCast(K,e.isIdentifier),N,V,Z,H!=null?H:f.body);if(e.isArrowFunction(f))return e.factory.updateArrowFunction(f,ee,N,V,Z,f.equalsGreaterThanToken,H!=null?H:f.body);if(e.isMethodDeclaration(f))return e.factory.updateMethodDeclaration(f,void 0,ee,F,K!=null?K:e.factory.createIdentifier(""),ae,N,V,Z,H)}}a.createSignatureDeclarationFromSignature=p;function P(z,Y,ne,j,H,K,ee){var b=e.getQuotePreference(Y.sourceFile,Y.preferences),A=e.getEmitScriptTarget(Y.program.getCompilerOptions()),E=g(Y),x=Y.program.getTypeChecker(),C=e.isInJSFile(ee),m=j.typeArguments,c=j.arguments,f=j.parent,N=C?void 0:x.getContextualType(j),V=e.map(c,function(re){return e.isIdentifier(re)?re.text:e.isPropertyAccessExpression(re)&&e.isIdentifier(re.name)?re.name.text:void 0}),Z=C?[]:e.map(c,function(re){return J(x,ne,x.getBaseTypeOfLiteralType(x.getTypeAtLocation(re)),ee,A,void 0,E)}),S=K?e.factory.createNodeArray(e.factory.createModifiersFromModifierFlags(K)):void 0,ce=e.isYieldExpression(f)?e.factory.createToken(41):void 0,ge=C||m===void 0?void 0:e.map(m,function(re,q){return e.factory.createTypeParameterDeclaration(84+m.length-1<=90?String.fromCharCode(84+q):"T"+q)}),ae=h(c.length,V,Z,void 0,C),F=C||N===void 0?void 0:x.typeToTypeNode(N,ee,void 0,E);return z===167?e.factory.createMethodDeclaration(void 0,S,ce,H,void 0,ge,ae,F,e.isInterfaceDeclaration(ee)?void 0:se(b)):e.factory.createFunctionDeclaration(void 0,S,ce,H,ge,ae,F,y(e.Diagnostics.Function_not_implemented.message,b))}a.createSignatureDeclarationFromCallExpression=P;function J(z,Y,ne,j,H,K,ee){var b=z.typeToTypeNode(ne,j,K,ee);if(b&&e.isImportTypeNode(b)){var A=O(b,H);A&&(M(Y,A.symbols),b=A.typeNode)}return e.getSynthesizedDeepClone(b)}a.typeToAutoImportableTypeNode=J;function h(z,Y,ne,j,H){for(var K=[],ee=0;ee=j?e.factory.createToken(57):void 0,H?void 0:ne&&ne[ee]||e.factory.createKeywordTypeNode(129),void 0);K.push(b)}return K}function v(z,Y,ne,j,H,K,ee,b){for(var A=j[0],E=j[0].minArgumentCount,x=!1,C=0,m=j;C=A.parameters.length&&(!e.signatureHasRestParameter(c)||e.signatureHasRestParameter(A))&&(A=c)}var f=A.parameters.length-(e.signatureHasRestParameter(A)?1:0),N=A.parameters.map(function(ce){return ce.name}),V=h(f,N,void 0,E,!1);if(x){var Z=e.factory.createArrayTypeNode(e.factory.createKeywordTypeNode(129)),S=e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),N[f]||"rest",f>=E?e.factory.createToken(57):void 0,Z,void 0);V.push(S)}return X(ee,H,K,void 0,V,I(j,z,Y,ne),b)}function I(z,Y,ne,j){if(e.length(z)){var H=Y.getUnionType(e.map(z,Y.getReturnTypeOfSignature));return Y.typeToTypeNode(H,j,void 0,g(ne))}}function X(z,Y,ne,j,H,K,ee){return e.factory.createMethodDeclaration(void 0,z,void 0,Y,ne?e.factory.createToken(57):void 0,j,H,K,se(ee))}function se(z){return y(e.Diagnostics.Method_not_implemented.message,z)}function y(z,Y){return e.factory.createBlock([e.factory.createThrowStatement(e.factory.createNewExpression(e.factory.createIdentifier("Error"),void 0,[e.factory.createStringLiteral(z,Y===0)]))],!0)}a.createStubbedBody=y;function w(z){if(z&4)return e.factory.createToken(123);if(z&16)return e.factory.createToken(122)}function D(z,Y,ne){var j=e.getTsConfigObjectLiteralExpression(Y);if(!!j){var H=R(j,"compilerOptions");if(H===void 0){z.insertNodeAtObjectStart(Y,j,B("compilerOptions",e.factory.createObjectLiteralExpression(ne.map(function(m){var c=m[0],f=m[1];return B(c,f)}),!0)));return}var K=H.initializer;if(!!e.isObjectLiteralExpression(K))for(var ee=0,b=ne;ee0)return[a.createCodeFixAction(d,P,e.Diagnostics.Convert_to_a_bigint_numeric_literal,d,e.Diagnostics.Convert_all_to_bigint_numeric_literals)]},fixIds:[d],getAllCodeActions:function(p){return a.codeFixAll(p,g,function(P,J){return t(P,J.file,J)})}});function t(p,P,J){var h=e.tryCast(e.getTokenAtPosition(P,J.start),e.isNumericLiteral);if(!!h){var v=h.getText(P)+"n";p.replaceNode(P,h,e.factory.createBigIntLiteral(v))}}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="fixAddModuleReferTypeMissingTypeof",g=d,t=[e.Diagnostics.Module_0_does_not_refer_to_a_type_but_is_used_as_a_type_here_Did_you_mean_typeof_import_0.code];a.registerCodeFix({errorCodes:t,getCodeActions:function(J){var h=J.sourceFile,v=J.span,I=p(h,v.start),X=e.textChanges.ChangeTracker.with(J,function(se){return P(se,h,I)});return[a.createCodeFixAction(g,X,e.Diagnostics.Add_missing_typeof,g,e.Diagnostics.Add_missing_typeof)]},fixIds:[g],getAllCodeActions:function(J){return a.codeFixAll(J,t,function(h,v){return P(h,J.sourceFile,p(v.file,v.start))})}});function p(J,h){var v=e.getTokenAtPosition(J,h);return e.Debug.assert(v.kind===100,"This token should be an ImportKeyword"),e.Debug.assert(v.parent.kind===198,"Token parent should be an ImportType"),v.parent}function P(J,h,v){var I=e.factory.updateImportTypeNode(v,v.argument,v.qualifier,v.typeArguments,!0);J.replaceNode(h,v,I)}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="wrapJsxInFragment",g=[e.Diagnostics.JSX_expressions_must_have_one_parent_element.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(J){var h=J.sourceFile,v=J.span,I=t(h,v.start);if(!!I){var X=e.textChanges.ChangeTracker.with(J,function(se){return p(se,h,I)});return[a.createCodeFixAction(d,X,e.Diagnostics.Wrap_in_JSX_fragment,d,e.Diagnostics.Wrap_all_unparented_JSX_in_JSX_fragment)]}},fixIds:[d],getAllCodeActions:function(J){return a.codeFixAll(J,g,function(h,v){var I=t(J.sourceFile,v.start);!I||p(h,J.sourceFile,I)})}});function t(J,h){var v=e.getTokenAtPosition(J,h),I=v.parent,X=I.parent;if(!(!e.isBinaryExpression(X)&&(X=X.parent,!e.isBinaryExpression(X)))&&!!e.nodeIsMissing(X.operatorToken))return X}function p(J,h,v){var I=P(v);I&&J.replaceNode(h,v,e.factory.createJsxFragment(e.factory.createJsxOpeningFragment(),I,e.factory.createJsxJsxClosingFragment()))}function P(J){for(var h=[],v=J;;)if(e.isBinaryExpression(v)&&e.nodeIsMissing(v.operatorToken)&&v.operatorToken.kind===27){if(h.push(v.left),e.isJsxChild(v.right))return h.push(v.right),h;if(e.isBinaryExpression(v.right)){v=v.right;continue}else return}else return}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="fixConvertToMappedObjectType",g=d,t=[e.Diagnostics.An_index_signature_parameter_type_cannot_be_a_literal_type_or_generic_type_Consider_using_a_mapped_object_type_instead.code];a.registerCodeFix({errorCodes:t,getCodeActions:function(h){var v=h.sourceFile,I=h.span,X=p(v,I.start);if(!!X){var se=e.textChanges.ChangeTracker.with(h,function(w){return J(w,v,X)}),y=e.idText(X.container.name);return[a.createCodeFixAction(g,se,[e.Diagnostics.Convert_0_to_mapped_object_type,y],g,[e.Diagnostics.Convert_0_to_mapped_object_type,y])]}},fixIds:[g],getAllCodeActions:function(h){return a.codeFixAll(h,t,function(v,I){var X=p(I.file,I.start);X&&J(v,I.file,X)})}});function p(h,v){var I=e.getTokenAtPosition(h,v),X=e.cast(I.parent.parent,e.isIndexSignatureDeclaration);if(!e.isClassDeclaration(X.parent)){var se=e.isInterfaceDeclaration(X.parent)?X.parent:e.cast(X.parent.parent,e.isTypeAliasDeclaration);return{indexSignature:X,container:se}}}function P(h,v){return e.factory.createTypeAliasDeclaration(h.decorators,h.modifiers,h.name,h.typeParameters,v)}function J(h,v,I){var X=I.indexSignature,se=I.container,y=e.isInterfaceDeclaration(se)?se.members:se.type.members,w=y.filter(function(O){return!e.isIndexSignatureDeclaration(O)}),D=e.first(X.parameters),U=e.factory.createTypeParameterDeclaration(e.cast(D.name,e.isIdentifier),D.type),B=e.factory.createMappedTypeNode(e.hasEffectiveReadonlyModifier(X)?e.factory.createModifier(143):void 0,U,void 0,X.questionToken,X.type),R=e.factory.createIntersectionTypeNode(Mr(Mr(Mr([],e.getAllSuperTypeNodes(se),!0),[B],!1),w.length?[e.factory.createTypeLiteralNode(w)]:e.emptyArray,!0));h.replaceNode(v,se,P(se,R))}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="removeAccidentalCallParentheses",g=[e.Diagnostics.This_expression_is_not_callable_because_it_is_a_get_accessor_Did_you_mean_to_use_it_without.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(t){var p=e.findAncestor(e.getTokenAtPosition(t.sourceFile,t.span.start),e.isCallExpression);if(!!p){var P=e.textChanges.ChangeTracker.with(t,function(J){J.deleteRange(t.sourceFile,{pos:p.expression.end,end:p.end})});return[a.createCodeFixActionWithoutFixAll(d,P,e.Diagnostics.Remove_parentheses)]}},fixIds:[d]})})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="removeUnnecessaryAwait",g=[e.Diagnostics.await_has_no_effect_on_the_type_of_this_expression.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(p){var P=e.textChanges.ChangeTracker.with(p,function(J){return t(J,p.sourceFile,p.span)});if(P.length>0)return[a.createCodeFixAction(d,P,e.Diagnostics.Remove_unnecessary_await,d,e.Diagnostics.Remove_all_unnecessary_uses_of_await)]},fixIds:[d],getAllCodeActions:function(p){return a.codeFixAll(p,g,function(P,J){return t(P,J.file,J)})}});function t(p,P,J){var h=e.tryCast(e.getTokenAtPosition(P,J.start),function(w){return w.kind===131}),v=h&&e.tryCast(h.parent,e.isAwaitExpression);if(!!v){var I=v,X=e.isParenthesizedExpression(v.parent);if(X){var se=e.getLeftmostExpression(v.expression,!1);if(e.isIdentifier(se)){var y=e.findPrecedingToken(v.parent.pos,P);y&&y.kind!==103&&(I=v.parent)}}p.replaceNode(P,I,v.expression)}}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d=[e.Diagnostics.A_type_only_import_can_specify_a_default_import_or_named_bindings_but_not_both.code],g="splitTypeOnlyImport";a.registerCodeFix({errorCodes:d,fixIds:[g],getCodeActions:function(P){var J=e.textChanges.ChangeTracker.with(P,function(h){return p(h,t(P.sourceFile,P.span),P)});if(J.length)return[a.createCodeFixAction(g,J,e.Diagnostics.Split_into_two_separate_import_declarations,g,e.Diagnostics.Split_all_invalid_type_only_imports)]},getAllCodeActions:function(P){return a.codeFixAll(P,d,function(J,h){p(J,t(P.sourceFile,h),P)})}});function t(P,J){return e.findAncestor(e.getTokenAtPosition(P,J.start),e.isImportDeclaration)}function p(P,J,h){if(!!J){var v=e.Debug.checkDefined(J.importClause);P.replaceNode(h.sourceFile,J,e.factory.updateImportDeclaration(J,J.decorators,J.modifiers,e.factory.updateImportClause(v,v.isTypeOnly,v.name,void 0),J.moduleSpecifier)),P.insertNodeAfter(h.sourceFile,J,e.factory.createImportDeclaration(void 0,void 0,e.factory.updateImportClause(v,v.isTypeOnly,void 0,v.namedBindings),J.moduleSpecifier))}}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="fixConvertConstToLet",g=[e.Diagnostics.Cannot_assign_to_0_because_it_is_a_constant.code];a.registerCodeFix({errorCodes:g,getCodeActions:function(P){var J=P.sourceFile,h=P.span,v=P.program,I=t(J,h.start,v);if(I!==void 0){var X=e.textChanges.ChangeTracker.with(P,function(se){return p(se,J,I)});return[a.createCodeFixAction(d,X,e.Diagnostics.Convert_const_to_let,d,e.Diagnostics.Convert_const_to_let)]}},fixIds:[d]});function t(P,J,h){var v,I=h.getTypeChecker(),X=I.getSymbolAtLocation(e.getTokenAtPosition(P,J)),se=e.tryCast((v=X==null?void 0:X.valueDeclaration)===null||v===void 0?void 0:v.parent,e.isVariableDeclarationList);if(se!==void 0){var y=e.findChildOfKind(se,85,P);if(y!==void 0)return e.createRange(y.pos,y.end)}}function p(P,J,h){P.replaceRangeWithText(J,h,"let")}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="fixExpectedComma",g=e.Diagnostics._0_expected.code,t=[g];a.registerCodeFix({errorCodes:t,getCodeActions:function(J){var h=J.sourceFile,v=p(h,J.span.start,J.errorCode);if(!!v){var I=e.textChanges.ChangeTracker.with(J,function(X){return P(X,h,v)});return[a.createCodeFixAction(d,I,[e.Diagnostics.Change_0_to_1,";",","],d,[e.Diagnostics.Change_0_to_1,";",","])]}},fixIds:[d],getAllCodeActions:function(J){return a.codeFixAll(J,t,function(h,v){var I=p(v.file,v.start,v.code);I&&P(h,J.sourceFile,I)})}});function p(J,h,v){var I=e.getTokenAtPosition(J,h);return I.kind===26&&I.parent&&(e.isObjectLiteralExpression(I.parent)||e.isArrayLiteralExpression(I.parent))?{node:I}:void 0}function P(J,h,v){var I=v.node,X=e.factory.createToken(27);J.replaceNode(h,I,X)}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="addVoidToPromise",g="addVoidToPromise",t=[e.Diagnostics.Expected_0_arguments_but_got_1_Did_you_forget_to_include_void_in_your_type_argument_to_Promise.code];a.registerCodeFix({errorCodes:t,fixIds:[g],getCodeActions:function(J){var h=e.textChanges.ChangeTracker.with(J,function(v){return p(v,J.sourceFile,J.span,J.program)});if(h.length>0)return[a.createCodeFixAction(d,h,e.Diagnostics.Add_void_to_Promise_resolved_without_a_value,g,e.Diagnostics.Add_void_to_all_Promises_resolved_without_a_value)]},getAllCodeActions:function(J){return a.codeFixAll(J,t,function(h,v){return p(h,v.file,v,J.program,new e.Set)})}});function p(J,h,v,I,X){var se=e.getTokenAtPosition(h,v.start);if(!(!e.isIdentifier(se)||!e.isCallExpression(se.parent)||se.parent.expression!==se||se.parent.arguments.length!==0)){var y=I.getTypeChecker(),w=y.getSymbolAtLocation(se),D=w==null?void 0:w.valueDeclaration;if(!(!D||!e.isParameter(D)||!e.isNewExpression(D.parent.parent))&&!(X==null?void 0:X.has(D))){X==null||X.add(D);var U=P(D.parent.parent);if(e.some(U)){var B=U[0],R=!e.isUnionTypeNode(B)&&!e.isParenthesizedTypeNode(B)&&e.isParenthesizedTypeNode(e.factory.createUnionTypeNode([B,e.factory.createKeywordTypeNode(114)]).types[0]);R&&J.insertText(h,B.pos,"("),J.insertText(h,B.end,R?") | void":" | void")}else{var O=y.getResolvedSignature(se.parent),k=O==null?void 0:O.parameters[0],M=k&&y.getTypeOfSymbolAtLocation(k,D.parent.parent);e.isInJSFile(D)?(!M||M.flags&3)&&(J.insertText(h,D.parent.parent.end,")"),J.insertText(h,e.skipTrivia(h.text,D.parent.parent.pos),"/** @type {Promise} */(")):(!M||M.flags&2)&&J.insertText(h,D.parent.parent.expression.end,"")}}}}function P(J){var h;if(e.isInJSFile(J)){if(e.isParenthesizedExpression(J.parent)){var v=(h=e.getJSDocTypeTag(J.parent))===null||h===void 0?void 0:h.typeExpression.type;if(v&&e.isTypeReferenceNode(v)&&e.isIdentifier(v.typeName)&&e.idText(v.typeName)==="Promise")return v.typeArguments}}else return J.typeArguments}})(e.codefix||(e.codefix={}))})(un||(un={}));var un;(function(e){(function(a){var d="Convert export",g={name:"Convert default export to named export",description:e.Diagnostics.Convert_default_export_to_named_export.message,kind:"refactor.rewrite.export.named"},t={name:"Convert named export to default export",description:e.Diagnostics.Convert_named_export_to_default_export.message,kind:"refactor.rewrite.export.default"};a.registerRefactor(d,{kinds:[g.kind,t.kind],getAvailableActions:function(y){var w=p(y,y.triggerReason==="invoked");if(!w)return e.emptyArray;if(!a.isRefactorErrorInfo(w)){var D=w.wasDefault?g:t;return[{name:d,description:D.description,actions:[D]}]}return y.preferences.provideRefactorNotApplicableReason?[{name:d,description:e.Diagnostics.Convert_default_export_to_named_export.message,actions:[Dt(Dt({},g),{notApplicableReason:w.error}),Dt(Dt({},t),{notApplicableReason:w.error})]}]:e.emptyArray},getEditsForAction:function(y,w){e.Debug.assert(w===g.name||w===t.name,"Unexpected action name");var D=p(y);e.Debug.assert(D&&!a.isRefactorErrorInfo(D),"Expected applicable refactor info");var U=e.textChanges.ChangeTracker.with(y,function(B){return P(y.file,y.program,D,B,y.cancellationToken)});return{edits:U,renameFilename:void 0,renameLocation:void 0}}});function p(y,w){w===void 0&&(w=!0);var D=y.file,U=y.program,B=e.getRefactorContextSpan(y),R=e.getTokenAtPosition(D,B.start),O=!!(R.parent&&e.getSyntacticModifierFlags(R.parent)&1)&&w?R.parent:e.getParentNodeInSpan(R,D,B);if(!O||!e.isSourceFile(O.parent)&&!(e.isModuleBlock(O.parent)&&e.isAmbientModule(O.parent.parent)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_export_statement)};var k=e.isSourceFile(O.parent)?O.parent.symbol:O.parent.parent.symbol,M=e.getSyntacticModifierFlags(O)||(e.isExportAssignment(O)&&!O.isExportEquals?513:0),z=!!(M&512);if(!(M&1)||!z&&k.exports.has("default"))return{error:e.getLocaleSpecificMessage(e.Diagnostics.This_file_already_has_a_default_export)};var Y=U.getTypeChecker(),ne=function(ee){return e.isIdentifier(ee)&&Y.getSymbolAtLocation(ee)?void 0:{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_named_export)}};switch(O.kind){case 254:case 255:case 256:case 258:case 257:case 259:{var j=O;return j.name?ne(j.name)||{exportNode:j,exportName:j.name,wasDefault:z,exportingModuleSymbol:k}:void 0}case 235:{var H=O;if(!(H.declarationList.flags&2)||H.declarationList.declarations.length!==1)return;var K=e.first(H.declarationList.declarations);return K.initializer?(e.Debug.assert(!z,"Can't have a default flag here"),ne(K.name)||{exportNode:H,exportName:K.name,wasDefault:z,exportingModuleSymbol:k}):void 0}case 269:{var j=O;return j.isExportEquals?void 0:ne(j.expression)||{exportNode:j,exportName:j.expression,wasDefault:z,exportingModuleSymbol:k}}default:return}}function P(y,w,D,U,B){J(y,D,U,w.getTypeChecker()),h(w,D,U,B)}function J(y,w,D,U){var B=w.wasDefault,R=w.exportNode,O=w.exportName;if(B)if(e.isExportAssignment(R)&&!R.isExportEquals){var k=R.expression,M=se(k.text,k.text);D.replaceNode(y,R,e.factory.createExportDeclaration(void 0,void 0,!1,e.factory.createNamedExports([M])))}else D.delete(y,e.Debug.checkDefined(e.findModifier(R,88),"Should find a default keyword in modifier list"));else{var z=e.Debug.checkDefined(e.findModifier(R,93),"Should find an export keyword in modifier list");switch(R.kind){case 254:case 255:case 256:D.insertNodeAfter(y,z,e.factory.createToken(88));break;case 235:var Y=e.first(R.declarationList.declarations);if(!e.FindAllReferences.Core.isSymbolReferencedInFile(O,U,y)&&!Y.type){D.replaceNode(y,R,e.factory.createExportDefault(e.Debug.checkDefined(Y.initializer,"Initializer was previously known to be present")));break}case 258:case 257:case 259:D.deleteModifier(y,z),D.insertNodeAfter(y,R,e.factory.createExportDefault(e.factory.createIdentifier(O.text)));break;default:e.Debug.fail("Unexpected exportNode kind "+R.kind)}}}function h(y,w,D,U){var B=w.wasDefault,R=w.exportName,O=w.exportingModuleSymbol,k=y.getTypeChecker(),M=e.Debug.checkDefined(k.getSymbolAtLocation(R),"Export name should resolve to a symbol");e.FindAllReferences.Core.eachExportReference(y.getSourceFiles(),k,U,M,O,R.text,B,function(z){var Y=z.getSourceFile();B?v(Y,z,D,R.text):I(Y,z,D)})}function v(y,w,D,U){var B=w.parent;switch(B.kind){case 204:D.replaceNode(y,w,e.factory.createIdentifier(U));break;case 268:case 273:{var R=B;D.replaceNode(y,R,X(U,R.name.text));break}case 265:{var O=B;e.Debug.assert(O.name===w,"Import clause name should match provided ref");var R=X(U,w.text),k=O.namedBindings;if(!k)D.replaceNode(y,w,e.factory.createNamedImports([R]));else if(k.kind===266){D.deleteRange(y,{pos:w.getStart(y),end:k.getStart(y)});var M=e.isStringLiteral(O.parent.moduleSpecifier)?e.quotePreferenceFromString(O.parent.moduleSpecifier,y):1,z=e.makeImport(void 0,[X(U,w.text)],O.parent.moduleSpecifier,M);D.insertNodeAfter(y,O.parent,z)}else D.delete(y,w),D.insertNodeAtEndOfList(y,k.elements,R);break}default:e.Debug.failBadSyntaxKind(B)}}function I(y,w,D){var U=w.parent;switch(U.kind){case 204:D.replaceNode(y,w,e.factory.createIdentifier("default"));break;case 268:{var B=e.factory.createIdentifier(U.name.text);U.parent.elements.length===1?D.replaceNode(y,U.parent,B):(D.delete(y,U),D.insertNodeBefore(y,U.parent,B));break}case 273:{D.replaceNode(y,U,se("default",U.name.text));break}default:e.Debug.assertNever(U,"Unexpected parent kind "+U.kind)}}function X(y,w){return e.factory.createImportSpecifier(y===w?void 0:e.factory.createIdentifier(y),e.factory.createIdentifier(w))}function se(y,w){return e.factory.createExportSpecifier(y===w?void 0:e.factory.createIdentifier(y),e.factory.createIdentifier(w))}})(e.refactor||(e.refactor={}))})(un||(un={}));var un;(function(e){(function(a){var d="Convert import",g={name:"Convert namespace import to named imports",description:e.Diagnostics.Convert_namespace_import_to_named_imports.message,kind:"refactor.rewrite.import.named"},t={name:"Convert named imports to namespace import",description:e.Diagnostics.Convert_named_imports_to_namespace_import.message,kind:"refactor.rewrite.import.namespace"};a.registerRefactor(d,{kinds:[g.kind,t.kind],getAvailableActions:function(se){var y=p(se,se.triggerReason==="invoked");if(!y)return e.emptyArray;if(!a.isRefactorErrorInfo(y)){var w=y.kind===266,D=w?g:t;return[{name:d,description:D.description,actions:[D]}]}return se.preferences.provideRefactorNotApplicableReason?[{name:d,description:g.description,actions:[Dt(Dt({},g),{notApplicableReason:y.error})]},{name:d,description:t.description,actions:[Dt(Dt({},t),{notApplicableReason:y.error})]}]:e.emptyArray},getEditsForAction:function(se,y){e.Debug.assert(y===g.name||y===t.name,"Unexpected action name");var w=p(se);e.Debug.assert(w&&!a.isRefactorErrorInfo(w),"Expected applicable refactor info");var D=e.textChanges.ChangeTracker.with(se,function(U){return P(se.file,se.program,U,w)});return{edits:D,renameFilename:void 0,renameLocation:void 0}}});function p(se,y){y===void 0&&(y=!0);var w=se.file,D=e.getRefactorContextSpan(se),U=e.getTokenAtPosition(w,D.start),B=y?e.findAncestor(U,e.isImportDeclaration):e.getParentNodeInSpan(U,w,D);if(!B||!e.isImportDeclaration(B))return{error:"Selection is not an import declaration."};if(!(B.getEnd()=A.pos?E.getEnd():A.getEnd()),C=b?O(A):R(A,x),m=C&&I(C)?k(C):void 0;if(!m)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var c=K.getTypeChecker();return e.isConditionalExpression(m)?se(m,c):y(m)}}function se(ne,j){var H=ne.condition,K=M(ne.whenTrue);if(!K||j.isNullableType(j.getTypeAtLocation(K)))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};if((e.isPropertyAccessExpression(H)||e.isIdentifier(H))&&D(H,K.expression))return{finalExpression:K,occurrences:[H],expression:ne};if(e.isBinaryExpression(H)){var ee=w(K.expression,H);return ee?{finalExpression:K,occurrences:ee,expression:ne}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}}function y(ne){if(ne.operatorToken.kind!==55)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_logical_AND_access_chains)};var j=M(ne.right);if(!j)return{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_convertible_access_expression)};var H=w(j.expression,ne.left);return H?{finalExpression:j,occurrences:H,expression:ne}:{error:e.getLocaleSpecificMessage(e.Diagnostics.Could_not_find_matching_access_expressions)}}function w(ne,j){for(var H=[];e.isBinaryExpression(j)&&j.operatorToken.kind===55;){var K=D(e.skipParentheses(ne),e.skipParentheses(j.right));if(!K)break;H.push(K),ne=K,j=j.left}var ee=D(ne,j);return ee&&H.push(ee),H.length>0?H:void 0}function D(ne,j){if(!(!e.isIdentifier(j)&&!e.isPropertyAccessExpression(j)&&!e.isElementAccessExpression(j)))return U(ne,j)?j:void 0}function U(ne,j){for(;(e.isCallExpression(ne)||e.isPropertyAccessExpression(ne)||e.isElementAccessExpression(ne))&&B(ne)!==B(j);)ne=ne.expression;for(;e.isPropertyAccessExpression(ne)&&e.isPropertyAccessExpression(j)||e.isElementAccessExpression(ne)&&e.isElementAccessExpression(j);){if(B(ne)!==B(j))return!1;ne=ne.expression,j=j.expression}return e.isIdentifier(ne)&&e.isIdentifier(j)&&ne.getText()===j.getText()}function B(ne){if(e.isIdentifier(ne)||e.isStringOrNumericLiteralLike(ne))return ne.getText();if(e.isPropertyAccessExpression(ne))return B(ne.name);if(e.isElementAccessExpression(ne))return B(ne.argumentExpression)}function R(ne,j){for(;ne.parent;){if(I(ne)&&j.length!==0&&ne.end>=j.start+j.length)return ne;ne=ne.parent}}function O(ne){for(;ne.parent;){if(I(ne)&&!I(ne.parent))return ne;ne=ne.parent}}function k(ne){if(h(ne))return ne;if(e.isVariableStatement(ne)){var j=e.getSingleVariableOfVariableStatement(ne),H=j==null?void 0:j.initializer;return H&&h(H)?H:void 0}return ne.expression&&h(ne.expression)?ne.expression:void 0}function M(ne){if(ne=e.skipParentheses(ne),e.isBinaryExpression(ne))return M(ne.left);if((e.isPropertyAccessExpression(ne)||e.isElementAccessExpression(ne)||e.isCallExpression(ne))&&!e.isOptionalChain(ne))return ne}function z(ne,j,H){if(e.isPropertyAccessExpression(j)||e.isElementAccessExpression(j)||e.isCallExpression(j)){var K=z(ne,j.expression,H),ee=H.length>0?H[H.length-1]:void 0,b=(ee==null?void 0:ee.getText())===j.expression.getText();if(b&&H.pop(),e.isCallExpression(j))return b?e.factory.createCallChain(K,e.factory.createToken(28),j.typeArguments,j.arguments):e.factory.createCallChain(K,j.questionDotToken,j.typeArguments,j.arguments);if(e.isPropertyAccessExpression(j))return b?e.factory.createPropertyAccessChain(K,e.factory.createToken(28),j.name):e.factory.createPropertyAccessChain(K,j.questionDotToken,j.name);if(e.isElementAccessExpression(j))return b?e.factory.createElementAccessChain(K,e.factory.createToken(28),j.argumentExpression):e.factory.createElementAccessChain(K,j.questionDotToken,j.argumentExpression)}return j}function Y(ne,j,H,K,ee){var b=K.finalExpression,A=K.occurrences,E=K.expression,x=A[A.length-1],C=z(j,b,A);C&&(e.isPropertyAccessExpression(C)||e.isElementAccessExpression(C)||e.isCallExpression(C))&&(e.isBinaryExpression(E)?H.replaceNodeRange(ne,x,b,C):e.isConditionalExpression(E)&&H.replaceNode(ne,E,e.factory.createBinaryExpression(C,e.factory.createToken(60),E.whenFalse)))}})(a.convertToOptionalChainExpression||(a.convertToOptionalChainExpression={}))})(e.refactor||(e.refactor={}))})(un||(un={}));var un;(function(e){(function(a){(function(d){var g="Convert overload list to single signature",t=e.Diagnostics.Convert_overload_list_to_single_signature.message,p={name:g,description:t,kind:"refactor.rewrite.function.overloadList"};a.registerRefactor(g,{kinds:[p.kind],getEditsForAction:J,getAvailableActions:P});function P(I){var X=I.file,se=I.startPosition,y=I.program,w=v(X,se,y);return w?[{name:g,description:t,actions:[p]}]:e.emptyArray}function J(I){var X=I.file,se=I.startPosition,y=I.program,w=v(X,se,y);if(!w)return;var D=y.getTypeChecker(),U=w[w.length-1],B=U;switch(U.kind){case 166:{B=e.factory.updateMethodSignature(U,U.modifiers,U.name,U.questionToken,U.typeParameters,O(w),U.type);break}case 167:{B=e.factory.updateMethodDeclaration(U,U.decorators,U.modifiers,U.asteriskToken,U.name,U.questionToken,U.typeParameters,O(w),U.type,U.body);break}case 172:{B=e.factory.updateCallSignature(U,U.typeParameters,O(w),U.type);break}case 169:{B=e.factory.updateConstructorDeclaration(U,U.decorators,U.modifiers,O(w),U.body);break}case 173:{B=e.factory.updateConstructSignature(U,U.typeParameters,O(w),U.type);break}case 254:{B=e.factory.updateFunctionDeclaration(U,U.decorators,U.modifiers,U.asteriskToken,U.name,U.typeParameters,O(w),U.type,U.body);break}default:return e.Debug.failBadSyntaxKind(U,"Unhandled signature kind in overload list conversion refactoring")}if(B===U)return;var R=e.textChanges.ChangeTracker.with(I,function(z){z.replaceNodeRange(X,w[0],w[w.length-1],B)});return{renameFilename:void 0,renameLocation:void 0,edits:R};function O(z){var Y=z[z.length-1];return e.isFunctionLikeDeclaration(Y)&&Y.body&&(z=z.slice(0,z.length-1)),e.factory.createNodeArray([e.factory.createParameterDeclaration(void 0,void 0,e.factory.createToken(25),"args",void 0,e.factory.createUnionTypeNode(e.map(z,k)))])}function k(z){var Y=e.map(z.parameters,M);return e.setEmitFlags(e.factory.createTupleTypeNode(Y),e.some(Y,function(ne){return!!e.length(e.getSyntheticLeadingComments(ne))})?0:1)}function M(z){e.Debug.assert(e.isIdentifier(z.name));var Y=e.setTextRange(e.factory.createNamedTupleMember(z.dotDotDotToken,z.name,z.questionToken,z.type||e.factory.createKeywordTypeNode(129)),z),ne=z.symbol&&z.symbol.getDocumentationComment(D);if(ne){var j=e.displayPartsToString(ne);j.length&&e.setSyntheticLeadingComments(Y,[{text:`* -`+j.split(` -`).map(function(H){return" * "+H}).join(` -`)+` - `,kind:3,pos:-1,end:-1,hasTrailingNewLine:!0,hasLeadingNewline:!0}])}return Y}}function h(I){switch(I.kind){case 166:case 167:case 172:case 169:case 173:case 254:return!0}return!1}function v(I,X,se){var y=e.getTokenAtPosition(I,X),w=e.findAncestor(y,h);if(!!w){var D=se.getTypeChecker(),U=w.symbol;if(!!U){var B=U.declarations;if(!(e.length(B)<=1)&&!!e.every(B,function(z){return e.getSourceFileOfNode(z)===I})&&!!h(B[0])){var R=B[0].kind;if(!!e.every(B,function(z){return z.kind===R})){var O=B;if(!e.some(O,function(z){return!!z.typeParameters||e.some(z.parameters,function(Y){return!!Y.decorators||!!Y.modifiers||!e.isIdentifier(Y.name)})})){var k=e.mapDefined(O,function(z){return D.getSignatureFromDeclaration(z)});if(e.length(k)===e.length(B)){var M=D.getReturnTypeOfSignature(k[0]);if(!!e.every(k,function(z){return D.getReturnTypeOfSignature(z)===M}))return O}}}}}}}})(a.addOrRemoveBracesToArrowFunction||(a.addOrRemoveBracesToArrowFunction={}))})(e.refactor||(e.refactor={}))})(un||(un={}));var un;(function(e){(function(a){(function(d){var g="Extract Symbol",t={name:"Extract Constant",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_constant),kind:"refactor.extract.constant"},p={name:"Extract Function",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_function),kind:"refactor.extract.function"};a.registerRefactor(g,{kinds:[t.kind,p.kind],getAvailableActions:P,getEditsForAction:J});function P(q){var ue=q.kind,ke=I(q.file,e.getRefactorContextSpan(q),q.triggerReason==="invoked"),de=ke.targetRange;if(de===void 0){if(!ke.errors||ke.errors.length===0||!q.preferences.provideRefactorNotApplicableReason)return e.emptyArray;var xe=[];return a.refactorKindBeginsWith(p.kind,ue)&&xe.push({name:g,description:p.description,actions:[Dt(Dt({},p),{notApplicableReason:Nn(ke.errors)})]}),a.refactorKindBeginsWith(t.kind,ue)&&xe.push({name:g,description:t.description,actions:[Dt(Dt({},t),{notApplicableReason:Nn(ke.errors)})]}),xe}var Le=B(de,q);if(Le===void 0)return e.emptyArray;for(var He=[],Ne=new e.Map,De,Ee=[],We=new e.Map,ye,Ie=0,je=0,Sn=Le;je=ue.start+ue.length)return(qn||(qn=[])).push(e.createDiagnosticForNode(qe,h.cannotExtractSuper)),!0}else ye|=v.UsesThis;break;case 212:e.forEachChild(qe,function Pe(he){if(e.isThis(he))ye|=v.UsesThis;else{if(e.isClassLike(he)||e.isFunctionLike(he)&&!e.isArrowFunction(he))return!1;e.forEachChild(he,Pe)}});case 255:case 254:e.isSourceFile(qe.parent)&&qe.parent.externalModuleIndicator===void 0&&(qn||(qn=[])).push(e.createDiagnosticForNode(qe,h.functionWillNotBeVisibleInTheNewScope));case 224:case 211:case 167:case 169:case 170:case 171:return!1}var Xe=oe;switch(qe.kind){case 237:oe=0;break;case 250:oe=0;break;case 233:qe.parent&&qe.parent.kind===250&&qe.parent.finallyBlock===qe&&(oe=4);break;case 288:case 287:oe|=1;break;default:e.isIterationStatement(qe,!1)&&(oe|=1|2);break}switch(qe.kind){case 190:case 108:ye|=v.UsesThis;break;case 248:{var En=qe.label;(Be||(Be=[])).push(En.escapedText),e.forEachChild(qe,Te),Be.pop();break}case 244:case 243:{var En=qe.label;En?e.contains(Be,En.escapedText)||(qn||(qn=[])).push(e.createDiagnosticForNode(qe,h.cannotExtractRangeContainingLabeledBreakOrContinueStatementWithTargetOutsideOfTheRange)):oe&(qe.kind===244?1:2)||(qn||(qn=[])).push(e.createDiagnosticForNode(qe,h.cannotExtractRangeContainingConditionalBreakOrContinueStatements));break}case 216:ye|=v.IsAsyncFunction;break;case 222:ye|=v.IsGenerator;break;case 245:oe&4?ye|=v.HasReturn:(qn||(qn=[])).push(e.createDiagnosticForNode(qe,h.cannotExtractRangeContainingConditionalReturnStatement));break;default:e.forEachChild(qe,Te);break}oe=Xe}}}d.getRangeToExtract=I;function X(q,ue,ke){var de=q.getStart(ke),xe=ue.getEnd();return ke.text.charCodeAt(xe)===59&&xe++,{start:de,length:xe-de}}function se(q){if(e.isStatement(q))return[q];if(e.isExpressionNode(q))return e.isExpressionStatement(q.parent)?[q.parent]:q}function y(q){return e.isFunctionLikeDeclaration(q)||e.isSourceFile(q)||e.isModuleBlock(q)||e.isClassLike(q)}function w(q){var ue=V(q.range)?e.first(q.range):q.range;if(q.facts&v.UsesThis){var ke=e.getContainingClass(ue);if(ke){var de=e.findAncestor(ue,e.isFunctionLikeDeclaration);return de?[de,ke]:[ke]}}for(var xe=[];;)if(ue=ue.parent,ue.kind===162&&(ue=e.findAncestor(ue,function(Le){return e.isFunctionLikeDeclaration(Le)}).parent),y(ue)&&(xe.push(ue),ue.kind===300))return xe}function D(q,ue,ke){var de=R(q,ue),xe=de.scopes,Le=de.readsAndWrites,He=Le.target,Ne=Le.usagesPerScope,De=Le.functionErrorsPerScope,Ee=Le.exposedVariableDeclarations;return e.Debug.assert(!De[ke].length,"The extraction went missing? How?"),ue.cancellationToken.throwIfCancellationRequested(),j(He,xe[ke],Ne[ke],Ee,q,ue)}function U(q,ue,ke){var de=R(q,ue),xe=de.scopes,Le=de.readsAndWrites,He=Le.target,Ne=Le.usagesPerScope,De=Le.constantErrorsPerScope,Ee=Le.exposedVariableDeclarations;e.Debug.assert(!De[ke].length,"The extraction went missing? How?"),e.Debug.assert(Ee.length===0,"Extract constant accepted a range containing a variable declaration?"),ue.cancellationToken.throwIfCancellationRequested();var We=e.isExpression(He)?He:He.statements[0].expression;return H(We,xe[ke],Ne[ke],q.facts,ue)}function B(q,ue){var ke=R(q,ue),de=ke.scopes,xe=ke.readsAndWrites,Le=xe.functionErrorsPerScope,He=xe.constantErrorsPerScope,Ne=de.map(function(De,Ee){var We=O(De),ye=k(De),Ie=e.isFunctionLikeDeclaration(De)?M(De):e.isClassLike(De)?z(De):Y(De),je,Sn;return Ie===1?(je=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[We,"global"]),Sn=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[ye,"global"])):Ie===0?(je=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[We,"module"]),Sn=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1_scope),[ye,"module"])):(je=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[We,Ie]),Sn=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_1),[ye,Ie])),Ee===0&&!e.isClassLike(De)&&(Sn=e.formatStringFromArgs(e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_0_in_enclosing_scope),[ye])),{functionExtraction:{description:je,errors:Le[Ee]},constantExtraction:{description:Sn,errors:He[Ee]}}});return Ne}function R(q,ue){var ke=ue.file,de=w(q),xe=Z(q,ke),Le=ce(q,de,xe,ke,ue.program.getTypeChecker(),ue.cancellationToken);return{scopes:de,readsAndWrites:Le}}function O(q){return e.isFunctionLikeDeclaration(q)?"inner function":e.isClassLike(q)?"method":"function"}function k(q){return e.isClassLike(q)?"readonly field":"constant"}function M(q){switch(q.kind){case 169:return"constructor";case 211:case 254:return q.name?"function '"+q.name.text+"'":e.ANONYMOUS;case 212:return"arrow function";case 167:return"method '"+q.name.getText()+"'";case 170:return"'get "+q.name.getText()+"'";case 171:return"'set "+q.name.getText()+"'";default:throw e.Debug.assertNever(q,"Unexpected scope kind "+q.kind)}}function z(q){return q.kind===255?q.name?"class '"+q.name.text+"'":"anonymous class declaration":q.name?"class expression '"+q.name.text+"'":"anonymous class expression"}function Y(q){return q.kind===260?"namespace '"+q.parent.name.getText()+"'":q.externalModuleIndicator?0:1}var ne;(function(q){q[q.Module=0]="Module",q[q.Global=1]="Global"})(ne||(ne={}));function j(q,ue,ke,de,xe,Le){var He=ke.usages,Ne=ke.typeParameterUsages,De=ke.substitutions,Ee=Le.program.getTypeChecker(),We=e.getEmitScriptTarget(Le.program.getCompilerOptions()),ye=e.codefix.createImportAdder(Le.file,Le.program,Le.preferences,Le.host),Ie=ue.getSourceFile(),je=e.getUniqueName(e.isClassLike(ue)?"newMethod":"newFunction",Ie),Sn=e.isInJSFile(ue),Me=e.factory.createIdentifier(je),we,ze=[],Cn=[],an;He.forEach(function(fe,Ge){var tn;if(!Sn){var le=Ee.getTypeOfSymbolAtLocation(fe.symbol,fe.node);le=Ee.getBaseTypeOfLiteralType(le),tn=e.codefix.typeToAutoImportableTypeNode(Ee,ye,le,ue,We,1)}var Vn=e.factory.createParameterDeclaration(void 0,void 0,void 0,Ge,void 0,tn);ze.push(Vn),fe.usage===2&&(an||(an=[])).push(fe),Cn.push(e.factory.createIdentifier(Ge))});var vn=e.arrayFrom(Ne.values()).map(function(fe){return{type:fe,declaration:ee(fe)}}),Nn=vn.sort(b),Kn=Nn.length===0?void 0:Nn.map(function(fe){return fe.declaration}),$e=Kn!==void 0?Kn.map(function(fe){return e.factory.createTypeReferenceNode(fe.name,void 0)}):void 0;if(e.isExpression(q)&&!Sn){var ie=Ee.getContextualType(q);we=Ee.typeToTypeNode(ie,ue,1)}var dn=E(q,de,an,De,!!(xe.facts&v.HasReturn)),Tn=dn.body,qn=dn.returnValueProperty;e.suppressLeadingAndTrailingTrivia(Tn);var oe;if(e.isClassLike(ue)){var Be=Sn?[]:[e.factory.createModifier(121)];xe.facts&v.InStaticRegion&&Be.push(e.factory.createModifier(124)),xe.facts&v.IsAsyncFunction&&Be.push(e.factory.createModifier(130)),oe=e.factory.createMethodDeclaration(void 0,Be.length?Be:void 0,xe.facts&v.IsGenerator?e.factory.createToken(41):void 0,Me,void 0,Kn,ze,we,Tn)}else oe=e.factory.createFunctionDeclaration(void 0,xe.facts&v.IsAsyncFunction?[e.factory.createToken(130)]:void 0,xe.facts&v.IsGenerator?e.factory.createToken(41):void 0,Me,Kn,ze,we,Tn);var Te=e.textChanges.ChangeTracker.fromContext(Le),qe=(V(xe.range)?e.last(xe.range):xe.range).end,cn=m(qe,ue);cn?Te.insertNodeBefore(Le.file,cn,oe,!0):Te.insertNodeAtEndOfScope(Le.file,ue,oe),ye.writeFixes(Te);var be=[],Xe=A(ue,xe,je),En=e.factory.createCallExpression(Xe,$e,Cn);if(xe.facts&v.IsGenerator&&(En=e.factory.createYieldExpression(e.factory.createToken(41),En)),xe.facts&v.IsAsyncFunction&&(En=e.factory.createAwaitExpression(En)),re(q)&&(En=e.factory.createJsxExpression(void 0,En)),de.length&&!an)if(e.Debug.assert(!qn,"Expected no returnValueProperty"),e.Debug.assert(!(xe.facts&v.HasReturn),"Expected RangeFacts.HasReturn flag to be unset"),de.length===1){var Pe=de[0];be.push(e.factory.createVariableStatement(void 0,e.factory.createVariableDeclarationList([e.factory.createVariableDeclaration(e.getSynthesizedDeepClone(Pe.name),void 0,e.getSynthesizedDeepClone(Pe.type),En)],Pe.parent.flags)))}else{for(var he=[],ln=[],sn=de[0].parent.flags,An=!1,Un=0,pr=de;Un1)return q;ke=q,q=q.parent}}function ee(q){var ue,ke=q.symbol;if(ke&&ke.declarations)for(var de=0,xe=ke.declarations;de0;if(e.isBlock(q)&&!Le&&de.size===0)return{body:e.factory.createBlock(q.statements,!0),returnValueProperty:void 0};var He,Ne=!1,De=e.factory.createNodeArray(e.isBlock(q)?q.statements.slice(0):[e.isStatement(q)?q:e.factory.createReturnStatement(q)]);if(Le||de.size){var Ee=e.visitNodes(De,ye).slice();if(Le&&!xe&&e.isStatement(q)){var We=N(ue,ke);We.length===1?Ee.push(e.factory.createReturnStatement(We[0].name)):Ee.push(e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(We)))}return{body:e.factory.createBlock(Ee,!0),returnValueProperty:He}}else return{body:e.factory.createBlock(De,!0),returnValueProperty:void 0};function ye(Ie){if(!Ne&&e.isReturnStatement(Ie)&&Le){var je=N(ue,ke);return Ie.expression&&(He||(He="__return"),je.unshift(e.factory.createPropertyAssignment(He,e.visitNode(Ie.expression,ye)))),je.length===1?e.factory.createReturnStatement(je[0].name):e.factory.createReturnStatement(e.factory.createObjectLiteralExpression(je))}else{var Sn=Ne;Ne=Ne||e.isFunctionLikeDeclaration(Ie)||e.isClassLike(Ie);var Me=de.get(e.getNodeId(Ie).toString()),we=Me?e.getSynthesizedDeepClone(Me):e.visitEachChild(Ie,ye,e.nullTransformationContext);return Ne=Sn,we}}}function x(q,ue){return ue.size?ke(q):q;function ke(de){var xe=ue.get(e.getNodeId(de).toString());return xe?e.getSynthesizedDeepClone(xe):e.visitEachChild(de,ke,e.nullTransformationContext)}}function C(q){if(e.isFunctionLikeDeclaration(q)){var ue=q.body;if(e.isBlock(ue))return ue.statements}else{if(e.isModuleBlock(q)||e.isSourceFile(q))return q.statements;if(e.isClassLike(q))return q.members;e.assertType(q)}return e.emptyArray}function m(q,ue){return e.find(C(ue),function(ke){return ke.pos>=q&&e.isFunctionLikeDeclaration(ke)&&!e.isConstructorDeclaration(ke)})}function c(q,ue){var ke=ue.members;e.Debug.assert(ke.length>0,"Found no members");for(var de,xe=!0,Le=0,He=ke;Leq)return de||ke[0];if(xe&&!e.isPropertyDeclaration(Ne)){if(de!==void 0)return Ne;xe=!1}de=Ne}return de===void 0?e.Debug.fail():de}function f(q,ue){e.Debug.assert(!e.isClassLike(ue));for(var ke,de=q;de!==ue;de=de.parent)y(de)&&(ke=de);for(var de=(ke||q).parent;;de=de.parent){if(F(de)){for(var xe=void 0,Le=0,He=de.statements;Leq.pos)break;xe=Ne}return!xe&&e.isCaseClause(de)?(e.Debug.assert(e.isSwitchStatement(de.parent.parent),"Grandparent isn't a switch statement"),de.parent.parent):e.Debug.checkDefined(xe,"prevStatement failed to get set")}e.Debug.assert(de!==ue,"Didn't encounter a block-like before encountering scope")}}function N(q,ue){var ke=e.map(q,function(xe){return e.factory.createShorthandPropertyAssignment(xe.symbol.name)}),de=e.map(ue,function(xe){return e.factory.createShorthandPropertyAssignment(xe.symbol.name)});return ke===void 0?de:de===void 0?ke:ke.concat(de)}function V(q){return e.isArray(q)}function Z(q,ue){return V(q.range)?{pos:e.first(q.range).getStart(ue),end:e.last(q.range).getEnd()}:q.range}var S;(function(q){q[q.Read=1]="Read",q[q.Write=2]="Write"})(S||(S={}));function ce(q,ue,ke,de,xe,Le){var He=new e.Map,Ne=[],De=[],Ee=[],We=[],ye=[],Ie=new e.Map,je=[],Sn,Me=V(q.range)?q.range.length===1&&e.isExpressionStatement(q.range[0])?q.range[0].expression:void 0:q.range,we;if(Me===void 0){var ze=q.range,Cn=e.first(ze).getStart(),an=e.last(ze).end;we=e.createFileDiagnostic(de,Cn,an-Cn,h.expressionExpected)}else xe.getTypeAtLocation(Me).flags&(16384|131072)&&(we=e.createDiagnosticForNode(Me,h.uselessConstantType));for(var vn=0,Nn=ue;vn0){for(var Be=new e.Map,Te=0,qe=Tn;qe!==void 0&&Te0&&(Wn.usages.size>0||Wn.typeParameterUsages.size>0)){var Je=V(q.range)?q.range[0]:q.range;We[Ln].push(e.createDiagnosticForNode(Je,h.cannotAccessVariablesFromNestedScopes))}var kn=!1,Qn;if(Ne[Ln].usages.forEach(function(on){on.usage===2&&(kn=!0,on.symbol.flags&106500&&on.symbol.valueDeclaration&&e.hasEffectiveModifier(on.symbol.valueDeclaration,64)&&(Qn=on.symbol.valueDeclaration))}),e.Debug.assert(V(q.range)||je.length===0,"No variable declarations expected if something was extracted"),kn&&!V(q.range)){var jn=e.createDiagnosticForNode(q.range,h.cannotWriteInExpression);Ee[Ln].push(jn),We[Ln].push(jn)}else if(Qn&&Ln>0){var jn=e.createDiagnosticForNode(Qn,h.cannotExtractReadonlyPropertyInitializerOutsideConstructor);Ee[Ln].push(jn),We[Ln].push(jn)}else if(Sn){var jn=e.createDiagnosticForNode(Sn,h.cannotExtractExportedEntity);Ee[Ln].push(jn),We[Ln].push(jn)}},ln=0;ln=Wn)return Qn;if(ie.set(Qn,Wn),jn){for(var on=0,fe=Ne;on=0)){var Wn=e.isIdentifier(Ln)?Gr(Ln):xe.getSymbolAtLocation(Ln);if(Wn){var Je=e.find(ye,function(Qn){return Qn.symbol===Wn});if(Je)if(e.isVariableDeclaration(Je)){var kn=Je.symbol.id.toString();Ie.has(kn)||(je.push(Je),Ie.set(kn,!0))}else Sn=Sn||Je}e.forEachChild(Ln,xr)}}function Gr(Ln){return Ln.parent&&e.isShorthandPropertyAssignment(Ln.parent)&&Ln.parent.name===Ln?xe.getShorthandAssignmentValueSymbol(Ln.parent):xe.getSymbolAtLocation(Ln)}function Ve(Ln,Wn,Je){if(!!Ln){var kn=Ln.getDeclarations();if(kn&&kn.some(function(jn){return jn.parent===Wn}))return e.factory.createIdentifier(Ln.name);var Qn=Ve(Ln.parent,Wn,Je);if(Qn!==void 0)return Je?e.factory.createQualifiedName(Qn,e.factory.createIdentifier(Ln.name)):e.factory.createPropertyAccessExpression(Qn,Ln.name)}}}function ge(q){return e.findAncestor(q,function(ue){return ue.parent&&ae(ue)&&!e.isBinaryExpression(ue.parent)})}function ae(q){var ue=q.parent;switch(ue.kind){case 294:return!1}switch(q.kind){case 10:return ue.kind!==264&&ue.kind!==268;case 223:case 199:case 201:return!1;case 79:return ue.kind!==201&&ue.kind!==268&&ue.kind!==273}return!0}function F(q){switch(q.kind){case 233:case 300:case 260:case 287:return!0;default:return!1}}function re(q){return(e.isJsxElement(q)||e.isJsxSelfClosingElement(q)||e.isJsxFragment(q))&&(e.isJsxElement(q.parent)||e.isJsxFragment(q.parent))}})(a.extractSymbol||(a.extractSymbol={}))})(e.refactor||(e.refactor={}))})(un||(un={}));var un;(function(e){(function(a){var d="Extract type",g={name:"Extract to type alias",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_type_alias),kind:"refactor.extract.type"},t={name:"Extract to interface",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_interface),kind:"refactor.extract.interface"},p={name:"Extract to typedef",description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_to_typedef),kind:"refactor.extract.typedef"};a.registerRefactor(d,{kinds:[g.kind,t.kind,p.kind],getAvailableActions:function(y){var w=P(y,y.triggerReason==="invoked");return w?a.isRefactorErrorInfo(w)?y.preferences.provideRefactorNotApplicableReason?[{name:d,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:[Dt(Dt({},p),{notApplicableReason:w.error}),Dt(Dt({},g),{notApplicableReason:w.error}),Dt(Dt({},t),{notApplicableReason:w.error})]}]:e.emptyArray:[{name:d,description:e.getLocaleSpecificMessage(e.Diagnostics.Extract_type),actions:w.isJS?[p]:e.append([g],w.typeElements&&t)}]:e.emptyArray},getEditsForAction:function(y,w){var D=y.file,U=P(y);e.Debug.assert(U&&!a.isRefactorErrorInfo(U),"Expected to find a range to extract");var B=e.getUniqueName("NewType",D),R=e.textChanges.ChangeTracker.with(y,function(M){switch(w){case g.name:return e.Debug.assert(!U.isJS,"Invalid actionName/JS combo"),I(M,D,B,U);case p.name:return e.Debug.assert(U.isJS,"Invalid actionName/JS combo"),se(M,D,B,U);case t.name:return e.Debug.assert(!U.isJS&&!!U.typeElements,"Invalid actionName/JS combo"),X(M,D,B,U);default:e.Debug.fail("Unexpected action name")}}),O=D.fileName,k=e.getRenameLocation(R,O,B,!1);return{edits:R,renameFilename:O,renameLocation:k}}});function P(y,w){w===void 0&&(w=!0);var D=y.file,U=y.startPosition,B=e.isSourceFileJS(D),R=e.getTokenAtPosition(D,U),O=e.createTextRangeFromSpan(e.getRefactorContextSpan(y)),k=O.pos===O.end&&w,M=e.findAncestor(R,function(H){return H.parent&&e.isTypeNode(H)&&!h(O,H.parent,D)&&(k||e.nodeOverlapsWithStartEnd(R,D,O.pos,O.end))});if(!M||!e.isTypeNode(M))return{error:e.getLocaleSpecificMessage(e.Diagnostics.Selection_is_not_a_valid_type_node)};var z=y.program.getTypeChecker(),Y=e.Debug.checkDefined(e.findAncestor(M,e.isStatement),"Should find a statement"),ne=v(z,M,Y,D);if(!ne)return{error:e.getLocaleSpecificMessage(e.Diagnostics.No_type_could_be_extracted_from_this_type_node)};var j=J(z,M);return{isJS:B,selection:M,firstStatement:Y,typeParameters:ne,typeElements:j}}function J(y,w){if(!!w)if(e.isIntersectionTypeNode(w)){for(var D=[],U=new e.Map,B=0,R=w.types;BWe.pos});if(Ie!==-1){var je=ye[Ie];if(e.isNamedDeclaration(je)&&je.name&&e.rangeContainsRange(je.name,We))return{toMove:[ye[Ie]],afterLast:ye[Ie+1]};if(!(We.pos>je.getStart(Ee))){var Sn=e.findIndex(ye,function(Me){return Me.end>We.end},Ie);if(!(Sn!==-1&&(Sn===0||ye[Sn].getStart(Ee)=t&&e.every(c,function(N){return ne(N,f)})}function ne(c,f){if(e.isRestParameter(c)){var N=f.getTypeAtLocation(c);if(!f.isArrayType(N)&&!f.isTupleType(N))return!1}return!c.modifiers&&!c.decorators&&e.isIdentifier(c.name)}function j(c){return e.isVariableDeclaration(c)&&e.isVarConst(c)&&e.isIdentifier(c.name)&&!c.type}function H(c){return c.length>0&&e.isThis(c[0].name)}function K(c){return H(c)?c.length-1:c.length}function ee(c){return H(c)&&(c=e.factory.createNodeArray(c.slice(1),c.hasTrailingComma)),c}function b(c,f){return e.isIdentifier(f)&&e.getTextOfIdentifierOrLiteral(f)===c?e.factory.createShorthandPropertyAssignment(c):e.factory.createPropertyAssignment(c,f)}function A(c,f){var N=ee(c.parameters),V=e.isRestParameter(e.last(N)),Z=V?f.slice(0,N.length-1):f,S=e.map(Z,function(F,re){var q=x(N[re]),ue=b(q,F);return e.suppressLeadingAndTrailingTrivia(ue.name),e.isPropertyAssignment(ue)&&e.suppressLeadingAndTrailingTrivia(ue.initializer),e.copyComments(F,ue),ue});if(V&&f.length>=N.length){var ce=f.slice(N.length-1),ge=e.factory.createPropertyAssignment(x(e.last(N)),e.factory.createArrayLiteralExpression(ce));S.push(ge)}var ae=e.factory.createObjectLiteralExpression(S,!1);return ae}function E(c,f,N){var V=f.getTypeChecker(),Z=ee(c.parameters),S=e.map(Z,ue),ce=e.factory.createObjectBindingPattern(S),ge=ke(Z),ae;e.every(Z,Le)&&(ae=e.factory.createObjectLiteralExpression());var F=e.factory.createParameterDeclaration(void 0,void 0,void 0,ce,void 0,ge,ae);if(H(c.parameters)){var re=c.parameters[0],q=e.factory.createParameterDeclaration(void 0,void 0,void 0,re.name,void 0,re.type);return e.suppressLeadingAndTrailingTrivia(q.name),e.copyComments(re.name,q.name),re.type&&(e.suppressLeadingAndTrailingTrivia(q.type),e.copyComments(re.type,q.type)),e.factory.createNodeArray([q,F])}return e.factory.createNodeArray([F]);function ue(He){var Ne=e.factory.createBindingElement(void 0,void 0,x(He),e.isRestParameter(He)&&Le(He)?e.factory.createArrayLiteralExpression():He.initializer);return e.suppressLeadingAndTrailingTrivia(Ne),He.initializer&&Ne.initializer&&e.copyComments(He.initializer,Ne.initializer),Ne}function ke(He){var Ne=e.map(He,de),De=e.addEmitFlags(e.factory.createTypeLiteralNode(Ne),1);return De}function de(He){var Ne=He.type;!Ne&&(He.initializer||e.isRestParameter(He))&&(Ne=xe(He));var De=e.factory.createPropertySignature(void 0,x(He),Le(He)?e.factory.createToken(57):He.questionToken,Ne);return e.suppressLeadingAndTrailingTrivia(De),e.copyComments(He.name,De.name),He.type&&De.type&&e.copyComments(He.type,De.type),De}function xe(He){var Ne=V.getTypeAtLocation(He);return e.getTypeNodeIfAccessible(Ne,He,f,N)}function Le(He){if(e.isRestParameter(He)){var Ne=V.getTypeAtLocation(He);return!V.isTupleType(Ne)}return V.isOptionalParameter(He)}}function x(c){return e.getTextOfIdentifierOrLiteral(c.name)}function C(c){switch(c.parent.kind){case 255:var f=c.parent;if(f.name)return[f.name];var N=e.Debug.checkDefined(e.findModifier(f,88),"Nameless class declaration should be a default export");return[N];case 224:var V=c.parent,Z=c.parent.parent,S=V.name;return S?[S,Z.name]:[Z.name]}}function m(c){switch(c.kind){case 254:if(c.name)return[c.name];var f=e.Debug.checkDefined(e.findModifier(c,88),"Nameless function declaration should be a default export");return[f];case 167:return[c.name];case 169:var N=e.Debug.checkDefined(e.findChildOfKind(c,133,c.getSourceFile()),"Constructor declaration should have constructor keyword");if(c.parent.kind===224){var V=c.parent.parent;return[V.name,N]}return[N];case 212:return[c.parent.name];case 211:return c.name?[c.name,c.parent.name]:[c.parent.name];default:return e.Debug.assertNever(c,"Unexpected function declaration kind "+c.kind)}}})(a.convertParamsToDestructuredObject||(a.convertParamsToDestructuredObject={}))})(e.refactor||(e.refactor={}))})(un||(un={}));var un;(function(e){(function(a){(function(d){var g="Convert to template string",t=e.getLocaleSpecificMessage(e.Diagnostics.Convert_to_template_string),p={name:g,description:t,kind:"refactor.rewrite.string"};a.registerRefactor(g,{kinds:[p.kind],getEditsForAction:h,getAvailableActions:P});function P(M){var z=M.file,Y=M.startPosition,ne=J(z,Y),j=X(ne),H={name:g,description:t,actions:[]};return e.isBinaryExpression(j)&&se(j).isValidConcatenation?(H.actions.push(p),[H]):M.preferences.provideRefactorNotApplicableReason?(H.actions.push(Dt(Dt({},p),{notApplicableReason:e.getLocaleSpecificMessage(e.Diagnostics.Can_only_convert_string_concatenation)})),[H]):e.emptyArray}function J(M,z){var Y=e.getTokenAtPosition(M,z),ne=X(Y),j=!se(ne).isValidConcatenation;return j&&e.isParenthesizedExpression(ne.parent)&&e.isBinaryExpression(ne.parent.parent)?ne.parent.parent:Y}function h(M,z){var Y=M.file,ne=M.startPosition,j=J(Y,ne);switch(z){case t:return{edits:v(M,j)};default:return e.Debug.fail("invalid action")}}function v(M,z){var Y=X(z),ne=M.file,j=R(se(Y),ne),H=e.getTrailingCommentRanges(ne.text,Y.end);if(H){var K=H[H.length-1],ee={pos:H[0].pos,end:K.end};return e.textChanges.ChangeTracker.with(M,function(b){b.deleteRange(ne,ee),b.replaceNode(ne,Y,j)})}else return e.textChanges.ChangeTracker.with(M,function(b){return b.replaceNode(ne,Y,j)})}function I(M){return M.operatorToken.kind!==63}function X(M){var z=e.findAncestor(M.parent,function(Y){switch(Y.kind){case 204:case 205:return!1;case 221:case 219:return!(e.isBinaryExpression(Y.parent)&&I(Y.parent));default:return"quit"}});return z||M}function se(M){var z=function(ee){if(!e.isBinaryExpression(ee))return{nodes:[ee],operators:[],validOperators:!0,hasString:e.isStringLiteral(ee)||e.isNoSubstitutionTemplateLiteral(ee)};var b=z(ee.left),A=b.nodes,E=b.operators,x=b.hasString,C=b.validOperators;if(!(x||e.isStringLiteral(ee.right)||e.isTemplateExpression(ee.right)))return{nodes:[ee],operators:[],hasString:!1,validOperators:!0};var m=ee.operatorToken.kind===39,c=C&&m;return A.push(ee.right),E.push(ee.operatorToken),{nodes:A,operators:E,hasString:!0,validOperators:c}},Y=z(M),ne=Y.nodes,j=Y.operators,H=Y.validOperators,K=Y.hasString;return{nodes:ne,operators:j,isValidConcatenation:H&&K}}var y=function(M,z){return function(Y,ne){Y0;){var H=ne.shift();e.copyTrailingComments(M[H],j,z,3,!1),Y(H,j)}}};function D(M){return M.replace(/\\.|[$`]/g,function(z){return z[0]==="\\"?z:"\\"+z})}function U(M){var z=e.isTemplateHead(M)||e.isTemplateMiddle(M)?-2:-1;return e.getTextOfNode(M).slice(1,z)}function B(M,z){for(var Y=[],ne="",j="";M1)return se.getUnionType(e.mapDefined(w,function(U){return U.getReturnType()}))}var D=se.getSignatureFromDeclaration(y);if(D)return se.getReturnTypeOfSignature(D)}})(a.inferFunctionReturnType||(a.inferFunctionReturnType={}))})(e.refactor||(e.refactor={}))})(un||(un={}));var un;(function(e){e.servicesVersion="0.8";function a(re,q,ue,ke){var de=e.isNodeKind(re)?new d(re,q,ue):re===79?new v(79,q,ue):re===80?new I(80,q,ue):new h(re,q,ue);return de.parent=ke,de.flags=ke.flags&25358336,de}var d=function(){function re(q,ue,ke){this.pos=ue,this.end=ke,this.flags=0,this.modifierFlagsCache=0,this.transformFlags=0,this.parent=void 0,this.kind=q}return re.prototype.assertHasRealPosition=function(q){e.Debug.assert(!e.positionIsSynthesized(this.pos)&&!e.positionIsSynthesized(this.end),q||"Node must have a real position for this operation")},re.prototype.getSourceFile=function(){return e.getSourceFileOfNode(this)},re.prototype.getStart=function(q,ue){return this.assertHasRealPosition(),e.getTokenPosOfNode(this,q,ue)},re.prototype.getFullStart=function(){return this.assertHasRealPosition(),this.pos},re.prototype.getEnd=function(){return this.assertHasRealPosition(),this.end},re.prototype.getWidth=function(q){return this.assertHasRealPosition(),this.getEnd()-this.getStart(q)},re.prototype.getFullWidth=function(){return this.assertHasRealPosition(),this.end-this.pos},re.prototype.getLeadingTriviaWidth=function(q){return this.assertHasRealPosition(),this.getStart(q)-this.pos},re.prototype.getFullText=function(q){return this.assertHasRealPosition(),(q||this.getSourceFile()).text.substring(this.pos,this.end)},re.prototype.getText=function(q){return this.assertHasRealPosition(),q||(q=this.getSourceFile()),q.text.substring(this.getStart(q),this.getEnd())},re.prototype.getChildCount=function(q){return this.getChildren(q).length},re.prototype.getChildAt=function(q,ue){return this.getChildren(ue)[q]},re.prototype.getChildren=function(q){return this.assertHasRealPosition("Node without a real position cannot be scanned and thus has no token nodes - use forEachChild and collect the result if that's fine"),this._children||(this._children=g(this,q))},re.prototype.getFirstToken=function(q){this.assertHasRealPosition();var ue=this.getChildren(q);if(!!ue.length){var ke=e.find(ue,function(de){return de.kind<304||de.kind>342});return ke.kind<159?ke:ke.getFirstToken(q)}},re.prototype.getLastToken=function(q){this.assertHasRealPosition();var ue=this.getChildren(q),ke=e.lastOrUndefined(ue);if(!!ke)return ke.kind<159?ke:ke.getLastToken(q)},re.prototype.forEachChild=function(q,ue){return e.forEachChild(this,q,ue)},re}();function g(re,q){if(!e.isNodeKind(re.kind))return e.emptyArray;var ue=[];if(e.isJSDocCommentContainingNode(re))return re.forEachChild(function(Le){ue.push(Le)}),ue;e.scanner.setText((q||re.getSourceFile()).text);var ke=re.pos,de=function(Le){t(ue,ke,Le.pos,re),ue.push(Le),ke=Le.end},xe=function(Le){t(ue,ke,Le.pos,re),ue.push(p(Le,re)),ke=Le.end};return e.forEach(re.jsDoc,de),ke=re.pos,re.forEachChild(de,xe),t(ue,ke,re.end,re),e.scanner.setText(void 0),ue}function t(re,q,ue,ke){for(e.scanner.setTextPos(q);q=de.length&&(xe=this.getEnd()),xe||(xe=de[ke+1]-1);var Le=this.getFullText();return Le[xe]===` -`&&Le[xe-1]==="\r"?xe-1:xe},q.prototype.getNamedDeclarations=function(){return this.namedDeclarations||(this.namedDeclarations=this.computeNamedDeclarations()),this.namedDeclarations},q.prototype.computeNamedDeclarations=function(){var ue=e.createMultiMap();return this.forEachChild(Le),ue;function ke(He){var Ne=xe(He);Ne&&ue.add(Ne,He)}function de(He){var Ne=ue.get(He);return Ne||ue.set(He,Ne=[]),Ne}function xe(He){var Ne=e.getNonAssignedNameOfDeclaration(He);return Ne&&(e.isComputedPropertyName(Ne)&&e.isPropertyAccessExpression(Ne.expression)?Ne.expression.name.text:e.isPropertyName(Ne)?e.getNameFromPropertyName(Ne):void 0)}function Le(He){switch(He.kind){case 254:case 211:case 167:case 166:var Ne=He,De=xe(Ne);if(De){var Ee=de(De),We=e.lastOrUndefined(Ee);We&&Ne.parent===We.parent&&Ne.symbol===We.symbol?Ne.body&&!We.body&&(Ee[Ee.length-1]=Ne):Ee.push(Ne)}e.forEachChild(He,Le);break;case 255:case 224:case 256:case 257:case 258:case 259:case 263:case 273:case 268:case 265:case 266:case 170:case 171:case 180:ke(He),e.forEachChild(He,Le);break;case 162:if(!e.hasSyntacticModifier(He,16476))break;case 252:case 201:{var ye=He;if(e.isBindingPattern(ye.name)){e.forEachChild(ye.name,Le);break}ye.initializer&&Le(ye.initializer)}case 294:case 165:case 164:ke(He);break;case 270:var Ie=He;Ie.exportClause&&(e.isNamedExports(Ie.exportClause)?e.forEach(Ie.exportClause.elements,Le):Le(Ie.exportClause.name));break;case 264:var je=He.importClause;je&&(je.name&&ke(je.name),je.namedBindings&&(je.namedBindings.kind===266?ke(je.namedBindings):e.forEach(je.namedBindings.elements,Le)));break;case 219:e.getAssignmentDeclarationKind(He)!==0&&ke(He);default:e.forEachChild(He,Le)}}},q}(d),R=function(){function re(q,ue,ke){this.fileName=q,this.text=ue,this.skipTrivia=ke}return re.prototype.getLineAndCharacterOfPosition=function(q){return e.getLineAndCharacterOfPosition(this,q)},re}();function O(){return{getNodeConstructor:function(){return d},getTokenConstructor:function(){return h},getIdentifierConstructor:function(){return v},getPrivateIdentifierConstructor:function(){return I},getSourceFileConstructor:function(){return B},getSymbolConstructor:function(){return J},getTypeConstructor:function(){return X},getSignatureConstructor:function(){return se},getSourceMapSourceConstructor:function(){return R}}}function k(re){var q=!0;for(var ue in re)if(e.hasProperty(re,ue)&&!M(ue)){q=!1;break}if(q)return re;var ke={};for(var ue in re)if(e.hasProperty(re,ue)){var de=M(ue)?ue:ue.charAt(0).toLowerCase()+ue.substr(1);ke[de]=re[ue]}return ke}e.toEditorSettings=k;function M(re){return!re.length||re.charAt(0)===re.charAt(0).toLowerCase()}function z(re){return re?e.map(re,function(q){return q.text}).join(""):""}e.displayPartsToString=z;function Y(){return{target:1,jsx:1}}e.getDefaultCompilerOptions=Y;function ne(){return e.codefix.getSupportedErrorCodes()}e.getSupportedCodeFixes=ne;var j=function(){function re(q,ue){this.host=q,this.currentDirectory=q.getCurrentDirectory(),this.fileNameToEntry=new e.Map;for(var ke=q.getScriptFileNames(),de=0,xe=ke;de=this.throttleWaitMilliseconds?(this.lastCancellationCheckTime=q,this.hostCancellationToken.isCancellationRequested()):!1},re.prototype.throwIfCancellationRequested=function(){if(this.isCancellationRequested())throw e.tracing===null||e.tracing===void 0||e.tracing.instant("session","cancellationThrown",{kind:"ThrottledCancellationToken"}),new e.OperationCanceledException},re}();e.ThrottledCancellationToken=x;var C=["getSemanticDiagnostics","getSuggestionDiagnostics","getCompilerOptionsDiagnostics","getSemanticClassifications","getEncodedSemanticClassifications","getCodeFixesAtPosition","getCombinedCodeFix","applyCodeActionCommand","organizeImports","getEditsForFileRename","getEmitOutput","getApplicableRefactors","getEditsForRefactor","prepareCallHierarchy","provideCallHierarchyIncomingCalls","provideCallHierarchyOutgoingCalls","provideInlayHints"],m=Mr(Mr([],C,!0),["getCompletionsAtPosition","getCompletionEntryDetails","getCompletionEntrySymbol","getSignatureHelpItems","getQuickInfoAtPosition","getDefinitionAtPosition","getDefinitionAndBoundSpan","getImplementationAtPosition","getTypeDefinitionAtPosition","getReferencesAtPosition","findReferences","getOccurrencesAtPosition","getDocumentHighlights","getNavigateToItems","getRenameInfo","findRenameLocations","getApplicableRefactors"],!1);function c(re,q,ue){var ke;q===void 0&&(q=e.createDocumentRegistry(re.useCaseSensitiveFileNames&&re.useCaseSensitiveFileNames(),re.getCurrentDirectory()));var de;ue===void 0?de=e.LanguageServiceMode.Semantic:typeof ue=="boolean"?de=ue?e.LanguageServiceMode.Syntactic:e.LanguageServiceMode.Semantic:de=ue;var xe=new H(re),Le,He,Ne=0,De=re.getCancellationToken?new E(re.getCancellationToken()):A,Ee=re.getCurrentDirectory();!e.localizedDiagnosticMessages&&re.getLocalizedDiagnosticMessages&&e.setLocalizedDiagnosticMessages(re.getLocalizedDiagnosticMessages());function We(Tr){re.log&&re.log(Tr)}var ye=e.hostUsesCaseSensitiveFileNames(re),Ie=e.createGetCanonicalFileName(ye),je=e.getSourceMapper({useCaseSensitiveFileNames:function(){return ye},getCurrentDirectory:function(){return Ee},getProgram:we,fileExists:e.maybeBind(re,re.fileExists),readFile:e.maybeBind(re,re.readFile),getDocumentPositionMapper:e.maybeBind(re,re.getDocumentPositionMapper),getSourceFileLike:e.maybeBind(re,re.getSourceFileLike),log:We});function Sn(Tr){var vr=Le.getSourceFile(Tr);if(!vr){var Br=new Error("Could not find source file: '"+Tr+"'.");throw Br.ProgramFiles=Le.getSourceFiles().map(function(Wr){return Wr.fileName}),Br}return vr}function Me(){var Tr,vr,Br;if(e.Debug.assert(de!==e.LanguageServiceMode.Syntactic),re.getProjectVersion){var Wr=re.getProjectVersion();if(Wr){if(He===Wr&&!((Tr=re.hasChangedAutomaticTypeDirectiveNames)===null||Tr===void 0?void 0:Tr.call(re)))return;He=Wr}}var tt=re.getTypeRootsVersion?re.getTypeRootsVersion():0;Ne!==tt&&(We("TypeRoots version has changed; provide new program"),Le=void 0,Ne=tt);var er=new j(re,Ie),Zt=er.getRootFileNames(),Ra=re.getCompilationSettings()||Y(),Va=re.hasInvalidatedResolution||e.returnFalse,bi=e.maybeBind(re,re.hasChangedAutomaticTypeDirectiveNames),Fa=(vr=re.getProjectReferences)===null||vr===void 0?void 0:vr.call(re),ei,Di={useCaseSensitiveFileNames:ye,fileExists:ho,readFile:Ri,readDirectory:zi,trace:e.maybeBind(re,re.trace),getCurrentDirectory:function(){return Ee},onUnRecoverableConfigFileDiagnostic:e.noop};if(e.isProgramUptoDate(Le,Zt,Ra,function(za,fi){return re.getScriptVersion(fi)},ho,Va,bi,Ci,Fa))return;var Vi={getSourceFile:Pa,getSourceFileByPath:co,getCancellationToken:function(){return De},getCanonicalFileName:Ie,useCaseSensitiveFileNames:function(){return ye},getNewLine:function(){return e.getNewLineCharacter(Ra,function(){return e.getNewLineOrDefaultFromHost(re)})},getDefaultLibFileName:function(za){return re.getDefaultLibFileName(za)},writeFile:e.noop,getCurrentDirectory:function(){return Ee},fileExists:ho,readFile:Ri,getSymlinkCache:e.maybeBind(re,re.getSymlinkCache),realpath:e.maybeBind(re,re.realpath),directoryExists:function(za){return e.directoryProbablyExists(za,re)},getDirectories:function(za){return re.getDirectories?re.getDirectories(za):[]},readDirectory:zi,onReleaseOldSourceFile:Qo,onReleaseParsedCommandLine:Ki,hasInvalidatedResolution:Va,hasChangedAutomaticTypeDirectiveNames:bi,trace:Di.trace,resolveModuleNames:e.maybeBind(re,re.resolveModuleNames),resolveTypeReferenceDirectives:e.maybeBind(re,re.resolveTypeReferenceDirectives),useSourceOfProjectReferenceRedirect:e.maybeBind(re,re.useSourceOfProjectReferenceRedirect),getParsedCommandLine:Ci};(Br=re.setCompilerHost)===null||Br===void 0||Br.call(re,Vi);var ni=q.getKeyForCompilationSettings(Ra),Ti={rootNames:Zt,options:Ra,host:Vi,oldProgram:Le,projectReferences:Fa};Le=e.createProgram(Ti),er=void 0,ei=void 0,je.clearCache(),Le.getTypeChecker();return;function Ci(za){var fi=e.toPath(za,Ee,Ie),Wi=ei==null?void 0:ei.get(fi);if(Wi!==void 0)return Wi||void 0;var _o=re.getParsedCommandLine?re.getParsedCommandLine(za):Zi(za);return(ei||(ei=new e.Map)).set(fi,_o||!1),_o}function Zi(za){var fi=Pa(za,100);if(!!fi)return fi.path=e.toPath(za,Ee,Ie),fi.resolvedPath=fi.path,fi.originalFileName=fi.fileName,e.parseJsonSourceFileConfigFileContent(fi,Di,e.getNormalizedAbsolutePath(e.getDirectoryPath(za),Ee),void 0,e.getNormalizedAbsolutePath(za,Ee))}function Ki(za,fi,Wi){var _o;re.getParsedCommandLine?(_o=re.onReleaseParsedCommandLine)===null||_o===void 0||_o.call(re,za,fi,Wi):fi&&Qo(fi.sourceFile,Wi)}function ho(za){var fi=e.toPath(za,Ee,Ie),Wi=er&&er.getEntryByPath(fi);return Wi?!e.isString(Wi):!!re.fileExists&&re.fileExists(za)}function Ri(za){var fi=e.toPath(za,Ee,Ie),Wi=er&&er.getEntryByPath(fi);return Wi?e.isString(Wi)?void 0:e.getSnapshotText(Wi.scriptSnapshot):re.readFile&&re.readFile(za)}function zi(za,fi,Wi,_o,No){return e.Debug.checkDefined(re.readDirectory,"'LanguageServiceHost.readDirectory' must be implemented to correctly process 'projectReferences'"),re.readDirectory(za,fi,Wi,_o,No)}function Qo(za,fi){var Wi=q.getKeyForCompilationSettings(fi);q.releaseDocumentWithKey(za.resolvedPath,Wi,za.scriptKind)}function Pa(za,fi,Wi,_o){return co(za,e.toPath(za,Ee,Ie),fi,Wi,_o)}function co(za,fi,Wi,_o,No){e.Debug.assert(er!==void 0,"getOrCreateSourceFileByPath called after typical CompilerHost lifetime, check the callstack something with a reference to an old host.");var Mo=er&&er.getOrCreateEntryByPath(za,fi);if(!!Mo){if(!No){var yo=Le&&Le.getSourceFileByPath(fi);if(yo){if(Mo.scriptKind===yo.scriptKind)return q.updateDocumentWithKey(za,fi,Ra,ni,Mo.scriptSnapshot,Mo.version,Mo.scriptKind);q.releaseDocumentWithKey(yo.resolvedPath,q.getKeyForCompilationSettings(Le.getCompilerOptions()),yo.scriptKind)}}return q.acquireDocumentWithKey(za,fi,Ra,ni,Mo.scriptSnapshot,Mo.version,Mo.scriptKind)}}}function we(){if(de===e.LanguageServiceMode.Syntactic){e.Debug.assert(Le===void 0);return}return Me(),Le}function ze(){var Tr;return(Tr=re.getPackageJsonAutoImportProvider)===null||Tr===void 0?void 0:Tr.call(re)}function Cn(){Le=void 0}function an(){if(Le){var Tr=q.getKeyForCompilationSettings(Le.getCompilerOptions());e.forEach(Le.getSourceFiles(),function(vr){return q.releaseDocumentWithKey(vr.resolvedPath,Tr,vr.scriptKind)}),Le=void 0}re=void 0}function vn(Tr){return Me(),Le.getSyntacticDiagnostics(Sn(Tr),De).slice()}function Nn(Tr){Me();var vr=Sn(Tr),Br=Le.getSemanticDiagnostics(vr,De);if(!e.getEmitDeclarations(Le.getCompilerOptions()))return Br.slice();var Wr=Le.getDeclarationDiagnostics(vr,De);return Mr(Mr([],Br,!0),Wr,!0)}function Kn(Tr){return Me(),e.computeSuggestionDiagnostics(Sn(Tr),Le,De)}function $e(){return Me(),Mr(Mr([],Le.getOptionsDiagnostics(De),!0),Le.getGlobalDiagnostics(De),!0)}function ie(Tr,vr,Br){Br===void 0&&(Br=e.emptyOptions);var Wr=Dt(Dt({},e.identity(Br)),{includeCompletionsForModuleExports:Br.includeCompletionsForModuleExports||Br.includeExternalModuleExports,includeCompletionsWithInsertText:Br.includeCompletionsWithInsertText||Br.includeInsertTextCompletions});return Me(),e.Completions.getCompletionsAtPosition(re,Le,We,Sn(Tr),vr,Wr,Br.triggerCharacter,Br.triggerKind,De)}function dn(Tr,vr,Br,Wr,tt,er,Zt){return er===void 0&&(er=e.emptyOptions),Me(),e.Completions.getCompletionEntryDetails(Le,We,Sn(Tr),vr,{name:Br,source:tt,data:Zt},re,Wr&&e.formatting.getFormatContext(Wr,re),er,De)}function Tn(Tr,vr,Br,Wr,tt){return tt===void 0&&(tt=e.emptyOptions),Me(),e.Completions.getCompletionEntrySymbol(Le,We,Sn(Tr),vr,{name:Br,source:Wr},re,tt)}function qn(Tr,vr){Me();var Br=Sn(Tr),Wr=e.getTouchingPropertyName(Br,vr);if(Wr!==Br){var tt=Le.getTypeChecker(),er=oe(Wr),Zt=ce(er,tt);if(!Zt||tt.isUnknownSymbol(Zt)){var Ra=Be(Br,er,vr)?tt.getTypeAtLocation(er):void 0;return Ra&&{kind:"",kindModifiers:"",textSpan:e.createTextSpanFromNode(er,Br),displayParts:tt.runWithCancellationToken(De,function(Vi){return e.typeToDisplayParts(Vi,Ra,e.getContainerNode(er))}),documentation:Ra.symbol?Ra.symbol.getDocumentationComment(tt):void 0,tags:Ra.symbol?Ra.symbol.getJsDocTags(tt):void 0}}var Va=tt.runWithCancellationToken(De,function(Vi){return e.SymbolDisplay.getSymbolDisplayPartsDocumentationAndSymbolKind(Vi,Zt,Br,e.getContainerNode(er),er)}),bi=Va.symbolKind,Fa=Va.displayParts,ei=Va.documentation,Di=Va.tags;return{kind:bi,kindModifiers:e.SymbolDisplay.getSymbolModifiers(tt,Zt),textSpan:e.createTextSpanFromNode(er,Br),displayParts:Fa,documentation:ei,tags:Di}}}function oe(Tr){return e.isNewExpression(Tr.parent)&&Tr.pos===Tr.parent.pos?Tr.parent.expression:e.isNamedTupleMember(Tr.parent)&&Tr.pos===Tr.parent.pos?Tr.parent:Tr}function Be(Tr,vr,Br){switch(vr.kind){case 79:return!e.isLabelName(vr)&&!e.isTagName(vr)&&!e.isConstTypeReference(vr.parent);case 204:case 159:return!e.isInComment(Tr,Br);case 108:case 190:case 106:case 195:return!0;default:return!1}}function Te(Tr,vr){return Me(),e.GoToDefinition.getDefinitionAtPosition(Le,Sn(Tr),vr)}function qe(Tr,vr){return Me(),e.GoToDefinition.getDefinitionAndBoundSpan(Le,Sn(Tr),vr)}function cn(Tr,vr){return Me(),e.GoToDefinition.getTypeDefinitionAtPosition(Le.getTypeChecker(),Sn(Tr),vr)}function be(Tr,vr){return Me(),e.FindAllReferences.getImplementationsAtPosition(Le,De,Le.getSourceFiles(),Sn(Tr),vr)}function Xe(Tr,vr){return e.flatMap(En(Tr,vr,[Tr]),function(Br){return Br.highlightSpans.map(function(Wr){return Dt(Dt({fileName:Br.fileName,textSpan:Wr.textSpan,isWriteAccess:Wr.kind==="writtenReference",isDefinition:!1},Wr.isInString&&{isInString:!0}),Wr.contextSpan&&{contextSpan:Wr.contextSpan})})})}function En(Tr,vr,Br){var Wr=e.normalizePath(Tr);e.Debug.assert(Br.some(function(Zt){return e.normalizePath(Zt)===Wr})),Me();var tt=e.mapDefined(Br,function(Zt){return Le.getSourceFile(Zt)}),er=Sn(Tr);return e.DocumentHighlights.getDocumentHighlights(Le,De,er,vr,tt)}function Pe(Tr,vr,Br,Wr,tt){Me();var er=Sn(Tr),Zt=e.getAdjustedRenameLocation(e.getTouchingPropertyName(er,vr));if(e.isIdentifier(Zt)&&(e.isJsxOpeningElement(Zt.parent)||e.isJsxClosingElement(Zt.parent))&&e.isIntrinsicJsxName(Zt.escapedText)){var Ra=Zt.parent.parent,Va=Ra.openingElement,bi=Ra.closingElement;return[Va,bi].map(function(Fa){var ei=e.createTextSpanFromNode(Fa.tagName,er);return Dt({fileName:er.fileName,textSpan:ei},e.FindAllReferences.toContextSpan(ei,er,Fa.parent))})}else return ln(Zt,vr,{findInStrings:Br,findInComments:Wr,providePrefixAndSuffixTextForRename:tt,use:2},function(Fa,ei,Di){return e.FindAllReferences.toRenameLocation(Fa,ei,Di,tt||!1)})}function he(Tr,vr){return Me(),ln(e.getTouchingPropertyName(Sn(Tr),vr),vr,{use:1},e.FindAllReferences.toReferenceEntry)}function ln(Tr,vr,Br,Wr){Me();var tt=Br&&Br.use===2?Le.getSourceFiles().filter(function(er){return!Le.isSourceFileDefaultLibrary(er)}):Le.getSourceFiles();return e.FindAllReferences.findReferenceOrRenameEntries(Le,De,tt,Tr,vr,Br,Wr)}function sn(Tr,vr){return Me(),e.FindAllReferences.findReferencedSymbols(Le,De,Le.getSourceFiles(),Sn(Tr),vr)}function An(Tr){return Me(),e.FindAllReferences.Core.getReferencesForFileName(Tr,Le,Le.getSourceFiles()).map(e.FindAllReferences.toReferenceEntry)}function Un(Tr,vr,Br,Wr){Wr===void 0&&(Wr=!1),Me();var tt=Br?[Sn(Br)]:Le.getSourceFiles();return e.NavigateTo.getNavigateToItems(tt,Le.getTypeChecker(),De,Tr,vr,Wr)}function pr(Tr,vr,Br){Me();var Wr=Sn(Tr),tt=re.getCustomTransformers&&re.getCustomTransformers();return e.getFileEmitOutput(Le,Wr,!!vr,De,tt,Br)}function Cr(Tr,vr,Br){var Wr=Br===void 0?e.emptyOptions:Br,tt=Wr.triggerReason;Me();var er=Sn(Tr);return e.SignatureHelp.getSignatureHelpItems(Le,er,vr,tt,De)}function xr(Tr){return xe.getCurrentSourceFile(Tr)}function Gr(Tr,vr,Br){var Wr=xe.getCurrentSourceFile(Tr),tt=e.getTouchingPropertyName(Wr,vr);if(tt!==Wr){switch(tt.kind){case 204:case 159:case 10:case 95:case 110:case 104:case 106:case 108:case 190:case 79:break;default:return}for(var er=tt;;)if(e.isRightSideOfPropertyAccess(er)||e.isRightSideOfQualifiedName(er))er=er.parent;else if(e.isNameOfModuleDeclaration(er))if(er.parent.parent.kind===259&&er.parent.parent.body===er.parent)er=er.parent.parent.name;else break;else break;return e.createTextSpanFromBounds(er.getStart(),tt.getEnd())}}function Ve(Tr,vr){var Br=xe.getCurrentSourceFile(Tr);return e.BreakpointResolver.spanInSourceFileAtLocation(Br,vr)}function Ln(Tr){return e.NavigationBar.getNavigationBarItems(xe.getCurrentSourceFile(Tr),De)}function Wn(Tr){return e.NavigationBar.getNavigationTree(xe.getCurrentSourceFile(Tr),De)}function Je(Tr,vr,Br){Me();var Wr=Br||"original";return Wr==="2020"?e.classifier.v2020.getSemanticClassifications(Le,De,Sn(Tr),vr):e.getSemanticClassifications(Le.getTypeChecker(),De,Sn(Tr),Le.getClassifiableNames(),vr)}function kn(Tr,vr,Br){Me();var Wr=Br||"original";return Wr==="original"?e.getEncodedSemanticClassifications(Le.getTypeChecker(),De,Sn(Tr),Le.getClassifiableNames(),vr):e.classifier.v2020.getEncodedSemanticClassifications(Le,De,Sn(Tr),vr)}function Qn(Tr,vr){return e.getSyntacticClassifications(De,xe.getCurrentSourceFile(Tr),vr)}function jn(Tr,vr){return e.getEncodedSyntacticClassifications(De,xe.getCurrentSourceFile(Tr),vr)}function on(Tr){var vr=xe.getCurrentSourceFile(Tr);return e.OutliningElementsCollector.collectElements(vr,De)}var fe=new e.Map(e.getEntries((ke={},ke[18]=19,ke[20]=21,ke[22]=23,ke[31]=29,ke)));fe.forEach(function(Tr,vr){return fe.set(Tr.toString(),Number(vr))});function Ge(Tr,vr){var Br=xe.getCurrentSourceFile(Tr),Wr=e.getTouchingToken(Br,vr),tt=Wr.getStart(Br)===vr?fe.get(Wr.kind.toString()):void 0,er=tt&&e.findChildOfKind(Wr.parent,tt,Br);return er?[e.createTextSpanFromNode(Wr,Br),e.createTextSpanFromNode(er,Br)].sort(function(Zt,Ra){return Zt.start-Ra.start}):e.emptyArray}function tn(Tr,vr,Br){var Wr=e.timestamp(),tt=k(Br),er=xe.getCurrentSourceFile(Tr);We("getIndentationAtPosition: getCurrentSourceFile: "+(e.timestamp()-Wr)),Wr=e.timestamp();var Zt=e.formatting.SmartIndenter.getIndentation(vr,er,tt);return We("getIndentationAtPosition: computeIndentation : "+(e.timestamp()-Wr)),Zt}function le(Tr,vr,Br,Wr){var tt=xe.getCurrentSourceFile(Tr);return e.formatting.formatSelection(vr,Br,tt,e.formatting.getFormatContext(k(Wr),re))}function Vn(Tr,vr){return e.formatting.formatDocument(xe.getCurrentSourceFile(Tr),e.formatting.getFormatContext(k(vr),re))}function or(Tr,vr,Br,Wr){var tt=xe.getCurrentSourceFile(Tr),er=e.formatting.getFormatContext(k(Wr),re);if(!e.isInComment(tt,vr))switch(Br){case"{":return e.formatting.formatOnOpeningCurly(vr,tt,er);case"}":return e.formatting.formatOnClosingCurly(vr,tt,er);case";":return e.formatting.formatOnSemicolon(vr,tt,er);case` -`:return e.formatting.formatOnEnter(vr,tt,er)}return[]}function bn(Tr,vr,Br,Wr,tt,er){er===void 0&&(er=e.emptyOptions),Me();var Zt=Sn(Tr),Ra=e.createTextSpanFromBounds(vr,Br),Va=e.formatting.getFormatContext(tt,re);return e.flatMap(e.deduplicate(Wr,e.equateValues,e.compareValues),function(bi){return De.throwIfCancellationRequested(),e.codefix.getFixes({errorCode:bi,sourceFile:Zt,span:Ra,program:Le,host:re,cancellationToken:De,formatContext:Va,preferences:er})})}function In(Tr,vr,Br,Wr){Wr===void 0&&(Wr=e.emptyOptions),Me(),e.Debug.assert(Tr.type==="file");var tt=Sn(Tr.fileName),er=e.formatting.getFormatContext(Br,re);return e.codefix.getAllFixes({fixId:vr,sourceFile:tt,program:Le,host:re,cancellationToken:De,formatContext:er,preferences:Wr})}function pn(Tr,vr,Br){Br===void 0&&(Br=e.emptyOptions),Me(),e.Debug.assert(Tr.type==="file");var Wr=Sn(Tr.fileName),tt=e.formatting.getFormatContext(vr,re);return e.OrganizeImports.organizeImports(Wr,tt,re,Le,Br,Tr.skipDestructiveCodeActions)}function Rn(Tr,vr,Br,Wr){return Wr===void 0&&(Wr=e.emptyOptions),e.getEditsForFileRename(we(),Tr,vr,re,e.formatting.getFormatContext(Br,re),Wr,je)}function hn(Tr,vr){var Br=typeof Tr=="string"?vr:Tr;return e.isArray(Br)?Promise.all(Br.map(function(Wr){return rr(Wr)})):rr(Br)}function rr(Tr){var vr=function(Br){return e.toPath(Br,Ee,Ie)};return e.Debug.assertEqual(Tr.type,"install package"),re.installPackage?re.installPackage({fileName:vr(Tr.file),packageName:Tr.packageName}):Promise.reject("Host does not implement `installPackage`")}function lr(Tr,vr,Br){return e.JsDoc.getDocCommentTemplateAtPosition(e.getNewLineOrDefaultFromHost(re),xe.getCurrentSourceFile(Tr),vr,Br)}function dr(Tr,vr,Br){if(Br===60)return!1;var Wr=xe.getCurrentSourceFile(Tr);if(e.isInString(Wr,vr))return!1;if(e.isInsideJsxElementOrAttribute(Wr,vr))return Br===123;if(e.isInTemplateString(Wr,vr))return!1;switch(Br){case 39:case 34:case 96:return!e.isInComment(Wr,vr)}return!0}function gr(Tr,vr){var Br=xe.getCurrentSourceFile(Tr),Wr=e.findPrecedingToken(vr,Br);if(!!Wr){var tt=Wr.kind===31&&e.isJsxOpeningElement(Wr.parent)?Wr.parent.parent:e.isJsxText(Wr)?Wr.parent:void 0;if(tt&&qr(tt))return{newText:""}}}function zr(Tr,vr){return{lineStarts:Tr.getLineStarts(),firstLine:Tr.getLineAndCharacterOfPosition(vr.pos).line,lastLine:Tr.getLineAndCharacterOfPosition(vr.end).line}}function Tt(Tr,vr,Br){for(var Wr=xe.getCurrentSourceFile(Tr),tt=[],er=zr(Wr,vr),Zt=er.lineStarts,Ra=er.firstLine,Va=er.lastLine,bi=Br||!1,Fa=Number.MAX_VALUE,ei=new e.Map,Di=new RegExp(/\S/),Vi=e.isInsideJsxElement(Wr,Zt[Ra]),ni=Vi?"{/*":"//",Ti=Ra;Ti<=Va;Ti++){var Ci=Wr.text.substring(Zt[Ti],Wr.getLineEndOfPosition(Zt[Ti])),Zi=Di.exec(Ci);Zi&&(Fa=Math.min(Fa,Zi.index),ei.set(Ti.toString(),Zi.index),Ci.substr(Zi.index,ni.length)!==ni&&(bi=Br===void 0||Br))}for(var Ti=Ra;Ti<=Va;Ti++)if(!(Ra!==Va&&Zt[Ti]===vr.end)){var Ki=ei.get(Ti.toString());Ki!==void 0&&(Vi?tt.push.apply(tt,ht(Tr,{pos:Zt[Ti]+Fa,end:Wr.getLineEndOfPosition(Zt[Ti])},bi,Vi)):bi?tt.push({newText:ni,span:{length:0,start:Zt[Ti]+Fa}}):Wr.text.substr(Zt[Ti]+Ki,ni.length)===ni&&tt.push({newText:"",span:{length:ni.length,start:Zt[Ti]+Ki}}))}return tt}function ht(Tr,vr,Br,Wr){for(var tt,er=xe.getCurrentSourceFile(Tr),Zt=[],Ra=er.text,Va=!1,bi=Br||!1,Fa=[],ei=vr.pos,Di=Wr!==void 0?Wr:e.isInsideJsxElement(er,ei),Vi=Di?"{/*":"/*",ni=Di?"*/}":"*/",Ti=Di?"\\{\\/\\*":"\\/\\*",Ci=Di?"\\*\\/\\}":"\\*\\/";ei<=vr.end;){var Zi=Ra.substr(ei,Vi.length)===Vi?Vi.length:0,Ki=e.isInComment(er,ei+Zi);if(Ki)Di&&(Ki.pos--,Ki.end++),Fa.push(Ki.pos),Ki.kind===3&&Fa.push(Ki.end),Va=!0,ei=Ki.end+1;else{var ho=Ra.substring(ei,vr.end).search("("+Ti+")|("+Ci+")");bi=Br!==void 0?Br:bi||!e.isTextWhiteSpaceLike(Ra,ei,ho===-1?vr.end:ei+ho),ei=ho===-1?vr.end+1:ei+ho+ni.length}}if(bi||!Va){((tt=e.isInComment(er,vr.pos))===null||tt===void 0?void 0:tt.kind)!==2&&e.insertSorted(Fa,vr.pos,e.compareValues),e.insertSorted(Fa,vr.end,e.compareValues);var Ri=Fa[0];Ra.substr(Ri,Vi.length)!==Vi&&Zt.push({newText:Vi,span:{length:0,start:Ri}});for(var zi=1;zi0?co-ni.length:0,Zi=Ra.substr(za,ni.length)===ni?ni.length:0;Zt.push({newText:"",span:{length:Vi.length,start:co-Zi}})}return Zt}function Or(Tr,vr){var Br=xe.getCurrentSourceFile(Tr),Wr=zr(Br,vr),tt=Wr.firstLine,er=Wr.lastLine;return tt===er&&vr.pos!==vr.end?ht(Tr,vr,!0):Tt(Tr,vr,!0)}function dt(Tr,vr){var Br=xe.getCurrentSourceFile(Tr),Wr=[],tt=vr.pos,er=vr.end;tt===er&&(er+=e.isInsideJsxElement(Br,tt)?2:1);for(var Zt=tt;Zt<=er;Zt++){var Ra=e.isInComment(Br,Zt);if(Ra){switch(Ra.kind){case 2:Wr.push.apply(Wr,Tt(Tr,{end:Ra.end,pos:Ra.pos+1},!1));break;case 3:Wr.push.apply(Wr,ht(Tr,{end:Ra.end,pos:Ra.pos+1},!1))}Zt=Ra.end+1}}return Wr}function qr(Tr){var vr=Tr.openingElement,Br=Tr.closingElement,Wr=Tr.parent;return!e.tagNamesAreEquivalent(vr.tagName,Br.tagName)||e.isJsxElement(Wr)&&e.tagNamesAreEquivalent(vr.tagName,Wr.openingElement.tagName)&&qr(Wr)}function Xt(Tr,vr,Br){var Wr=xe.getCurrentSourceFile(Tr),tt=e.formatting.getRangeOfEnclosingComment(Wr,vr);return tt&&(!Br||tt.kind===3)?e.createTextSpanFromRange(tt):void 0}function fr(Tr,vr){Me();var Br=Sn(Tr);De.throwIfCancellationRequested();var Wr=Br.text,tt=[];if(vr.length>0&&!Ci(Br.fileName))for(var er=ni(),Zt=void 0;Zt=er.exec(Wr);){De.throwIfCancellationRequested();var Ra=3;e.Debug.assert(Zt.length===vr.length+Ra);var Va=Zt[1],bi=Zt.index+Va.length;if(!!e.isInComment(Br,bi)){for(var Fa=void 0,ei=0;ei=97&&Zi<=122||Zi>=65&&Zi<=90||Zi>=48&&Zi<=57}function Ci(Zi){return e.stringContains(Zi,"/node_modules/")}}function Pt(Tr,vr,Br){return Me(),e.Rename.getRenameInfo(Le,Sn(Tr),vr,Br)}function fa(Tr,vr,Br,Wr,tt,er){var Zt=typeof vr=="number"?[vr,void 0]:[vr.pos,vr.end],Ra=Zt[0],Va=Zt[1];return{file:Tr,startPosition:Ra,endPosition:Va,program:we(),host:re,formatContext:e.formatting.getFormatContext(Wr,re),cancellationToken:De,preferences:Br,triggerReason:tt,kind:er}}function Xa(Tr,vr,Br){return{file:Tr,program:we(),host:re,span:vr,preferences:Br,cancellationToken:De}}function Ka(Tr,vr){return e.SmartSelectionRange.getSmartSelectionRange(vr,xe.getCurrentSourceFile(Tr))}function Ei(Tr,vr,Br,Wr,tt){Br===void 0&&(Br=e.emptyOptions),Me();var er=Sn(Tr);return e.refactor.getApplicableRefactors(fa(er,vr,Br,e.emptyOptions,Wr,tt))}function ti(Tr,vr,Br,Wr,tt,er){er===void 0&&(er=e.emptyOptions),Me();var Zt=Sn(Tr);return e.refactor.getEditsForRefactor(fa(Zt,Br,er,vr),Wr,tt)}function ta(Tr,vr){return vr===0?{line:0,character:0}:je.toLineColumnOffset(Tr,vr)}function yr(Tr,vr){Me();var Br=e.CallHierarchy.resolveCallHierarchyDeclaration(Le,e.getTouchingPropertyName(Sn(Tr),vr));return Br&&e.mapOneOrMany(Br,function(Wr){return e.CallHierarchy.createCallHierarchyItem(Le,Wr)})}function Kr(Tr,vr){Me();var Br=Sn(Tr),Wr=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(Le,vr===0?Br:e.getTouchingPropertyName(Br,vr)));return Wr?e.CallHierarchy.getIncomingCalls(Le,Wr,De):[]}function Vr(Tr,vr){Me();var Br=Sn(Tr),Wr=e.firstOrOnly(e.CallHierarchy.resolveCallHierarchyDeclaration(Le,vr===0?Br:e.getTouchingPropertyName(Br,vr)));return Wr?e.CallHierarchy.getOutgoingCalls(Le,Wr):[]}function wt(Tr,vr,Br){Br===void 0&&(Br=e.emptyOptions),Me();var Wr=Sn(Tr);return e.InlayHints.provideInlayHints(Xa(Wr,vr,Br))}var Bt={dispose:an,cleanupSemanticCache:Cn,getSyntacticDiagnostics:vn,getSemanticDiagnostics:Nn,getSuggestionDiagnostics:Kn,getCompilerOptionsDiagnostics:$e,getSyntacticClassifications:Qn,getSemanticClassifications:Je,getEncodedSyntacticClassifications:jn,getEncodedSemanticClassifications:kn,getCompletionsAtPosition:ie,getCompletionEntryDetails:dn,getCompletionEntrySymbol:Tn,getSignatureHelpItems:Cr,getQuickInfoAtPosition:qn,getDefinitionAtPosition:Te,getDefinitionAndBoundSpan:qe,getImplementationAtPosition:be,getTypeDefinitionAtPosition:cn,getReferencesAtPosition:he,findReferences:sn,getFileReferences:An,getOccurrencesAtPosition:Xe,getDocumentHighlights:En,getNameOrDottedNameSpan:Gr,getBreakpointStatementAtPosition:Ve,getNavigateToItems:Un,getRenameInfo:Pt,getSmartSelectionRange:Ka,findRenameLocations:Pe,getNavigationBarItems:Ln,getNavigationTree:Wn,getOutliningSpans:on,getTodoComments:fr,getBraceMatchingAtPosition:Ge,getIndentationAtPosition:tn,getFormattingEditsForRange:le,getFormattingEditsForDocument:Vn,getFormattingEditsAfterKeystroke:or,getDocCommentTemplateAtPosition:lr,isValidBraceCompletionAtPosition:dr,getJsxClosingTagAtPosition:gr,getSpanOfEnclosingComment:Xt,getCodeFixesAtPosition:bn,getCombinedCodeFix:In,applyCodeActionCommand:hn,organizeImports:pn,getEditsForFileRename:Rn,getEmitOutput:pr,getNonBoundSourceFile:xr,getProgram:we,getAutoImportProvider:ze,getApplicableRefactors:Ei,getEditsForRefactor:ti,toLineColumnOffset:ta,getSourceMapper:function(){return je},clearSourceMapperCache:function(){return je.clearCache()},prepareCallHierarchy:yr,provideCallHierarchyIncomingCalls:Kr,provideCallHierarchyOutgoingCalls:Vr,toggleLineComment:Tt,toggleMultilineComment:ht,commentSelection:Or,uncommentSelection:dt,provideInlayHints:wt};switch(de){case e.LanguageServiceMode.Semantic:break;case e.LanguageServiceMode.PartialSemantic:C.forEach(function(Tr){return Bt[Tr]=function(){throw new Error("LanguageService Operation: "+Tr+" not allowed in LanguageServiceMode.PartialSemantic")}});break;case e.LanguageServiceMode.Syntactic:m.forEach(function(Tr){return Bt[Tr]=function(){throw new Error("LanguageService Operation: "+Tr+" not allowed in LanguageServiceMode.Syntactic")}});break;default:e.Debug.assertNever(de)}return Bt}e.createLanguageService=c;function f(re){return re.nameTable||N(re),re.nameTable}e.getNameTable=f;function N(re){var q=re.nameTable=new e.Map;re.forEachChild(function ue(ke){if(e.isIdentifier(ke)&&!e.isTagName(ke)&&ke.escapedText||e.isStringOrNumericLiteralLike(ke)&&V(ke)){var de=e.getEscapedTextOfIdentifierOrLiteral(ke);q.set(de,q.get(de)===void 0?ke.pos:-1)}else if(e.isPrivateIdentifier(ke)){var de=ke.escapedText;q.set(de,q.get(de)===void 0?ke.pos:-1)}if(e.forEachChild(ke,ue),e.hasJSDocNodes(ke))for(var xe=0,Le=ke.jsDoc;xeP){var J=e.findPrecedingToken(p.pos,g);if(!J||g.getLineAndCharacterOfPosition(J.getEnd()).line!==P)return;p=J}if(p.flags&8388608)return;return w(p);function h(D,U){var B=D.decorators?e.skipTrivia(g.text,D.decorators.end):D.getStart(g);return e.createTextSpanFromBounds(B,(U||D).getEnd())}function v(D,U){return h(D,e.findNextToken(U,U.parent,g))}function I(D,U){return D&&P===g.getLineAndCharacterOfPosition(D.getStart(g)).line?w(D):w(U)}function X(D){return e.createTextSpanFromBounds(e.skipTrivia(g.text,D.pos),D.end)}function se(D){return w(e.findPrecedingToken(D.pos,g))}function y(D){return w(e.findNextToken(D,D.parent,g))}function w(D){if(D){var U=D.parent;switch(D.kind){case 235:return ne(D.declarationList.declarations[0]);case 252:case 165:case 164:return ne(D);case 162:return H(D);case 254:case 167:case 166:case 170:case 171:case 169:case 211:case 212:return ee(D);case 233:if(e.isFunctionBlock(D))return b(D);case 260:return A(D);case 290:return A(D.block);case 236:return h(D.expression);case 245:return h(D.getChildAt(0),D.expression);case 239:return v(D,D.expression);case 238:return w(D.statement);case 251:return h(D.getChildAt(0));case 237:return v(D,D.expression);case 248:return w(D.statement);case 244:case 243:return h(D.getChildAt(0),D.label);case 240:return x(D);case 241:return v(D,D.expression);case 242:return E(D);case 247:return v(D,D.expression);case 287:case 288:return w(D.statements[0]);case 250:return A(D.tryBlock);case 249:return h(D,D.expression);case 269:return h(D,D.expression);case 263:return h(D,D.moduleReference);case 264:return h(D,D.moduleSpecifier);case 270:return h(D,D.moduleSpecifier);case 259:if(e.getModuleInstanceState(D)!==1)return;case 255:case 258:case 294:case 201:return h(D);case 246:return w(D.statement);case 163:return X(U.decorators);case 199:case 200:return C(D);case 256:case 257:return;case 26:case 1:return I(e.findPrecedingToken(D.pos,g));case 27:return se(D);case 18:return c(D);case 19:return f(D);case 23:return N(D);case 20:return V(D);case 21:return Z(D);case 58:return S(D);case 31:case 29:return ce(D);case 115:return ge(D);case 91:case 83:case 96:return y(D);case 158:return ae(D);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(D))return m(D);if((D.kind===79||D.kind===223||D.kind===291||D.kind===292)&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(U))return h(D);if(D.kind===219){var B=D,R=B.left,O=B.operatorToken;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(R))return m(R);if(O.kind===63&&e.isArrayLiteralOrObjectLiteralDestructuringPattern(D.parent))return h(D);if(O.kind===27)return w(R)}if(e.isExpressionNode(D))switch(U.kind){case 238:return se(D);case 163:return w(D.parent);case 240:case 242:return h(D);case 219:if(D.parent.operatorToken.kind===27)return h(D);break;case 212:if(D.parent.body===D)return h(D);break}switch(D.parent.kind){case 291:if(D.parent.name===D&&!e.isArrayLiteralOrObjectLiteralDestructuringPattern(D.parent.parent))return w(D.parent.initializer);break;case 209:if(D.parent.type===D)return y(D.parent.type);break;case 252:case 162:{var k=D.parent,M=k.initializer,z=k.type;if(M===D||z===D||e.isAssignmentOperator(D.kind))return se(D);break}case 219:{var R=D.parent.left;if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(R)&&D!==R)return se(D);break}default:if(e.isFunctionLike(D.parent)&&D.parent.type===D)return se(D)}return w(D.parent)}}function Y(F){return e.isVariableDeclarationList(F.parent)&&F.parent.declarations[0]===F?h(e.findPrecedingToken(F.pos,g,F.parent),F):h(F)}function ne(F){if(F.parent.parent.kind===241)return w(F.parent.parent);var re=F.parent;if(e.isBindingPattern(F.name))return C(F.name);if(F.initializer||e.hasSyntacticModifier(F,1)||re.parent.kind===242)return Y(F);if(e.isVariableDeclarationList(F.parent)&&F.parent.declarations[0]!==F)return w(e.findPrecedingToken(F.pos,g,F.parent))}function j(F){return!!F.initializer||F.dotDotDotToken!==void 0||e.hasSyntacticModifier(F,4|8)}function H(F){if(e.isBindingPattern(F.name))return C(F.name);if(j(F))return h(F);var re=F.parent,q=re.parameters.indexOf(F);return e.Debug.assert(q!==-1),q!==0?H(re.parameters[q-1]):w(re.body)}function K(F){return e.hasSyntacticModifier(F,1)||F.parent.kind===255&&F.kind!==169}function ee(F){if(!!F.body)return K(F)?h(F):w(F.body)}function b(F){var re=F.statements.length?F.statements[0]:F.getLastToken();return K(F.parent)?I(F.parent,re):w(re)}function A(F){switch(F.parent.kind){case 259:if(e.getModuleInstanceState(F.parent)!==1)return;case 239:case 237:case 241:return I(F.parent,F.statements[0]);case 240:case 242:return I(e.findPrecedingToken(F.pos,g,F.parent),F.statements[0])}return w(F.statements[0])}function E(F){if(F.initializer.kind===253){var re=F.initializer;if(re.declarations.length>0)return w(re.declarations[0])}else return w(F.initializer)}function x(F){if(F.initializer)return E(F);if(F.condition)return h(F.condition);if(F.incrementor)return h(F.incrementor)}function C(F){var re=e.forEach(F.elements,function(q){return q.kind!==225?q:void 0});return re?w(re):F.parent.kind===201?h(F.parent):Y(F.parent)}function m(F){e.Debug.assert(F.kind!==200&&F.kind!==199);var re=F.kind===202?F.elements:F.properties,q=e.forEach(re,function(ue){return ue.kind!==225?ue:void 0});return q?w(q):h(F.parent.kind===219?F.parent:F)}function c(F){switch(F.parent.kind){case 258:var re=F.parent;return I(e.findPrecedingToken(F.pos,g,F.parent),re.members.length?re.members[0]:re.getLastToken(g));case 255:var q=F.parent;return I(e.findPrecedingToken(F.pos,g,F.parent),q.members.length?q.members[0]:q.getLastToken(g));case 261:return I(F.parent.parent,F.parent.clauses[0])}return w(F.parent)}function f(F){switch(F.parent.kind){case 260:if(e.getModuleInstanceState(F.parent.parent)!==1)return;case 258:case 255:return h(F);case 233:if(e.isFunctionBlock(F.parent))return h(F);case 290:return w(e.lastOrUndefined(F.parent.statements));case 261:var re=F.parent,q=e.lastOrUndefined(re.clauses);return q?w(e.lastOrUndefined(q.statements)):void 0;case 199:var ue=F.parent;return w(e.lastOrUndefined(ue.elements)||ue);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(F.parent)){var ke=F.parent;return h(e.lastOrUndefined(ke.properties)||ke)}return w(F.parent)}}function N(F){switch(F.parent.kind){case 200:var re=F.parent;return h(e.lastOrUndefined(re.elements)||re);default:if(e.isArrayLiteralOrObjectLiteralDestructuringPattern(F.parent)){var q=F.parent;return h(e.lastOrUndefined(q.elements)||q)}return w(F.parent)}}function V(F){return F.parent.kind===238||F.parent.kind===206||F.parent.kind===207?se(F):F.parent.kind===210?y(F):w(F.parent)}function Z(F){switch(F.parent.kind){case 211:case 254:case 212:case 167:case 166:case 170:case 171:case 169:case 239:case 238:case 240:case 242:case 206:case 207:case 210:return se(F);default:return w(F.parent)}}function S(F){return e.isFunctionLike(F.parent)||F.parent.kind===291||F.parent.kind===162?se(F):w(F.parent)}function ce(F){return F.parent.kind===209?y(F):w(F.parent)}function ge(F){return F.parent.kind===238?v(F,F.parent.expression):w(F.parent)}function ae(F){return F.parent.kind===242?y(F):w(F.parent)}}}a.spanInSourceFileAtLocation=d})(e.BreakpointResolver||(e.BreakpointResolver={}))})(un||(un={}));var un;(function(e){function a(d,g,t){var p=[];t=e.fixupCompilerOptions(t,p);var P=e.isArray(d)?d:[d],J=e.transformNodes(void 0,void 0,e.factory,t,P,g,!0);return J.diagnostics=e.concatenate(J.diagnostics,p),J}e.transform=a})(un||(un={}));var zE=function(){return this}(),un;(function(e){function a(U,B){U&&U.log("*INTERNAL ERROR* - Exception in typescript services: "+B.message)}var d=function(){function U(B){this.scriptSnapshotShim=B}return U.prototype.getText=function(B,R){return this.scriptSnapshotShim.getText(B,R)},U.prototype.getLength=function(){return this.scriptSnapshotShim.getLength()},U.prototype.getChangeRange=function(B){var R=B,O=this.scriptSnapshotShim.getChangeRange(R.scriptSnapshotShim);if(O===null)return null;var k=JSON.parse(O);return e.createTextChangeRange(e.createTextSpan(k.span.start,k.span.length),k.newLength)},U.prototype.dispose=function(){"dispose"in this.scriptSnapshotShim&&this.scriptSnapshotShim.dispose()},U}(),g=function(){function U(B){var R=this;this.shimHost=B,this.loggingEnabled=!1,this.tracingEnabled=!1,"getModuleResolutionsForFile"in this.shimHost&&(this.resolveModuleNames=function(O,k){var M=JSON.parse(R.shimHost.getModuleResolutionsForFile(k));return e.map(O,function(z){var Y=e.getProperty(M,z);return Y?{resolvedFileName:Y,extension:e.extensionFromPath(Y),isExternalLibraryImport:!1}:void 0})}),"directoryExists"in this.shimHost&&(this.directoryExists=function(O){return R.shimHost.directoryExists(O)}),"getTypeReferenceDirectiveResolutionsForFile"in this.shimHost&&(this.resolveTypeReferenceDirectives=function(O,k){var M=JSON.parse(R.shimHost.getTypeReferenceDirectiveResolutionsForFile(k));return e.map(O,function(z){return e.getProperty(M,z)})})}return U.prototype.log=function(B){this.loggingEnabled&&this.shimHost.log(B)},U.prototype.trace=function(B){this.tracingEnabled&&this.shimHost.trace(B)},U.prototype.error=function(B){this.shimHost.error(B)},U.prototype.getProjectVersion=function(){if(!!this.shimHost.getProjectVersion)return this.shimHost.getProjectVersion()},U.prototype.getTypeRootsVersion=function(){return this.shimHost.getTypeRootsVersion?this.shimHost.getTypeRootsVersion():0},U.prototype.useCaseSensitiveFileNames=function(){return this.shimHost.useCaseSensitiveFileNames?this.shimHost.useCaseSensitiveFileNames():!1},U.prototype.getCompilationSettings=function(){var B=this.shimHost.getCompilationSettings();if(B===null||B==="")throw Error("LanguageServiceShimHostAdapter.getCompilationSettings: empty compilationSettings");var R=JSON.parse(B);return R.allowNonTsExtensions=!0,R},U.prototype.getScriptFileNames=function(){var B=this.shimHost.getScriptFileNames();return JSON.parse(B)},U.prototype.getScriptSnapshot=function(B){var R=this.shimHost.getScriptSnapshot(B);return R&&new d(R)},U.prototype.getScriptKind=function(B){return"getScriptKind"in this.shimHost?this.shimHost.getScriptKind(B):0},U.prototype.getScriptVersion=function(B){return this.shimHost.getScriptVersion(B)},U.prototype.getLocalizedDiagnosticMessages=function(){var B=this.shimHost.getLocalizedDiagnosticMessages();if(B===null||B==="")return null;try{return JSON.parse(B)}catch(R){return this.log(R.description||"diagnosticMessages.generated.json has invalid JSON format"),null}},U.prototype.getCancellationToken=function(){var B=this.shimHost.getCancellationToken();return new e.ThrottledCancellationToken(B)},U.prototype.getCurrentDirectory=function(){return this.shimHost.getCurrentDirectory()},U.prototype.getDirectories=function(B){return JSON.parse(this.shimHost.getDirectories(B))},U.prototype.getDefaultLibFileName=function(B){return this.shimHost.getDefaultLibFileName(JSON.stringify(B))},U.prototype.readDirectory=function(B,R,O,k,M){var z=e.getFileMatcherPatterns(B,O,k,this.shimHost.useCaseSensitiveFileNames(),this.shimHost.getCurrentDirectory());return JSON.parse(this.shimHost.readDirectory(B,JSON.stringify(R),JSON.stringify(z.basePaths),z.excludePattern,z.includeFilePattern,z.includeDirectoryPattern,M))},U.prototype.readFile=function(B,R){return this.shimHost.readFile(B,R)},U.prototype.fileExists=function(B){return this.shimHost.fileExists(B)},U}();e.LanguageServiceShimHostAdapter=g;var t=function(){function U(B){var R=this;this.shimHost=B,this.useCaseSensitiveFileNames=this.shimHost.useCaseSensitiveFileNames?this.shimHost.useCaseSensitiveFileNames():!1,"directoryExists"in this.shimHost?this.directoryExists=function(O){return R.shimHost.directoryExists(O)}:this.directoryExists=void 0,"realpath"in this.shimHost?this.realpath=function(O){return R.shimHost.realpath(O)}:this.realpath=void 0}return U.prototype.readDirectory=function(B,R,O,k,M){var z=e.getFileMatcherPatterns(B,O,k,this.shimHost.useCaseSensitiveFileNames(),this.shimHost.getCurrentDirectory());return JSON.parse(this.shimHost.readDirectory(B,JSON.stringify(R),JSON.stringify(z.basePaths),z.excludePattern,z.includeFilePattern,z.includeDirectoryPattern,M))},U.prototype.fileExists=function(B){return this.shimHost.fileExists(B)},U.prototype.readFile=function(B){return this.shimHost.readFile(B)},U.prototype.getDirectories=function(B){return JSON.parse(this.shimHost.getDirectories(B))},U}();e.CoreServicesShimHostAdapter=t;function p(U,B,R,O){var k;O&&(U.log(B),k=e.timestamp());var M=R();if(O){var z=e.timestamp();if(U.log(B+" completed in "+(z-k)+" msec"),e.isString(M)){var Y=M;Y.length>128&&(Y=Y.substring(0,128)+"..."),U.log(" result.length="+Y.length+", result='"+JSON.stringify(Y)+"'")}}return M}function P(U,B,R,O){return J(U,B,!0,R,O)}function J(U,B,R,O,k){try{var M=p(U,B,O,k);return R?JSON.stringify({result:M}):M}catch(z){return z instanceof e.OperationCanceledException?JSON.stringify({canceled:!0}):(a(U,z),z.description=B,JSON.stringify({error:z}))}}var h=function(){function U(B){this.factory=B,B.registerShim(this)}return U.prototype.dispose=function(B){this.factory.unregisterShim(this)},U}();function v(U,B){return U.map(function(R){return I(R,B)})}e.realizeDiagnostics=v;function I(U,B){return{message:e.flattenDiagnosticMessageText(U.messageText,B),start:U.start,length:U.length,category:e.diagnosticCategoryName(U),code:U.code,reportsUnnecessary:U.reportsUnnecessary,reportsDeprecated:U.reportsDeprecated}}var X=function(U){f_(B,U);function B(R,O,k){var M=U.call(this,R)||this;return M.host=O,M.languageService=k,M.logPerformance=!1,M.logger=M.host,M}return B.prototype.forwardJSONCall=function(R,O){return P(this.logger,R,O,this.logPerformance)},B.prototype.dispose=function(R){this.logger.log("dispose()"),this.languageService.dispose(),this.languageService=null,zE&&zE.CollectGarbage&&(zE.CollectGarbage(),this.logger.log("CollectGarbage()")),this.logger=null,U.prototype.dispose.call(this,R)},B.prototype.refresh=function(R){this.forwardJSONCall("refresh("+R+")",function(){return null})},B.prototype.cleanupSemanticCache=function(){var R=this;this.forwardJSONCall("cleanupSemanticCache()",function(){return R.languageService.cleanupSemanticCache(),null})},B.prototype.realizeDiagnostics=function(R){var O=e.getNewLineOrDefaultFromHost(this.host);return v(R,O)},B.prototype.getSyntacticClassifications=function(R,O,k){var M=this;return this.forwardJSONCall("getSyntacticClassifications('"+R+"', "+O+", "+k+")",function(){return M.languageService.getSyntacticClassifications(R,e.createTextSpan(O,k))})},B.prototype.getSemanticClassifications=function(R,O,k){var M=this;return this.forwardJSONCall("getSemanticClassifications('"+R+"', "+O+", "+k+")",function(){return M.languageService.getSemanticClassifications(R,e.createTextSpan(O,k))})},B.prototype.getEncodedSyntacticClassifications=function(R,O,k){var M=this;return this.forwardJSONCall("getEncodedSyntacticClassifications('"+R+"', "+O+", "+k+")",function(){return se(M.languageService.getEncodedSyntacticClassifications(R,e.createTextSpan(O,k)))})},B.prototype.getEncodedSemanticClassifications=function(R,O,k){var M=this;return this.forwardJSONCall("getEncodedSemanticClassifications('"+R+"', "+O+", "+k+")",function(){return se(M.languageService.getEncodedSemanticClassifications(R,e.createTextSpan(O,k)))})},B.prototype.getSyntacticDiagnostics=function(R){var O=this;return this.forwardJSONCall("getSyntacticDiagnostics('"+R+"')",function(){var k=O.languageService.getSyntacticDiagnostics(R);return O.realizeDiagnostics(k)})},B.prototype.getSemanticDiagnostics=function(R){var O=this;return this.forwardJSONCall("getSemanticDiagnostics('"+R+"')",function(){var k=O.languageService.getSemanticDiagnostics(R);return O.realizeDiagnostics(k)})},B.prototype.getSuggestionDiagnostics=function(R){var O=this;return this.forwardJSONCall("getSuggestionDiagnostics('"+R+"')",function(){return O.realizeDiagnostics(O.languageService.getSuggestionDiagnostics(R))})},B.prototype.getCompilerOptionsDiagnostics=function(){var R=this;return this.forwardJSONCall("getCompilerOptionsDiagnostics()",function(){var O=R.languageService.getCompilerOptionsDiagnostics();return R.realizeDiagnostics(O)})},B.prototype.getQuickInfoAtPosition=function(R,O){var k=this;return this.forwardJSONCall("getQuickInfoAtPosition('"+R+"', "+O+")",function(){return k.languageService.getQuickInfoAtPosition(R,O)})},B.prototype.getNameOrDottedNameSpan=function(R,O,k){var M=this;return this.forwardJSONCall("getNameOrDottedNameSpan('"+R+"', "+O+", "+k+")",function(){return M.languageService.getNameOrDottedNameSpan(R,O,k)})},B.prototype.getBreakpointStatementAtPosition=function(R,O){var k=this;return this.forwardJSONCall("getBreakpointStatementAtPosition('"+R+"', "+O+")",function(){return k.languageService.getBreakpointStatementAtPosition(R,O)})},B.prototype.getSignatureHelpItems=function(R,O,k){var M=this;return this.forwardJSONCall("getSignatureHelpItems('"+R+"', "+O+")",function(){return M.languageService.getSignatureHelpItems(R,O,k)})},B.prototype.getDefinitionAtPosition=function(R,O){var k=this;return this.forwardJSONCall("getDefinitionAtPosition('"+R+"', "+O+")",function(){return k.languageService.getDefinitionAtPosition(R,O)})},B.prototype.getDefinitionAndBoundSpan=function(R,O){var k=this;return this.forwardJSONCall("getDefinitionAndBoundSpan('"+R+"', "+O+")",function(){return k.languageService.getDefinitionAndBoundSpan(R,O)})},B.prototype.getTypeDefinitionAtPosition=function(R,O){var k=this;return this.forwardJSONCall("getTypeDefinitionAtPosition('"+R+"', "+O+")",function(){return k.languageService.getTypeDefinitionAtPosition(R,O)})},B.prototype.getImplementationAtPosition=function(R,O){var k=this;return this.forwardJSONCall("getImplementationAtPosition('"+R+"', "+O+")",function(){return k.languageService.getImplementationAtPosition(R,O)})},B.prototype.getRenameInfo=function(R,O,k){var M=this;return this.forwardJSONCall("getRenameInfo('"+R+"', "+O+")",function(){return M.languageService.getRenameInfo(R,O,k)})},B.prototype.getSmartSelectionRange=function(R,O){var k=this;return this.forwardJSONCall("getSmartSelectionRange('"+R+"', "+O+")",function(){return k.languageService.getSmartSelectionRange(R,O)})},B.prototype.findRenameLocations=function(R,O,k,M,z){var Y=this;return this.forwardJSONCall("findRenameLocations('"+R+"', "+O+", "+k+", "+M+", "+z+")",function(){return Y.languageService.findRenameLocations(R,O,k,M,z)})},B.prototype.getBraceMatchingAtPosition=function(R,O){var k=this;return this.forwardJSONCall("getBraceMatchingAtPosition('"+R+"', "+O+")",function(){return k.languageService.getBraceMatchingAtPosition(R,O)})},B.prototype.isValidBraceCompletionAtPosition=function(R,O,k){var M=this;return this.forwardJSONCall("isValidBraceCompletionAtPosition('"+R+"', "+O+", "+k+")",function(){return M.languageService.isValidBraceCompletionAtPosition(R,O,k)})},B.prototype.getSpanOfEnclosingComment=function(R,O,k){var M=this;return this.forwardJSONCall("getSpanOfEnclosingComment('"+R+"', "+O+")",function(){return M.languageService.getSpanOfEnclosingComment(R,O,k)})},B.prototype.getIndentationAtPosition=function(R,O,k){var M=this;return this.forwardJSONCall("getIndentationAtPosition('"+R+"', "+O+")",function(){var z=JSON.parse(k);return M.languageService.getIndentationAtPosition(R,O,z)})},B.prototype.getReferencesAtPosition=function(R,O){var k=this;return this.forwardJSONCall("getReferencesAtPosition('"+R+"', "+O+")",function(){return k.languageService.getReferencesAtPosition(R,O)})},B.prototype.findReferences=function(R,O){var k=this;return this.forwardJSONCall("findReferences('"+R+"', "+O+")",function(){return k.languageService.findReferences(R,O)})},B.prototype.getFileReferences=function(R){var O=this;return this.forwardJSONCall("getFileReferences('"+R+")",function(){return O.languageService.getFileReferences(R)})},B.prototype.getOccurrencesAtPosition=function(R,O){var k=this;return this.forwardJSONCall("getOccurrencesAtPosition('"+R+"', "+O+")",function(){return k.languageService.getOccurrencesAtPosition(R,O)})},B.prototype.getDocumentHighlights=function(R,O,k){var M=this;return this.forwardJSONCall("getDocumentHighlights('"+R+"', "+O+")",function(){var z=M.languageService.getDocumentHighlights(R,O,JSON.parse(k)),Y=e.toFileNameLowerCase(e.normalizeSlashes(R));return e.filter(z,function(ne){return e.toFileNameLowerCase(e.normalizeSlashes(ne.fileName))===Y})})},B.prototype.getCompletionsAtPosition=function(R,O,k){var M=this;return this.forwardJSONCall("getCompletionsAtPosition('"+R+"', "+O+", "+k+")",function(){return M.languageService.getCompletionsAtPosition(R,O,k)})},B.prototype.getCompletionEntryDetails=function(R,O,k,M,z,Y,ne){var j=this;return this.forwardJSONCall("getCompletionEntryDetails('"+R+"', "+O+", '"+k+"')",function(){var H=M===void 0?void 0:JSON.parse(M);return j.languageService.getCompletionEntryDetails(R,O,k,H,z,Y,ne)})},B.prototype.getFormattingEditsForRange=function(R,O,k,M){var z=this;return this.forwardJSONCall("getFormattingEditsForRange('"+R+"', "+O+", "+k+")",function(){var Y=JSON.parse(M);return z.languageService.getFormattingEditsForRange(R,O,k,Y)})},B.prototype.getFormattingEditsForDocument=function(R,O){var k=this;return this.forwardJSONCall("getFormattingEditsForDocument('"+R+"')",function(){var M=JSON.parse(O);return k.languageService.getFormattingEditsForDocument(R,M)})},B.prototype.getFormattingEditsAfterKeystroke=function(R,O,k,M){var z=this;return this.forwardJSONCall("getFormattingEditsAfterKeystroke('"+R+"', "+O+", '"+k+"')",function(){var Y=JSON.parse(M);return z.languageService.getFormattingEditsAfterKeystroke(R,O,k,Y)})},B.prototype.getDocCommentTemplateAtPosition=function(R,O,k){var M=this;return this.forwardJSONCall("getDocCommentTemplateAtPosition('"+R+"', "+O+")",function(){return M.languageService.getDocCommentTemplateAtPosition(R,O,k)})},B.prototype.getNavigateToItems=function(R,O,k){var M=this;return this.forwardJSONCall("getNavigateToItems('"+R+"', "+O+", "+k+")",function(){return M.languageService.getNavigateToItems(R,O,k)})},B.prototype.getNavigationBarItems=function(R){var O=this;return this.forwardJSONCall("getNavigationBarItems('"+R+"')",function(){return O.languageService.getNavigationBarItems(R)})},B.prototype.getNavigationTree=function(R){var O=this;return this.forwardJSONCall("getNavigationTree('"+R+"')",function(){return O.languageService.getNavigationTree(R)})},B.prototype.getOutliningSpans=function(R){var O=this;return this.forwardJSONCall("getOutliningSpans('"+R+"')",function(){return O.languageService.getOutliningSpans(R)})},B.prototype.getTodoComments=function(R,O){var k=this;return this.forwardJSONCall("getTodoComments('"+R+"')",function(){return k.languageService.getTodoComments(R,JSON.parse(O))})},B.prototype.prepareCallHierarchy=function(R,O){var k=this;return this.forwardJSONCall("prepareCallHierarchy('"+R+"', "+O+")",function(){return k.languageService.prepareCallHierarchy(R,O)})},B.prototype.provideCallHierarchyIncomingCalls=function(R,O){var k=this;return this.forwardJSONCall("provideCallHierarchyIncomingCalls('"+R+"', "+O+")",function(){return k.languageService.provideCallHierarchyIncomingCalls(R,O)})},B.prototype.provideCallHierarchyOutgoingCalls=function(R,O){var k=this;return this.forwardJSONCall("provideCallHierarchyOutgoingCalls('"+R+"', "+O+")",function(){return k.languageService.provideCallHierarchyOutgoingCalls(R,O)})},B.prototype.provideInlayHints=function(R,O,k){var M=this;return this.forwardJSONCall("provideInlayHints('"+R+"', '"+JSON.stringify(O)+"', "+JSON.stringify(k)+")",function(){return M.languageService.provideInlayHints(R,O,k)})},B.prototype.getEmitOutput=function(R){var O=this;return this.forwardJSONCall("getEmitOutput('"+R+"')",function(){var k=O.languageService.getEmitOutput(R),M=k.diagnostics,z=KE(k,["diagnostics"]);return Dt(Dt({},z),{diagnostics:O.realizeDiagnostics(M)})})},B.prototype.getEmitOutputObject=function(R){var O=this;return J(this.logger,"getEmitOutput('"+R+"')",!1,function(){return O.languageService.getEmitOutput(R)},this.logPerformance)},B.prototype.toggleLineComment=function(R,O){var k=this;return this.forwardJSONCall("toggleLineComment('"+R+"', '"+JSON.stringify(O)+"')",function(){return k.languageService.toggleLineComment(R,O)})},B.prototype.toggleMultilineComment=function(R,O){var k=this;return this.forwardJSONCall("toggleMultilineComment('"+R+"', '"+JSON.stringify(O)+"')",function(){return k.languageService.toggleMultilineComment(R,O)})},B.prototype.commentSelection=function(R,O){var k=this;return this.forwardJSONCall("commentSelection('"+R+"', '"+JSON.stringify(O)+"')",function(){return k.languageService.commentSelection(R,O)})},B.prototype.uncommentSelection=function(R,O){var k=this;return this.forwardJSONCall("uncommentSelection('"+R+"', '"+JSON.stringify(O)+"')",function(){return k.languageService.uncommentSelection(R,O)})},B}(h);function se(U){return{spans:U.spans.join(","),endOfLineState:U.endOfLineState}}var y=function(U){f_(B,U);function B(R,O){var k=U.call(this,R)||this;return k.logger=O,k.logPerformance=!1,k.classifier=e.createClassifier(),k}return B.prototype.getEncodedLexicalClassifications=function(R,O,k){var M=this;return k===void 0&&(k=!1),P(this.logger,"getEncodedLexicalClassifications",function(){return se(M.classifier.getEncodedLexicalClassifications(R,O,k))},this.logPerformance)},B.prototype.getClassificationsForLine=function(R,O,k){k===void 0&&(k=!1);for(var M=this.classifier.getClassificationsForLine(R,O,k),z="",Y=0,ne=M.entries;Y=1&&arguments.length<=3?e.factory.createVariableDeclaration(g,void 0,t,p):e.Debug.fail("Argument count mismatch")},a),e.updateVariableDeclaration=e.Debug.deprecate(function(g,t,p,P,J){return arguments.length===5?e.factory.updateVariableDeclaration(g,t,p,P,J):arguments.length===4?e.factory.updateVariableDeclaration(g,t,g.exclamationToken,p,P):e.Debug.fail("Argument count mismatch")},a),e.createImportClause=e.Debug.deprecate(function(g,t,p){return p===void 0&&(p=!1),e.factory.createImportClause(p,g,t)},a),e.updateImportClause=e.Debug.deprecate(function(g,t,p,P){return e.factory.updateImportClause(g,P,t,p)},a),e.createExportDeclaration=e.Debug.deprecate(function(g,t,p,P,J){return J===void 0&&(J=!1),e.factory.createExportDeclaration(g,t,J,p,P)},a),e.updateExportDeclaration=e.Debug.deprecate(function(g,t,p,P,J,h){return e.factory.updateExportDeclaration(g,t,p,h,P,J)},a),e.createJSDocParamTag=e.Debug.deprecate(function(g,t,p,P){return e.factory.createJSDocParameterTag(void 0,g,t,p,!1,P?e.factory.createNodeArray([e.factory.createJSDocText(P)]):void 0)},a),e.createComma=e.Debug.deprecate(function(g,t){return e.factory.createComma(g,t)},a),e.createLessThan=e.Debug.deprecate(function(g,t){return e.factory.createLessThan(g,t)},a),e.createAssignment=e.Debug.deprecate(function(g,t){return e.factory.createAssignment(g,t)},a),e.createStrictEquality=e.Debug.deprecate(function(g,t){return e.factory.createStrictEquality(g,t)},a),e.createStrictInequality=e.Debug.deprecate(function(g,t){return e.factory.createStrictInequality(g,t)},a),e.createAdd=e.Debug.deprecate(function(g,t){return e.factory.createAdd(g,t)},a),e.createSubtract=e.Debug.deprecate(function(g,t){return e.factory.createSubtract(g,t)},a),e.createLogicalAnd=e.Debug.deprecate(function(g,t){return e.factory.createLogicalAnd(g,t)},a),e.createLogicalOr=e.Debug.deprecate(function(g,t){return e.factory.createLogicalOr(g,t)},a),e.createPostfixIncrement=e.Debug.deprecate(function(g){return e.factory.createPostfixIncrement(g)},a),e.createLogicalNot=e.Debug.deprecate(function(g){return e.factory.createLogicalNot(g)},a),e.createNode=e.Debug.deprecate(function(g,t,p){return t===void 0&&(t=0),p===void 0&&(p=0),e.setTextRangePosEnd(g===300?e.parseBaseNodeFactory.createBaseSourceFileNode(g):g===79?e.parseBaseNodeFactory.createBaseIdentifierNode(g):g===80?e.parseBaseNodeFactory.createBasePrivateIdentifierNode(g):e.isNodeKind(g)?e.parseBaseNodeFactory.createBaseNode(g):e.parseBaseNodeFactory.createBaseTokenNode(g),t,p)},{since:"4.0",warnAfter:"4.1",message:"Use an appropriate `factory` method instead."}),e.getMutableClone=e.Debug.deprecate(function(g){var t=e.factory.cloneNode(g);return e.setTextRange(t,g),e.setParent(t,g.parent),t},{since:"4.0",warnAfter:"4.1",message:"Use an appropriate `factory.update...` method instead, use `setCommentRange` or `setSourceMapRange`, and avoid setting `parent`."}),e.isTypeAssertion=e.Debug.deprecate(function(g){return g.kind===209},{since:"4.0",warnAfter:"4.1",message:"Use `isTypeAssertionExpression` instead."}),e.isIdentifierOrPrivateIdentifier=e.Debug.deprecate(function(g){return e.isMemberName(g)},{since:"4.2",warnAfter:"4.3",message:"Use `isMemberName` instead."})})(un||(un={})),un.createClassifier;var Ox=un.createLanguageService;un.displayPartsToString,un.EndOfLineState,un.flattenDiagnosticMessageText,un.IndentStyle;var sg=un.ScriptKind;un.ScriptTarget,un.TokenClass;var yi={};yi["lib.d.ts"]=`/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ - - - -/// - - -/// -/// -/// -/// -`,yi["lib.dom.d.ts"]=`/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */ - - - -/// - - -///////////////////////////// -/// Window APIs -///////////////////////////// - -interface AddEventListenerOptions extends EventListenerOptions { - once?: boolean; - passive?: boolean; - signal?: AbortSignal; -} - -interface AesCbcParams extends Algorithm { - iv: BufferSource; -} - -interface AesCtrParams extends Algorithm { - counter: BufferSource; - length: number; -} - -interface AesDerivedKeyParams extends Algorithm { - length: number; -} - -interface AesGcmParams extends Algorithm { - additionalData?: BufferSource; - iv: BufferSource; - tagLength?: number; -} - -interface AesKeyAlgorithm extends KeyAlgorithm { - length: number; -} - -interface AesKeyGenParams extends Algorithm { - length: number; -} - -interface Algorithm { - name: string; -} - -interface AnalyserOptions extends AudioNodeOptions { - fftSize?: number; - maxDecibels?: number; - minDecibels?: number; - smoothingTimeConstant?: number; -} - -interface AnimationEventInit extends EventInit { - animationName?: string; - elapsedTime?: number; - pseudoElement?: string; -} - -interface AnimationPlaybackEventInit extends EventInit { - currentTime?: number | null; - timelineTime?: number | null; -} - -interface AssignedNodesOptions { - flatten?: boolean; -} - -interface AudioBufferOptions { - length: number; - numberOfChannels?: number; - sampleRate: number; -} - -interface AudioBufferSourceOptions { - buffer?: AudioBuffer | null; - detune?: number; - loop?: boolean; - loopEnd?: number; - loopStart?: number; - playbackRate?: number; -} - -interface AudioConfiguration { - bitrate?: number; - channels?: string; - contentType: string; - samplerate?: number; - spatialRendering?: boolean; -} - -interface AudioContextOptions { - latencyHint?: AudioContextLatencyCategory | number; - sampleRate?: number; -} - -interface AudioNodeOptions { - channelCount?: number; - channelCountMode?: ChannelCountMode; - channelInterpretation?: ChannelInterpretation; -} - -interface AudioProcessingEventInit extends EventInit { - inputBuffer: AudioBuffer; - outputBuffer: AudioBuffer; - playbackTime: number; -} - -interface AudioTimestamp { - contextTime?: number; - performanceTime?: DOMHighResTimeStamp; -} - -interface AudioWorkletNodeOptions extends AudioNodeOptions { - numberOfInputs?: number; - numberOfOutputs?: number; - outputChannelCount?: number[]; - parameterData?: Record; - processorOptions?: any; -} - -interface AuthenticationExtensionsClientInputs { - appid?: string; - appidExclude?: string; - credProps?: boolean; - uvm?: boolean; -} - -interface AuthenticationExtensionsClientOutputs { - appid?: boolean; - credProps?: CredentialPropertiesOutput; - uvm?: UvmEntries; -} - -interface AuthenticatorSelectionCriteria { - authenticatorAttachment?: AuthenticatorAttachment; - requireResidentKey?: boolean; - residentKey?: ResidentKeyRequirement; - userVerification?: UserVerificationRequirement; -} - -interface BiquadFilterOptions extends AudioNodeOptions { - Q?: number; - detune?: number; - frequency?: number; - gain?: number; - type?: BiquadFilterType; -} - -interface BlobEventInit { - data: Blob; - timecode?: DOMHighResTimeStamp; -} - -interface BlobPropertyBag { - endings?: EndingType; - type?: string; -} - -interface CSSStyleSheetInit { - baseURL?: string; - disabled?: boolean; - media?: MediaList | string; -} - -interface CacheQueryOptions { - ignoreMethod?: boolean; - ignoreSearch?: boolean; - ignoreVary?: boolean; -} - -interface CanvasRenderingContext2DSettings { - alpha?: boolean; - colorSpace?: PredefinedColorSpace; - desynchronized?: boolean; - willReadFrequently?: boolean; -} - -interface ChannelMergerOptions extends AudioNodeOptions { - numberOfInputs?: number; -} - -interface ChannelSplitterOptions extends AudioNodeOptions { - numberOfOutputs?: number; -} - -interface ClientQueryOptions { - includeUncontrolled?: boolean; - type?: ClientTypes; -} - -interface ClipboardEventInit extends EventInit { - clipboardData?: DataTransfer | null; -} - -interface ClipboardItemOptions { - presentationStyle?: PresentationStyle; -} - -interface CloseEventInit extends EventInit { - code?: number; - reason?: string; - wasClean?: boolean; -} - -interface CompositionEventInit extends UIEventInit { - data?: string; -} - -interface ComputedEffectTiming extends EffectTiming { - activeDuration?: CSSNumberish; - currentIteration?: number | null; - endTime?: CSSNumberish; - localTime?: CSSNumberish | null; - progress?: CSSNumberish | null; - startTime?: CSSNumberish; -} - -interface ComputedKeyframe { - composite: CompositeOperationOrAuto; - computedOffset: number; - easing: string; - offset: number | null; - [property: string]: string | number | null | undefined; -} - -interface ConstantSourceOptions { - offset?: number; -} - -interface ConstrainBooleanParameters { - exact?: boolean; - ideal?: boolean; -} - -interface ConstrainDOMStringParameters { - exact?: string | string[]; - ideal?: string | string[]; -} - -interface ConstrainDoubleRange extends DoubleRange { - exact?: number; - ideal?: number; -} - -interface ConstrainULongRange extends ULongRange { - exact?: number; - ideal?: number; -} - -interface ConvolverOptions extends AudioNodeOptions { - buffer?: AudioBuffer | null; - disableNormalization?: boolean; -} - -interface CredentialCreationOptions { - publicKey?: PublicKeyCredentialCreationOptions; - signal?: AbortSignal; -} - -interface CredentialPropertiesOutput { - rk?: boolean; -} - -interface CredentialRequestOptions { - mediation?: CredentialMediationRequirement; - publicKey?: PublicKeyCredentialRequestOptions; - signal?: AbortSignal; -} - -interface CryptoKeyPair { - privateKey?: CryptoKey; - publicKey?: CryptoKey; -} - -interface CustomEventInit extends EventInit { - detail?: T; -} - -interface DOMMatrix2DInit { - a?: number; - b?: number; - c?: number; - d?: number; - e?: number; - f?: number; - m11?: number; - m12?: number; - m21?: number; - m22?: number; - m41?: number; - m42?: number; -} - -interface DOMMatrixInit extends DOMMatrix2DInit { - is2D?: boolean; - m13?: number; - m14?: number; - m23?: number; - m24?: number; - m31?: number; - m32?: number; - m33?: number; - m34?: number; - m43?: number; - m44?: number; -} - -interface DOMPointInit { - w?: number; - x?: number; - y?: number; - z?: number; -} - -interface DOMQuadInit { - p1?: DOMPointInit; - p2?: DOMPointInit; - p3?: DOMPointInit; - p4?: DOMPointInit; -} - -interface DOMRectInit { - height?: number; - width?: number; - x?: number; - y?: number; -} - -interface DelayOptions extends AudioNodeOptions { - delayTime?: number; - maxDelayTime?: number; -} - -interface DeviceMotionEventAccelerationInit { - x?: number | null; - y?: number | null; - z?: number | null; -} - -interface DeviceMotionEventInit extends EventInit { - acceleration?: DeviceMotionEventAccelerationInit; - accelerationIncludingGravity?: DeviceMotionEventAccelerationInit; - interval?: number; - rotationRate?: DeviceMotionEventRotationRateInit; -} - -interface DeviceMotionEventRotationRateInit { - alpha?: number | null; - beta?: number | null; - gamma?: number | null; -} - -interface DeviceOrientationEventInit extends EventInit { - absolute?: boolean; - alpha?: number | null; - beta?: number | null; - gamma?: number | null; -} - -interface DisplayMediaStreamConstraints { - audio?: boolean | MediaTrackConstraints; - video?: boolean | MediaTrackConstraints; -} - -interface DocumentTimelineOptions { - originTime?: DOMHighResTimeStamp; -} - -interface DoubleRange { - max?: number; - min?: number; -} - -interface DragEventInit extends MouseEventInit { - dataTransfer?: DataTransfer | null; -} - -interface DynamicsCompressorOptions extends AudioNodeOptions { - attack?: number; - knee?: number; - ratio?: number; - release?: number; - threshold?: number; -} - -interface EcKeyAlgorithm extends KeyAlgorithm { - namedCurve: NamedCurve; -} - -interface EcKeyGenParams extends Algorithm { - namedCurve: NamedCurve; -} - -interface EcKeyImportParams extends Algorithm { - namedCurve: NamedCurve; -} - -interface EcdhKeyDeriveParams extends Algorithm { - public: CryptoKey; -} - -interface EcdsaParams extends Algorithm { - hash: HashAlgorithmIdentifier; -} - -interface EffectTiming { - delay?: number; - direction?: PlaybackDirection; - duration?: number | string; - easing?: string; - endDelay?: number; - fill?: FillMode; - iterationStart?: number; - iterations?: number; - playbackRate?: number; -} - -interface ElementCreationOptions { - is?: string; -} - -interface ElementDefinitionOptions { - extends?: string; -} - -interface ErrorEventInit extends EventInit { - colno?: number; - error?: any; - filename?: string; - lineno?: number; - message?: string; -} - -interface EventInit { - bubbles?: boolean; - cancelable?: boolean; - composed?: boolean; -} - -interface EventListenerOptions { - capture?: boolean; -} - -interface EventModifierInit extends UIEventInit { - altKey?: boolean; - ctrlKey?: boolean; - metaKey?: boolean; - modifierAltGraph?: boolean; - modifierCapsLock?: boolean; - modifierFn?: boolean; - modifierFnLock?: boolean; - modifierHyper?: boolean; - modifierNumLock?: boolean; - modifierScrollLock?: boolean; - modifierSuper?: boolean; - modifierSymbol?: boolean; - modifierSymbolLock?: boolean; - shiftKey?: boolean; -} - -interface EventSourceInit { - withCredentials?: boolean; -} - -interface FilePropertyBag extends BlobPropertyBag { - lastModified?: number; -} - -interface FileSystemFlags { - create?: boolean; - exclusive?: boolean; -} - -interface FocusEventInit extends UIEventInit { - relatedTarget?: EventTarget | null; -} - -interface FocusOptions { - preventScroll?: boolean; -} - -interface FontFaceDescriptors { - display?: string; - featureSettings?: string; - stretch?: string; - style?: string; - unicodeRange?: string; - variant?: string; - weight?: string; -} - -interface FontFaceSetLoadEventInit extends EventInit { - fontfaces?: FontFace[]; -} - -interface FormDataEventInit extends EventInit { - formData: FormData; -} - -interface FullscreenOptions { - navigationUI?: FullscreenNavigationUI; -} - -interface GainOptions extends AudioNodeOptions { - gain?: number; -} - -interface GamepadEventInit extends EventInit { - gamepad: Gamepad; -} - -interface GetAnimationsOptions { - subtree?: boolean; -} - -interface GetNotificationOptions { - tag?: string; -} - -interface GetRootNodeOptions { - composed?: boolean; -} - -interface HashChangeEventInit extends EventInit { - newURL?: string; - oldURL?: string; -} - -interface HkdfParams extends Algorithm { - hash: HashAlgorithmIdentifier; - info: BufferSource; - salt: BufferSource; -} - -interface HmacImportParams extends Algorithm { - hash: HashAlgorithmIdentifier; - length?: number; -} - -interface HmacKeyAlgorithm extends KeyAlgorithm { - hash: KeyAlgorithm; - length: number; -} - -interface HmacKeyGenParams extends Algorithm { - hash: HashAlgorithmIdentifier; - length?: number; -} - -interface IDBDatabaseInfo { - name?: string; - version?: number; -} - -interface IDBIndexParameters { - multiEntry?: boolean; - unique?: boolean; -} - -interface IDBObjectStoreParameters { - autoIncrement?: boolean; - keyPath?: string | string[] | null; -} - -interface IDBVersionChangeEventInit extends EventInit { - newVersion?: number | null; - oldVersion?: number; -} - -interface IIRFilterOptions extends AudioNodeOptions { - feedback: number[]; - feedforward: number[]; -} - -interface IdleRequestOptions { - timeout?: number; -} - -interface ImageBitmapOptions { - colorSpaceConversion?: ColorSpaceConversion; - imageOrientation?: ImageOrientation; - premultiplyAlpha?: PremultiplyAlpha; - resizeHeight?: number; - resizeQuality?: ResizeQuality; - resizeWidth?: number; -} - -interface ImageBitmapRenderingContextSettings { - alpha?: boolean; -} - -interface ImageDataSettings { - colorSpace?: PredefinedColorSpace; -} - -interface ImportMeta { - url: string; -} - -interface InputEventInit extends UIEventInit { - data?: string | null; - dataTransfer?: DataTransfer | null; - inputType?: string; - isComposing?: boolean; - targetRanges?: StaticRange[]; -} - -interface IntersectionObserverEntryInit { - boundingClientRect: DOMRectInit; - intersectionRatio: number; - intersectionRect: DOMRectInit; - isIntersecting: boolean; - rootBounds: DOMRectInit | null; - target: Element; - time: DOMHighResTimeStamp; -} - -interface IntersectionObserverInit { - root?: Element | Document | null; - rootMargin?: string; - threshold?: number | number[]; -} - -interface JsonWebKey { - alg?: string; - crv?: string; - d?: string; - dp?: string; - dq?: string; - e?: string; - ext?: boolean; - k?: string; - key_ops?: string[]; - kty?: string; - n?: string; - oth?: RsaOtherPrimesInfo[]; - p?: string; - q?: string; - qi?: string; - use?: string; - x?: string; - y?: string; -} - -interface KeyAlgorithm { - name: string; -} - -interface KeyboardEventInit extends EventModifierInit { - /** @deprecated */ - charCode?: number; - code?: string; - isComposing?: boolean; - key?: string; - /** @deprecated */ - keyCode?: number; - location?: number; - repeat?: boolean; -} - -interface Keyframe { - composite?: CompositeOperationOrAuto; - easing?: string; - offset?: number | null; - [property: string]: string | number | null | undefined; -} - -interface KeyframeAnimationOptions extends KeyframeEffectOptions { - id?: string; -} - -interface KeyframeEffectOptions extends EffectTiming { - composite?: CompositeOperation; - iterationComposite?: IterationCompositeOperation; - pseudoElement?: string | null; -} - -interface MediaCapabilitiesDecodingInfo extends MediaCapabilitiesInfo { - configuration?: MediaDecodingConfiguration; -} - -interface MediaCapabilitiesEncodingInfo extends MediaCapabilitiesInfo { - configuration?: MediaEncodingConfiguration; -} - -interface MediaCapabilitiesInfo { - powerEfficient: boolean; - smooth: boolean; - supported: boolean; -} - -interface MediaConfiguration { - audio?: AudioConfiguration; - video?: VideoConfiguration; -} - -interface MediaDecodingConfiguration extends MediaConfiguration { - type: MediaDecodingType; -} - -interface MediaElementAudioSourceOptions { - mediaElement: HTMLMediaElement; -} - -interface MediaEncodingConfiguration extends MediaConfiguration { - type: MediaEncodingType; -} - -interface MediaEncryptedEventInit extends EventInit { - initData?: ArrayBuffer | null; - initDataType?: string; -} - -interface MediaImage { - sizes?: string; - src: string; - type?: string; -} - -interface MediaKeyMessageEventInit extends EventInit { - message: ArrayBuffer; - messageType: MediaKeyMessageType; -} - -interface MediaKeySystemConfiguration { - audioCapabilities?: MediaKeySystemMediaCapability[]; - distinctiveIdentifier?: MediaKeysRequirement; - initDataTypes?: string[]; - label?: string; - persistentState?: MediaKeysRequirement; - sessionTypes?: string[]; - videoCapabilities?: MediaKeySystemMediaCapability[]; -} - -interface MediaKeySystemMediaCapability { - contentType?: string; - encryptionScheme?: string | null; - robustness?: string; -} - -interface MediaMetadataInit { - album?: string; - artist?: string; - artwork?: MediaImage[]; - title?: string; -} - -interface MediaPositionState { - duration?: number; - playbackRate?: number; - position?: number; -} - -interface MediaQueryListEventInit extends EventInit { - matches?: boolean; - media?: string; -} - -interface MediaRecorderErrorEventInit extends EventInit { - error: DOMException; -} - -interface MediaRecorderOptions { - audioBitsPerSecond?: number; - bitsPerSecond?: number; - mimeType?: string; - videoBitsPerSecond?: number; -} - -interface MediaSessionActionDetails { - action: MediaSessionAction; - fastSeek?: boolean | null; - seekOffset?: number | null; - seekTime?: number | null; -} - -interface MediaStreamAudioSourceOptions { - mediaStream: MediaStream; -} - -interface MediaStreamConstraints { - audio?: boolean | MediaTrackConstraints; - peerIdentity?: string; - video?: boolean | MediaTrackConstraints; -} - -interface MediaStreamTrackEventInit extends EventInit { - track: MediaStreamTrack; -} - -interface MediaTrackCapabilities { - aspectRatio?: DoubleRange; - autoGainControl?: boolean[]; - channelCount?: ULongRange; - cursor?: string[]; - deviceId?: string; - displaySurface?: string; - echoCancellation?: boolean[]; - facingMode?: string[]; - frameRate?: DoubleRange; - groupId?: string; - height?: ULongRange; - latency?: DoubleRange; - logicalSurface?: boolean; - noiseSuppression?: boolean[]; - resizeMode?: string[]; - sampleRate?: ULongRange; - sampleSize?: ULongRange; - width?: ULongRange; -} - -interface MediaTrackConstraintSet { - aspectRatio?: ConstrainDouble; - channelCount?: ConstrainULong; - deviceId?: ConstrainDOMString; - echoCancellation?: ConstrainBoolean; - facingMode?: ConstrainDOMString; - frameRate?: ConstrainDouble; - groupId?: ConstrainDOMString; - height?: ConstrainULong; - latency?: ConstrainDouble; - sampleRate?: ConstrainULong; - sampleSize?: ConstrainULong; - suppressLocalAudioPlayback?: ConstrainBoolean; - width?: ConstrainULong; -} - -interface MediaTrackConstraints extends MediaTrackConstraintSet { - advanced?: MediaTrackConstraintSet[]; -} - -interface MediaTrackSettings { - aspectRatio?: number; - deviceId?: string; - echoCancellation?: boolean; - facingMode?: string; - frameRate?: number; - groupId?: string; - height?: number; - restrictOwnAudio?: boolean; - sampleRate?: number; - sampleSize?: number; - width?: number; -} - -interface MediaTrackSupportedConstraints { - aspectRatio?: boolean; - deviceId?: boolean; - echoCancellation?: boolean; - facingMode?: boolean; - frameRate?: boolean; - groupId?: boolean; - height?: boolean; - sampleRate?: boolean; - sampleSize?: boolean; - suppressLocalAudioPlayback?: boolean; - width?: boolean; -} - -interface MessageEventInit extends EventInit { - data?: T; - lastEventId?: string; - origin?: string; - ports?: MessagePort[]; - source?: MessageEventSource | null; -} - -interface MouseEventInit extends EventModifierInit { - button?: number; - buttons?: number; - clientX?: number; - clientY?: number; - movementX?: number; - movementY?: number; - relatedTarget?: EventTarget | null; - screenX?: number; - screenY?: number; -} - -interface MultiCacheQueryOptions extends CacheQueryOptions { - cacheName?: string; -} - -interface MutationObserverInit { - /** - * Set to a list of attribute local names (without namespace) if not all attribute mutations need to be observed and attributes is true or omitted. - */ - attributeFilter?: string[]; - /** - * Set to true if attributes is true or omitted and target's attribute value before the mutation needs to be recorded. - */ - attributeOldValue?: boolean; - /** - * Set to true if mutations to target's attributes are to be observed. Can be omitted if attributeOldValue or attributeFilter is specified. - */ - attributes?: boolean; - /** - * Set to true if mutations to target's data are to be observed. Can be omitted if characterDataOldValue is specified. - */ - characterData?: boolean; - /** - * Set to true if characterData is set to true or omitted and target's data before the mutation needs to be recorded. - */ - characterDataOldValue?: boolean; - /** - * Set to true if mutations to target's children are to be observed. - */ - childList?: boolean; - /** - * Set to true if mutations to not just target, but also target's descendants are to be observed. - */ - subtree?: boolean; -} - -interface NotificationAction { - action: string; - icon?: string; - title: string; -} - -interface NotificationOptions { - actions?: NotificationAction[]; - badge?: string; - body?: string; - data?: any; - dir?: NotificationDirection; - icon?: string; - image?: string; - lang?: string; - renotify?: boolean; - requireInteraction?: boolean; - silent?: boolean; - tag?: string; - timestamp?: DOMTimeStamp; - vibrate?: VibratePattern; -} - -interface OfflineAudioCompletionEventInit extends EventInit { - renderedBuffer: AudioBuffer; -} - -interface OfflineAudioContextOptions { - length: number; - numberOfChannels?: number; - sampleRate: number; -} - -interface OptionalEffectTiming { - delay?: number; - direction?: PlaybackDirection; - duration?: number | string; - easing?: string; - endDelay?: number; - fill?: FillMode; - iterationStart?: number; - iterations?: number; - playbackRate?: number; -} - -interface OscillatorOptions extends AudioNodeOptions { - detune?: number; - frequency?: number; - periodicWave?: PeriodicWave; - type?: OscillatorType; -} - -interface PageTransitionEventInit extends EventInit { - persisted?: boolean; -} - -interface PannerOptions extends AudioNodeOptions { - coneInnerAngle?: number; - coneOuterAngle?: number; - coneOuterGain?: number; - distanceModel?: DistanceModelType; - maxDistance?: number; - orientationX?: number; - orientationY?: number; - orientationZ?: number; - panningModel?: PanningModelType; - positionX?: number; - positionY?: number; - positionZ?: number; - refDistance?: number; - rolloffFactor?: number; -} - -interface PaymentCurrencyAmount { - currency: string; - value: string; -} - -interface PaymentDetailsBase { - displayItems?: PaymentItem[]; - modifiers?: PaymentDetailsModifier[]; -} - -interface PaymentDetailsInit extends PaymentDetailsBase { - id?: string; - total: PaymentItem; -} - -interface PaymentDetailsModifier { - additionalDisplayItems?: PaymentItem[]; - data?: any; - supportedMethods: string; - total?: PaymentItem; -} - -interface PaymentDetailsUpdate extends PaymentDetailsBase { - paymentMethodErrors?: any; - total?: PaymentItem; -} - -interface PaymentItem { - amount: PaymentCurrencyAmount; - label: string; - pending?: boolean; -} - -interface PaymentMethodChangeEventInit extends PaymentRequestUpdateEventInit { - methodDetails?: any; - methodName?: string; -} - -interface PaymentMethodData { - data?: any; - supportedMethods: string; -} - -interface PaymentRequestUpdateEventInit extends EventInit { -} - -interface PaymentValidationErrors { - error?: string; - paymentMethod?: any; -} - -interface Pbkdf2Params extends Algorithm { - hash: HashAlgorithmIdentifier; - iterations: number; - salt: BufferSource; -} - -interface PerformanceMarkOptions { - detail?: any; - startTime?: DOMHighResTimeStamp; -} - -interface PerformanceMeasureOptions { - detail?: any; - duration?: DOMHighResTimeStamp; - end?: string | DOMHighResTimeStamp; - start?: string | DOMHighResTimeStamp; -} - -interface PerformanceObserverInit { - buffered?: boolean; - entryTypes?: string[]; - type?: string; -} - -interface PeriodicWaveConstraints { - disableNormalization?: boolean; -} - -interface PeriodicWaveOptions extends PeriodicWaveConstraints { - imag?: number[] | Float32Array; - real?: number[] | Float32Array; -} - -interface PermissionDescriptor { - name: PermissionName; -} - -interface PointerEventInit extends MouseEventInit { - coalescedEvents?: PointerEvent[]; - height?: number; - isPrimary?: boolean; - pointerId?: number; - pointerType?: string; - predictedEvents?: PointerEvent[]; - pressure?: number; - tangentialPressure?: number; - tiltX?: number; - tiltY?: number; - twist?: number; - width?: number; -} - -interface PopStateEventInit extends EventInit { - state?: any; -} - -interface PositionOptions { - enableHighAccuracy?: boolean; - maximumAge?: number; - timeout?: number; -} - -interface PostMessageOptions { - transfer?: any[]; -} - -interface ProgressEventInit extends EventInit { - lengthComputable?: boolean; - loaded?: number; - total?: number; -} - -interface PromiseRejectionEventInit extends EventInit { - promise: Promise; - reason?: any; -} - -interface PropertyIndexedKeyframes { - composite?: CompositeOperationOrAuto | CompositeOperationOrAuto[]; - easing?: string | string[]; - offset?: number | (number | null)[]; - [property: string]: string | string[] | number | null | (number | null)[] | undefined; -} - -interface PublicKeyCredentialCreationOptions { - attestation?: AttestationConveyancePreference; - authenticatorSelection?: AuthenticatorSelectionCriteria; - challenge: BufferSource; - excludeCredentials?: PublicKeyCredentialDescriptor[]; - extensions?: AuthenticationExtensionsClientInputs; - pubKeyCredParams: PublicKeyCredentialParameters[]; - rp: PublicKeyCredentialRpEntity; - timeout?: number; - user: PublicKeyCredentialUserEntity; -} - -interface PublicKeyCredentialDescriptor { - id: BufferSource; - transports?: AuthenticatorTransport[]; - type: PublicKeyCredentialType; -} - -interface PublicKeyCredentialEntity { - name: string; -} - -interface PublicKeyCredentialParameters { - alg: COSEAlgorithmIdentifier; - type: PublicKeyCredentialType; -} - -interface PublicKeyCredentialRequestOptions { - allowCredentials?: PublicKeyCredentialDescriptor[]; - challenge: BufferSource; - extensions?: AuthenticationExtensionsClientInputs; - rpId?: string; - timeout?: number; - userVerification?: UserVerificationRequirement; -} - -interface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity { - id?: string; -} - -interface PublicKeyCredentialUserEntity extends PublicKeyCredentialEntity { - displayName: string; - id: BufferSource; -} - -interface PushSubscriptionJSON { - endpoint?: string; - expirationTime?: DOMTimeStamp | null; - keys?: Record; -} - -interface PushSubscriptionOptionsInit { - applicationServerKey?: BufferSource | string | null; - userVisibleOnly?: boolean; -} - -interface QueuingStrategy { - highWaterMark?: number; - size?: QueuingStrategySize; -} - -interface QueuingStrategyInit { - /** - * Creates a new ByteLengthQueuingStrategy with the provided high water mark. - * - * Note that the provided high water mark will not be validated ahead of time. Instead, if it is negative, NaN, or not a number, the resulting ByteLengthQueuingStrategy will cause the corresponding stream constructor to throw. - */ - highWaterMark: number; -} - -interface RTCAnswerOptions extends RTCOfferAnswerOptions { -} - -interface RTCCertificateExpiration { - expires?: DOMTimeStamp; -} - -interface RTCConfiguration { - bundlePolicy?: RTCBundlePolicy; - certificates?: RTCCertificate[]; - iceCandidatePoolSize?: number; - iceServers?: RTCIceServer[]; - iceTransportPolicy?: RTCIceTransportPolicy; - rtcpMuxPolicy?: RTCRtcpMuxPolicy; -} - -interface RTCDTMFToneChangeEventInit extends EventInit { - tone?: string; -} - -interface RTCDataChannelEventInit extends EventInit { - channel: RTCDataChannel; -} - -interface RTCDataChannelInit { - id?: number; - maxPacketLifeTime?: number; - maxRetransmits?: number; - negotiated?: boolean; - ordered?: boolean; - protocol?: string; -} - -interface RTCDtlsFingerprint { - algorithm?: string; - value?: string; -} - -interface RTCIceCandidateInit { - candidate?: string; - sdpMLineIndex?: number | null; - sdpMid?: string | null; - usernameFragment?: string | null; -} - -interface RTCIceCandidatePairStats extends RTCStats { - availableIncomingBitrate?: number; - availableOutgoingBitrate?: number; - bytesReceived?: number; - bytesSent?: number; - currentRoundTripTime?: number; - localCandidateId: string; - nominated?: boolean; - remoteCandidateId: string; - requestsReceived?: number; - requestsSent?: number; - responsesReceived?: number; - responsesSent?: number; - state: RTCStatsIceCandidatePairState; - totalRoundTripTime?: number; - transportId: string; -} - -interface RTCIceServer { - credential?: string; - credentialType?: RTCIceCredentialType; - urls: string | string[]; - username?: string; -} - -interface RTCInboundRtpStreamStats extends RTCReceivedRtpStreamStats { - firCount?: number; - framesDecoded?: number; - nackCount?: number; - pliCount?: number; - qpSum?: number; - remoteId?: string; -} - -interface RTCLocalSessionDescriptionInit { - sdp?: string; - type?: RTCSdpType; -} - -interface RTCOfferAnswerOptions { -} - -interface RTCOfferOptions extends RTCOfferAnswerOptions { - iceRestart?: boolean; - offerToReceiveAudio?: boolean; - offerToReceiveVideo?: boolean; -} - -interface RTCOutboundRtpStreamStats extends RTCSentRtpStreamStats { - firCount?: number; - framesEncoded?: number; - nackCount?: number; - pliCount?: number; - qpSum?: number; - remoteId?: string; -} - -interface RTCPeerConnectionIceErrorEventInit extends EventInit { - address?: string | null; - errorCode: number; - errorText?: string; - port?: number | null; - url?: string; -} - -interface RTCPeerConnectionIceEventInit extends EventInit { - candidate?: RTCIceCandidate | null; - url?: string | null; -} - -interface RTCReceivedRtpStreamStats extends RTCRtpStreamStats { - jitter?: number; - packetsDiscarded?: number; - packetsLost?: number; - packetsReceived?: number; -} - -interface RTCRtcpParameters { - cname?: string; - reducedSize?: boolean; -} - -interface RTCRtpCapabilities { - codecs: RTCRtpCodecCapability[]; - headerExtensions: RTCRtpHeaderExtensionCapability[]; -} - -interface RTCRtpCodecCapability { - channels?: number; - clockRate: number; - mimeType: string; - sdpFmtpLine?: string; -} - -interface RTCRtpCodecParameters { - channels?: number; - clockRate: number; - mimeType: string; - payloadType: number; - sdpFmtpLine?: string; -} - -interface RTCRtpCodingParameters { - rid?: string; -} - -interface RTCRtpContributingSource { - audioLevel?: number; - rtpTimestamp: number; - source: number; - timestamp: DOMHighResTimeStamp; -} - -interface RTCRtpEncodingParameters extends RTCRtpCodingParameters { - active?: boolean; - maxBitrate?: number; - priority?: RTCPriorityType; - scaleResolutionDownBy?: number; -} - -interface RTCRtpHeaderExtensionCapability { - uri?: string; -} - -interface RTCRtpHeaderExtensionParameters { - encrypted?: boolean; - id: number; - uri: string; -} - -interface RTCRtpParameters { - codecs: RTCRtpCodecParameters[]; - headerExtensions: RTCRtpHeaderExtensionParameters[]; - rtcp: RTCRtcpParameters; -} - -interface RTCRtpReceiveParameters extends RTCRtpParameters { -} - -interface RTCRtpSendParameters extends RTCRtpParameters { - degradationPreference?: RTCDegradationPreference; - encodings: RTCRtpEncodingParameters[]; - transactionId: string; -} - -interface RTCRtpStreamStats extends RTCStats { - codecId?: string; - kind: string; - ssrc: number; - transportId?: string; -} - -interface RTCRtpSynchronizationSource extends RTCRtpContributingSource { -} - -interface RTCRtpTransceiverInit { - direction?: RTCRtpTransceiverDirection; - sendEncodings?: RTCRtpEncodingParameters[]; - streams?: MediaStream[]; -} - -interface RTCSentRtpStreamStats extends RTCRtpStreamStats { - bytesSent?: number; - packetsSent?: number; -} - -interface RTCSessionDescriptionInit { - sdp?: string; - type: RTCSdpType; -} - -interface RTCStats { - id: string; - timestamp: DOMHighResTimeStamp; - type: RTCStatsType; -} - -interface RTCTrackEventInit extends EventInit { - receiver: RTCRtpReceiver; - streams?: MediaStream[]; - track: MediaStreamTrack; - transceiver: RTCRtpTransceiver; -} - -interface RTCTransportStats extends RTCStats { - bytesReceived?: number; - bytesSent?: number; - dtlsCipher?: string; - dtlsState: RTCDtlsTransportState; - localCertificateId?: string; - remoteCertificateId?: string; - rtcpTransportStatsId?: string; - selectedCandidatePairId?: string; - srtpCipher?: string; - tlsVersion?: string; -} - -interface ReadableStreamDefaultReadDoneResult { - done: true; - value?: undefined; -} - -interface ReadableStreamDefaultReadValueResult { - done: false; - value: T; -} - -interface ReadableWritablePair { - readable: ReadableStream; - /** - * Provides a convenient, chainable way of piping this readable stream through a transform stream (or any other { writable, readable } pair). It simply pipes the stream into the writable side of the supplied pair, and returns the readable side for further use. - * - * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader. - */ - writable: WritableStream; -} - -interface RegistrationOptions { - scope?: string; - type?: WorkerType; - updateViaCache?: ServiceWorkerUpdateViaCache; -} - -interface RequestInit { - /** - * A BodyInit object or null to set request's body. - */ - body?: BodyInit | null; - /** - * A string indicating how the request will interact with the browser's cache to set request's cache. - */ - cache?: RequestCache; - /** - * A string indicating whether credentials will be sent with the request always, never, or only when sent to a same-origin URL. Sets request's credentials. - */ - credentials?: RequestCredentials; - /** - * A Headers object, an object literal, or an array of two-item arrays to set request's headers. - */ - headers?: HeadersInit; - /** - * A cryptographic hash of the resource to be fetched by request. Sets request's integrity. - */ - integrity?: string; - /** - * A boolean to set request's keepalive. - */ - keepalive?: boolean; - /** - * A string to set request's method. - */ - method?: string; - /** - * A string to indicate whether the request will use CORS, or will be restricted to same-origin URLs. Sets request's mode. - */ - mode?: RequestMode; - /** - * A string indicating whether request follows redirects, results in an error upon encountering a redirect, or returns the redirect (in an opaque fashion). Sets request's redirect. - */ - redirect?: RequestRedirect; - /** - * A string whose value is a same-origin URL, "about:client", or the empty string, to set request's referrer. - */ - referrer?: string; - /** - * A referrer policy to set request's referrerPolicy. - */ - referrerPolicy?: ReferrerPolicy; - /** - * An AbortSignal to set request's signal. - */ - signal?: AbortSignal | null; - /** - * Can only be null. Used to disassociate request from any Window. - */ - window?: any; -} - -interface ResizeObserverOptions { - box?: ResizeObserverBoxOptions; -} - -interface ResponseInit { - headers?: HeadersInit; - status?: number; - statusText?: string; -} - -interface RsaHashedImportParams extends Algorithm { - hash: HashAlgorithmIdentifier; -} - -interface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm { - hash: KeyAlgorithm; -} - -interface RsaHashedKeyGenParams extends RsaKeyGenParams { - hash: HashAlgorithmIdentifier; -} - -interface RsaKeyAlgorithm extends KeyAlgorithm { - modulusLength: number; - publicExponent: BigInteger; -} - -interface RsaKeyGenParams extends Algorithm { - modulusLength: number; - publicExponent: BigInteger; -} - -interface RsaOaepParams extends Algorithm { - label?: BufferSource; -} - -interface RsaOtherPrimesInfo { - d?: string; - r?: string; - t?: string; -} - -interface RsaPssParams extends Algorithm { - saltLength: number; -} - -interface SVGBoundingBoxOptions { - clipped?: boolean; - fill?: boolean; - markers?: boolean; - stroke?: boolean; -} - -interface ScrollIntoViewOptions extends ScrollOptions { - block?: ScrollLogicalPosition; - inline?: ScrollLogicalPosition; -} - -interface ScrollOptions { - behavior?: ScrollBehavior; -} - -interface ScrollToOptions extends ScrollOptions { - left?: number; - top?: number; -} - -interface SecurityPolicyViolationEventInit extends EventInit { - blockedURI?: string; - columnNumber?: number; - disposition: SecurityPolicyViolationEventDisposition; - documentURI: string; - effectiveDirective: string; - lineNumber?: number; - originalPolicy: string; - referrer?: string; - sample?: string; - sourceFile?: string; - statusCode: number; - violatedDirective: string; -} - -interface ShadowRootInit { - delegatesFocus?: boolean; - mode: ShadowRootMode; - slotAssignment?: SlotAssignmentMode; -} - -interface ShareData { - files?: File[]; - text?: string; - title?: string; - url?: string; -} - -interface SpeechSynthesisErrorEventInit extends SpeechSynthesisEventInit { - error: SpeechSynthesisErrorCode; -} - -interface SpeechSynthesisEventInit extends EventInit { - charIndex?: number; - charLength?: number; - elapsedTime?: number; - name?: string; - utterance: SpeechSynthesisUtterance; -} - -interface StaticRangeInit { - endContainer: Node; - endOffset: number; - startContainer: Node; - startOffset: number; -} - -interface StereoPannerOptions extends AudioNodeOptions { - pan?: number; -} - -interface StorageEstimate { - quota?: number; - usage?: number; -} - -interface StorageEventInit extends EventInit { - key?: string | null; - newValue?: string | null; - oldValue?: string | null; - storageArea?: Storage | null; - url?: string; -} - -interface StreamPipeOptions { - preventAbort?: boolean; - preventCancel?: boolean; - /** - * Pipes this readable stream to a given writable stream destination. The way in which the piping process behaves under various error conditions can be customized with a number of passed options. It returns a promise that fulfills when the piping process completes successfully, or rejects if any errors were encountered. - * - * Piping a stream will lock it for the duration of the pipe, preventing any other consumer from acquiring a reader. - * - * Errors and closures of the source and destination streams propagate as follows: - * - * An error in this source readable stream will abort destination, unless preventAbort is truthy. The returned promise will be rejected with the source's error, or with any error that occurs during aborting the destination. - * - * An error in destination will cancel this source readable stream, unless preventCancel is truthy. The returned promise will be rejected with the destination's error, or with any error that occurs during canceling the source. - * - * When this source readable stream closes, destination will be closed, unless preventClose is truthy. The returned promise will be fulfilled once this process completes, unless an error is encountered while closing the destination, in which case it will be rejected with that error. - * - * If destination starts out closed or closing, this source readable stream will be canceled, unless preventCancel is true. The returned promise will be rejected with an error indicating piping to a closed stream failed, or with any error that occurs during canceling the source. - * - * The signal option can be set to an AbortSignal to allow aborting an ongoing pipe operation via the corresponding AbortController. In this case, this source readable stream will be canceled, and destination aborted, unless the respective options preventCancel or preventAbort are set. - */ - preventClose?: boolean; - signal?: AbortSignal; -} - -interface SubmitEventInit extends EventInit { - submitter?: HTMLElement | null; -} - -interface TextDecodeOptions { - stream?: boolean; -} - -interface TextDecoderOptions { - fatal?: boolean; - ignoreBOM?: boolean; -} - -interface TextEncoderEncodeIntoResult { - read?: number; - written?: number; -} - -interface TouchEventInit extends EventModifierInit { - changedTouches?: Touch[]; - targetTouches?: Touch[]; - touches?: Touch[]; -} - -interface TouchInit { - altitudeAngle?: number; - azimuthAngle?: number; - clientX?: number; - clientY?: number; - force?: number; - identifier: number; - pageX?: number; - pageY?: number; - radiusX?: number; - radiusY?: number; - rotationAngle?: number; - screenX?: number; - screenY?: number; - target: EventTarget; - touchType?: TouchType; -} - -interface TrackEventInit extends EventInit { - track?: TextTrack | null; -} - -interface Transformer { - flush?: TransformerFlushCallback; - readableType?: undefined; - start?: TransformerStartCallback; - transform?: TransformerTransformCallback; - writableType?: undefined; -} - -interface TransitionEventInit extends EventInit { - elapsedTime?: number; - propertyName?: string; - pseudoElement?: string; -} - -interface UIEventInit extends EventInit { - detail?: number; - view?: Window | null; - /** @deprecated */ - which?: number; -} - -interface ULongRange { - max?: number; - min?: number; -} - -interface UnderlyingSink { - abort?: UnderlyingSinkAbortCallback; - close?: UnderlyingSinkCloseCallback; - start?: UnderlyingSinkStartCallback; - type?: undefined; - write?: UnderlyingSinkWriteCallback; -} - -interface UnderlyingSource { - cancel?: UnderlyingSourceCancelCallback; - pull?: UnderlyingSourcePullCallback; - start?: UnderlyingSourceStartCallback; - type?: undefined; -} - -interface VideoConfiguration { - bitrate: number; - colorGamut?: ColorGamut; - contentType: string; - framerate: number; - hdrMetadataType?: HdrMetadataType; - height: number; - scalabilityMode?: string; - transferFunction?: TransferFunction; - width: number; -} - -interface WaveShaperOptions extends AudioNodeOptions { - curve?: number[] | Float32Array; - oversample?: OverSampleType; -} - -interface WebGLContextAttributes { - alpha?: boolean; - antialias?: boolean; - depth?: boolean; - desynchronized?: boolean; - failIfMajorPerformanceCaveat?: boolean; - powerPreference?: WebGLPowerPreference; - premultipliedAlpha?: boolean; - preserveDrawingBuffer?: boolean; - stencil?: boolean; -} - -interface WebGLContextEventInit extends EventInit { - statusMessage?: string; -} - -interface WheelEventInit extends MouseEventInit { - deltaMode?: number; - deltaX?: number; - deltaY?: number; - deltaZ?: number; -} - -interface WindowPostMessageOptions extends PostMessageOptions { - targetOrigin?: string; -} - -interface WorkerOptions { - credentials?: RequestCredentials; - name?: string; - type?: WorkerType; -} - -interface WorkletOptions { - credentials?: RequestCredentials; -} - -type NodeFilter = ((node: Node) => number) | { acceptNode(node: Node): number; }; - -declare var NodeFilter: { - readonly FILTER_ACCEPT: number; - readonly FILTER_REJECT: number; - readonly FILTER_SKIP: number; - readonly SHOW_ALL: number; - readonly SHOW_ATTRIBUTE: number; - readonly SHOW_CDATA_SECTION: number; - readonly SHOW_COMMENT: number; - readonly SHOW_DOCUMENT: number; - readonly SHOW_DOCUMENT_FRAGMENT: number; - readonly SHOW_DOCUMENT_TYPE: number; - readonly SHOW_ELEMENT: number; - readonly SHOW_ENTITY: number; - readonly SHOW_ENTITY_REFERENCE: number; - readonly SHOW_NOTATION: number; - readonly SHOW_PROCESSING_INSTRUCTION: number; - readonly SHOW_TEXT: number; -}; - -type XPathNSResolver = ((prefix: string | null) => string | null) | { lookupNamespaceURI(prefix: string | null): string | null; }; - -/** The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type. */ -interface ANGLE_instanced_arrays { - drawArraysInstancedANGLE(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei): void; - drawElementsInstancedANGLE(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, primcount: GLsizei): void; - vertexAttribDivisorANGLE(index: GLuint, divisor: GLuint): void; - readonly VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE: GLenum; -} - -interface ARIAMixin { - ariaAtomic: string; - ariaAutoComplete: string; - ariaBusy: string; - ariaChecked: string; - ariaColCount: string; - ariaColIndex: string; - ariaColSpan: string; - ariaCurrent: string; - ariaDisabled: string; - ariaExpanded: string; - ariaHasPopup: string; - ariaHidden: string; - ariaKeyShortcuts: string; - ariaLabel: string; - ariaLevel: string; - ariaLive: string; - ariaModal: string; - ariaMultiLine: string; - ariaMultiSelectable: string; - ariaOrientation: string; - ariaPlaceholder: string; - ariaPosInSet: string; - ariaPressed: string; - ariaReadOnly: string; - ariaRequired: string; - ariaRoleDescription: string; - ariaRowCount: string; - ariaRowIndex: string; - ariaRowSpan: string; - ariaSelected: string; - ariaSetSize: string; - ariaSort: string; - ariaValueMax: string; - ariaValueMin: string; - ariaValueNow: string; - ariaValueText: string; -} - -/** A controller object that allows you to abort one or more DOM requests as and when desired. */ -interface AbortController { - /** - * Returns the AbortSignal object associated with this object. - */ - readonly signal: AbortSignal; - /** - * Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. - */ - abort(): void; -} - -declare var AbortController: { - prototype: AbortController; - new(): AbortController; -}; - -interface AbortSignalEventMap { - "abort": Event; -} - -/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */ -interface AbortSignal extends EventTarget { - /** - * Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise. - */ - readonly aborted: boolean; - onabort: ((this: AbortSignal, ev: Event) => any) | null; - addEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: AbortSignal, ev: AbortSignalEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var AbortSignal: { - prototype: AbortSignal; - new(): AbortSignal; -}; - -interface AbstractRange { - /** - * Returns true if range is collapsed, and false otherwise. - */ - readonly collapsed: boolean; - /** - * Returns range's end node. - */ - readonly endContainer: Node; - /** - * Returns range's end offset. - */ - readonly endOffset: number; - /** - * Returns range's start node. - */ - readonly startContainer: Node; - /** - * Returns range's start offset. - */ - readonly startOffset: number; -} - -declare var AbstractRange: { - prototype: AbstractRange; - new(): AbstractRange; -}; - -interface AbstractWorkerEventMap { - "error": ErrorEvent; -} - -interface AbstractWorker { - onerror: ((this: AbstractWorker, ev: ErrorEvent) => any) | null; - addEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: AbstractWorker, ev: AbstractWorkerEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -/** A node able to provide real-time frequency and time-domain analysis information. It is an AudioNode that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations. */ -interface AnalyserNode extends AudioNode { - fftSize: number; - readonly frequencyBinCount: number; - maxDecibels: number; - minDecibels: number; - smoothingTimeConstant: number; - getByteFrequencyData(array: Uint8Array): void; - getByteTimeDomainData(array: Uint8Array): void; - getFloatFrequencyData(array: Float32Array): void; - getFloatTimeDomainData(array: Float32Array): void; -} - -declare var AnalyserNode: { - prototype: AnalyserNode; - new(context: BaseAudioContext, options?: AnalyserOptions): AnalyserNode; -}; - -interface Animatable { - animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation; - getAnimations(options?: GetAnimationsOptions): Animation[]; -} - -interface AnimationEventMap { - "cancel": AnimationPlaybackEvent; - "finish": AnimationPlaybackEvent; - "remove": Event; -} - -interface Animation extends EventTarget { - currentTime: number | null; - effect: AnimationEffect | null; - readonly finished: Promise; - id: string; - oncancel: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null; - onfinish: ((this: Animation, ev: AnimationPlaybackEvent) => any) | null; - onremove: ((this: Animation, ev: Event) => any) | null; - readonly pending: boolean; - readonly playState: AnimationPlayState; - playbackRate: number; - readonly ready: Promise; - readonly replaceState: AnimationReplaceState; - startTime: number | null; - timeline: AnimationTimeline | null; - cancel(): void; - commitStyles(): void; - finish(): void; - pause(): void; - persist(): void; - play(): void; - reverse(): void; - updatePlaybackRate(playbackRate: number): void; - addEventListener(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: Animation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var Animation: { - prototype: Animation; - new(effect?: AnimationEffect | null, timeline?: AnimationTimeline | null): Animation; -}; - -interface AnimationEffect { - getComputedTiming(): ComputedEffectTiming; - getTiming(): EffectTiming; - updateTiming(timing?: OptionalEffectTiming): void; -} - -declare var AnimationEffect: { - prototype: AnimationEffect; - new(): AnimationEffect; -}; - -/** Events providing information related to animations. */ -interface AnimationEvent extends Event { - readonly animationName: string; - readonly elapsedTime: number; - readonly pseudoElement: string; -} - -declare var AnimationEvent: { - prototype: AnimationEvent; - new(type: string, animationEventInitDict?: AnimationEventInit): AnimationEvent; -}; - -interface AnimationFrameProvider { - cancelAnimationFrame(handle: number): void; - requestAnimationFrame(callback: FrameRequestCallback): number; -} - -interface AnimationPlaybackEvent extends Event { - readonly currentTime: number | null; - readonly timelineTime: number | null; -} - -declare var AnimationPlaybackEvent: { - prototype: AnimationPlaybackEvent; - new(type: string, eventInitDict?: AnimationPlaybackEventInit): AnimationPlaybackEvent; -}; - -interface AnimationTimeline { - readonly currentTime: number | null; -} - -declare var AnimationTimeline: { - prototype: AnimationTimeline; - new(): AnimationTimeline; -}; - -/** A DOM element's attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types. */ -interface Attr extends Node { - readonly localName: string; - readonly name: string; - readonly namespaceURI: string | null; - readonly ownerDocument: Document; - readonly ownerElement: Element | null; - readonly prefix: string | null; - readonly specified: boolean; - value: string; -} - -declare var Attr: { - prototype: Attr; - new(): Attr; -}; - -/** A short audio asset residing in memory, created from an audio file using the AudioContext.decodeAudioData() method, or from raw data using AudioContext.createBuffer(). Once put into an AudioBuffer, the audio can then be played by being passed into an AudioBufferSourceNode. */ -interface AudioBuffer { - readonly duration: number; - readonly length: number; - readonly numberOfChannels: number; - readonly sampleRate: number; - copyFromChannel(destination: Float32Array, channelNumber: number, bufferOffset?: number): void; - copyToChannel(source: Float32Array, channelNumber: number, bufferOffset?: number): void; - getChannelData(channel: number): Float32Array; -} - -declare var AudioBuffer: { - prototype: AudioBuffer; - new(options: AudioBufferOptions): AudioBuffer; -}; - -/** An AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer. It's especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network. */ -interface AudioBufferSourceNode extends AudioScheduledSourceNode { - buffer: AudioBuffer | null; - readonly detune: AudioParam; - loop: boolean; - loopEnd: number; - loopStart: number; - readonly playbackRate: AudioParam; - start(when?: number, offset?: number, duration?: number): void; - addEventListener(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: AudioBufferSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var AudioBufferSourceNode: { - prototype: AudioBufferSourceNode; - new(context: BaseAudioContext, options?: AudioBufferSourceOptions): AudioBufferSourceNode; -}; - -/** An audio-processing graph built from audio modules linked together, each represented by an AudioNode. */ -interface AudioContext extends BaseAudioContext { - readonly baseLatency: number; - close(): Promise; - createMediaElementSource(mediaElement: HTMLMediaElement): MediaElementAudioSourceNode; - createMediaStreamDestination(): MediaStreamAudioDestinationNode; - createMediaStreamSource(mediaStream: MediaStream): MediaStreamAudioSourceNode; - getOutputTimestamp(): AudioTimestamp; - resume(): Promise; - suspend(): Promise; - addEventListener(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: AudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var AudioContext: { - prototype: AudioContext; - new(contextOptions?: AudioContextOptions): AudioContext; -}; - -/** AudioDestinationNode has no output (as it is the output, no more AudioNode can be linked after it in the audio graph) and one input. The number of channels in the input must be between 0 and the maxChannelCount value or an exception is raised. */ -interface AudioDestinationNode extends AudioNode { - readonly maxChannelCount: number; -} - -declare var AudioDestinationNode: { - prototype: AudioDestinationNode; - new(): AudioDestinationNode; -}; - -/** The position and orientation of the unique person listening to the audio scene, and is used in audio spatialization. All PannerNodes spatialize in relation to the AudioListener stored in the BaseAudioContext.listener attribute. */ -interface AudioListener { - readonly forwardX: AudioParam; - readonly forwardY: AudioParam; - readonly forwardZ: AudioParam; - readonly positionX: AudioParam; - readonly positionY: AudioParam; - readonly positionZ: AudioParam; - readonly upX: AudioParam; - readonly upY: AudioParam; - readonly upZ: AudioParam; - /** @deprecated */ - setOrientation(x: number, y: number, z: number, xUp: number, yUp: number, zUp: number): void; - /** @deprecated */ - setPosition(x: number, y: number, z: number): void; -} - -declare var AudioListener: { - prototype: AudioListener; - new(): AudioListener; -}; - -/** A generic interface for representing an audio processing module. Examples include: */ -interface AudioNode extends EventTarget { - channelCount: number; - channelCountMode: ChannelCountMode; - channelInterpretation: ChannelInterpretation; - readonly context: BaseAudioContext; - readonly numberOfInputs: number; - readonly numberOfOutputs: number; - connect(destinationNode: AudioNode, output?: number, input?: number): AudioNode; - connect(destinationParam: AudioParam, output?: number): void; - disconnect(): void; - disconnect(output: number): void; - disconnect(destinationNode: AudioNode): void; - disconnect(destinationNode: AudioNode, output: number): void; - disconnect(destinationNode: AudioNode, output: number, input: number): void; - disconnect(destinationParam: AudioParam): void; - disconnect(destinationParam: AudioParam, output: number): void; -} - -declare var AudioNode: { - prototype: AudioNode; - new(): AudioNode; -}; - -/** The Web Audio API's AudioParam interface represents an audio-related parameter, usually a parameter of an AudioNode (such as GainNode.gain). */ -interface AudioParam { - automationRate: AutomationRate; - readonly defaultValue: number; - readonly maxValue: number; - readonly minValue: number; - value: number; - cancelAndHoldAtTime(cancelTime: number): AudioParam; - cancelScheduledValues(cancelTime: number): AudioParam; - exponentialRampToValueAtTime(value: number, endTime: number): AudioParam; - linearRampToValueAtTime(value: number, endTime: number): AudioParam; - setTargetAtTime(target: number, startTime: number, timeConstant: number): AudioParam; - setValueAtTime(value: number, startTime: number): AudioParam; - setValueCurveAtTime(values: number[] | Float32Array, startTime: number, duration: number): AudioParam; -} - -declare var AudioParam: { - prototype: AudioParam; - new(): AudioParam; -}; - -interface AudioParamMap { - forEach(callbackfn: (value: AudioParam, key: string, parent: AudioParamMap) => void, thisArg?: any): void; -} - -declare var AudioParamMap: { - prototype: AudioParamMap; - new(): AudioParamMap; -}; - -/** - * The Web Audio API events that occur when a ScriptProcessorNode input buffer is ready to be processed. - * @deprecated As of the August 29 2014 Web Audio API spec publication, this feature has been marked as deprecated, and is soon to be replaced by AudioWorklet. - */ -interface AudioProcessingEvent extends Event { - /** @deprecated */ - readonly inputBuffer: AudioBuffer; - /** @deprecated */ - readonly outputBuffer: AudioBuffer; - /** @deprecated */ - readonly playbackTime: number; -} - -/** @deprecated */ -declare var AudioProcessingEvent: { - prototype: AudioProcessingEvent; - new(type: string, eventInitDict: AudioProcessingEventInit): AudioProcessingEvent; -}; - -interface AudioScheduledSourceNodeEventMap { - "ended": Event; -} - -interface AudioScheduledSourceNode extends AudioNode { - onended: ((this: AudioScheduledSourceNode, ev: Event) => any) | null; - start(when?: number): void; - stop(when?: number): void; - addEventListener(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: AudioScheduledSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var AudioScheduledSourceNode: { - prototype: AudioScheduledSourceNode; - new(): AudioScheduledSourceNode; -}; - -interface AudioWorklet extends Worklet { -} - -declare var AudioWorklet: { - prototype: AudioWorklet; - new(): AudioWorklet; -}; - -interface AudioWorkletNodeEventMap { - "processorerror": Event; -} - -interface AudioWorkletNode extends AudioNode { - onprocessorerror: ((this: AudioWorkletNode, ev: Event) => any) | null; - readonly parameters: AudioParamMap; - readonly port: MessagePort; - addEventListener(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: AudioWorkletNode, ev: AudioWorkletNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var AudioWorkletNode: { - prototype: AudioWorkletNode; - new(context: BaseAudioContext, name: string, options?: AudioWorkletNodeOptions): AudioWorkletNode; -}; - -interface AuthenticatorAssertionResponse extends AuthenticatorResponse { - readonly authenticatorData: ArrayBuffer; - readonly signature: ArrayBuffer; - readonly userHandle: ArrayBuffer | null; -} - -declare var AuthenticatorAssertionResponse: { - prototype: AuthenticatorAssertionResponse; - new(): AuthenticatorAssertionResponse; -}; - -interface AuthenticatorAttestationResponse extends AuthenticatorResponse { - readonly attestationObject: ArrayBuffer; -} - -declare var AuthenticatorAttestationResponse: { - prototype: AuthenticatorAttestationResponse; - new(): AuthenticatorAttestationResponse; -}; - -interface AuthenticatorResponse { - readonly clientDataJSON: ArrayBuffer; -} - -declare var AuthenticatorResponse: { - prototype: AuthenticatorResponse; - new(): AuthenticatorResponse; -}; - -interface BarProp { - readonly visible: boolean; -} - -declare var BarProp: { - prototype: BarProp; - new(): BarProp; -}; - -interface BaseAudioContextEventMap { - "statechange": Event; -} - -interface BaseAudioContext extends EventTarget { - readonly audioWorklet: AudioWorklet; - readonly currentTime: number; - readonly destination: AudioDestinationNode; - readonly listener: AudioListener; - onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null; - readonly sampleRate: number; - readonly state: AudioContextState; - createAnalyser(): AnalyserNode; - createBiquadFilter(): BiquadFilterNode; - createBuffer(numberOfChannels: number, length: number, sampleRate: number): AudioBuffer; - createBufferSource(): AudioBufferSourceNode; - createChannelMerger(numberOfInputs?: number): ChannelMergerNode; - createChannelSplitter(numberOfOutputs?: number): ChannelSplitterNode; - createConstantSource(): ConstantSourceNode; - createConvolver(): ConvolverNode; - createDelay(maxDelayTime?: number): DelayNode; - createDynamicsCompressor(): DynamicsCompressorNode; - createGain(): GainNode; - createIIRFilter(feedforward: number[], feedback: number[]): IIRFilterNode; - createOscillator(): OscillatorNode; - createPanner(): PannerNode; - createPeriodicWave(real: number[] | Float32Array, imag: number[] | Float32Array, constraints?: PeriodicWaveConstraints): PeriodicWave; - /** @deprecated */ - createScriptProcessor(bufferSize?: number, numberOfInputChannels?: number, numberOfOutputChannels?: number): ScriptProcessorNode; - createStereoPanner(): StereoPannerNode; - createWaveShaper(): WaveShaperNode; - decodeAudioData(audioData: ArrayBuffer, successCallback?: DecodeSuccessCallback | null, errorCallback?: DecodeErrorCallback | null): Promise; - addEventListener(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: BaseAudioContext, ev: BaseAudioContextEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var BaseAudioContext: { - prototype: BaseAudioContext; - new(): BaseAudioContext; -}; - -/** The beforeunload event is fired when the window, the document and its resources are about to be unloaded. */ -interface BeforeUnloadEvent extends Event { - returnValue: any; -} - -declare var BeforeUnloadEvent: { - prototype: BeforeUnloadEvent; - new(): BeforeUnloadEvent; -}; - -/** A simple low-order filter, and is created using the AudioContext.createBiquadFilter() method. It is an AudioNode that can represent different kinds of filters, tone control devices, and graphic equalizers. */ -interface BiquadFilterNode extends AudioNode { - readonly Q: AudioParam; - readonly detune: AudioParam; - readonly frequency: AudioParam; - readonly gain: AudioParam; - type: BiquadFilterType; - getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array): void; -} - -declare var BiquadFilterNode: { - prototype: BiquadFilterNode; - new(context: BaseAudioContext, options?: BiquadFilterOptions): BiquadFilterNode; -}; - -/** A file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system. */ -interface Blob { - readonly size: number; - readonly type: string; - arrayBuffer(): Promise; - slice(start?: number, end?: number, contentType?: string): Blob; - stream(): ReadableStream; - text(): Promise; -} - -declare var Blob: { - prototype: Blob; - new(blobParts?: BlobPart[], options?: BlobPropertyBag): Blob; -}; - -interface BlobEvent extends Event { - readonly data: Blob; - readonly timecode: DOMHighResTimeStamp; -} - -declare var BlobEvent: { - prototype: BlobEvent; - new(type: string, eventInitDict: BlobEventInit): BlobEvent; -}; - -interface Body { - readonly body: ReadableStream | null; - readonly bodyUsed: boolean; - arrayBuffer(): Promise; - blob(): Promise; - formData(): Promise; - json(): Promise; - text(): Promise; -} - -interface BroadcastChannelEventMap { - "message": MessageEvent; - "messageerror": MessageEvent; -} - -interface BroadcastChannel extends EventTarget { - /** - * Returns the channel name (as passed to the constructor). - */ - readonly name: string; - onmessage: ((this: BroadcastChannel, ev: MessageEvent) => any) | null; - onmessageerror: ((this: BroadcastChannel, ev: MessageEvent) => any) | null; - /** - * Closes the BroadcastChannel object, opening it up to garbage collection. - */ - close(): void; - /** - * Sends the given message to other BroadcastChannel objects set up for this channel. Messages can be structured objects, e.g. nested objects and arrays. - */ - postMessage(message: any): void; - addEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: BroadcastChannel, ev: BroadcastChannelEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var BroadcastChannel: { - prototype: BroadcastChannel; - new(name: string): BroadcastChannel; -}; - -/** This Streams API interface provides\xA0a built-in byte length queuing strategy that can be used when constructing streams. */ -interface ByteLengthQueuingStrategy extends QueuingStrategy { - readonly highWaterMark: number; - readonly size: QueuingStrategySize; -} - -declare var ByteLengthQueuingStrategy: { - prototype: ByteLengthQueuingStrategy; - new(init: QueuingStrategyInit): ByteLengthQueuingStrategy; -}; - -/** A CDATA section that can be used within XML to include extended portions of unescaped text. The symbols < and & don\u2019t need escaping as they normally do when inside a CDATA section. */ -interface CDATASection extends Text { -} - -declare var CDATASection: { - prototype: CDATASection; - new(): CDATASection; -}; - -interface CSSAnimation extends Animation { - readonly animationName: string; - addEventListener(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: CSSAnimation, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var CSSAnimation: { - prototype: CSSAnimation; - new(): CSSAnimation; -}; - -/** A single condition CSS at-rule, which consists of a condition and a statement block. It is a child of CSSGroupingRule. */ -interface CSSConditionRule extends CSSGroupingRule { - conditionText: string; -} - -declare var CSSConditionRule: { - prototype: CSSConditionRule; - new(): CSSConditionRule; -}; - -interface CSSCounterStyleRule extends CSSRule { - additiveSymbols: string; - fallback: string; - name: string; - negative: string; - pad: string; - prefix: string; - range: string; - speakAs: string; - suffix: string; - symbols: string; - system: string; -} - -declare var CSSCounterStyleRule: { - prototype: CSSCounterStyleRule; - new(): CSSCounterStyleRule; -}; - -interface CSSFontFaceRule extends CSSRule { - readonly style: CSSStyleDeclaration; -} - -declare var CSSFontFaceRule: { - prototype: CSSFontFaceRule; - new(): CSSFontFaceRule; -}; - -/** Any CSS at-rule that contains other rules nested within it. */ -interface CSSGroupingRule extends CSSRule { - readonly cssRules: CSSRuleList; - deleteRule(index: number): void; - insertRule(rule: string, index?: number): number; -} - -declare var CSSGroupingRule: { - prototype: CSSGroupingRule; - new(): CSSGroupingRule; -}; - -interface CSSImportRule extends CSSRule { - readonly href: string; - readonly media: MediaList; - readonly styleSheet: CSSStyleSheet; -} - -declare var CSSImportRule: { - prototype: CSSImportRule; - new(): CSSImportRule; -}; - -/** An object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a @keyframes at-rule. It implements the CSSRule interface with a type value of 8 (CSSRule.KEYFRAME_RULE). */ -interface CSSKeyframeRule extends CSSRule { - keyText: string; - readonly style: CSSStyleDeclaration; -} - -declare var CSSKeyframeRule: { - prototype: CSSKeyframeRule; - new(): CSSKeyframeRule; -}; - -/** An object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole @keyframes at-rule. It implements the CSSRule interface with a type value of 7 (CSSRule.KEYFRAMES_RULE). */ -interface CSSKeyframesRule extends CSSRule { - readonly cssRules: CSSRuleList; - name: string; - appendRule(rule: string): void; - deleteRule(select: string): void; - findRule(select: string): CSSKeyframeRule | null; -} - -declare var CSSKeyframesRule: { - prototype: CSSKeyframesRule; - new(): CSSKeyframesRule; -}; - -/** A single CSS @media rule. It implements the CSSConditionRule interface, and therefore the CSSGroupingRule and the CSSRule interface with a type value of 4 (CSSRule.MEDIA_RULE). */ -interface CSSMediaRule extends CSSConditionRule { - readonly media: MediaList; -} - -declare var CSSMediaRule: { - prototype: CSSMediaRule; - new(): CSSMediaRule; -}; - -/** An object representing a single CSS @namespace at-rule. It implements the CSSRule interface, with a type value of 10 (CSSRule.NAMESPACE_RULE). */ -interface CSSNamespaceRule extends CSSRule { - readonly namespaceURI: string; - readonly prefix: string; -} - -declare var CSSNamespaceRule: { - prototype: CSSNamespaceRule; - new(): CSSNamespaceRule; -}; - -/** CSSPageRule is an interface representing a single CSS @page rule. It implements the CSSRule interface with a type value of 6 (CSSRule.PAGE_RULE). */ -interface CSSPageRule extends CSSGroupingRule { - selectorText: string; - readonly style: CSSStyleDeclaration; -} - -declare var CSSPageRule: { - prototype: CSSPageRule; - new(): CSSPageRule; -}; - -/** A single CSS rule. There are several types of rules, listed in the Type constants section below. */ -interface CSSRule { - cssText: string; - readonly parentRule: CSSRule | null; - readonly parentStyleSheet: CSSStyleSheet | null; - /** @deprecated */ - readonly type: number; - readonly CHARSET_RULE: number; - readonly FONT_FACE_RULE: number; - readonly IMPORT_RULE: number; - readonly KEYFRAMES_RULE: number; - readonly KEYFRAME_RULE: number; - readonly MEDIA_RULE: number; - readonly NAMESPACE_RULE: number; - readonly PAGE_RULE: number; - readonly STYLE_RULE: number; - readonly SUPPORTS_RULE: number; -} - -declare var CSSRule: { - prototype: CSSRule; - new(): CSSRule; - readonly CHARSET_RULE: number; - readonly FONT_FACE_RULE: number; - readonly IMPORT_RULE: number; - readonly KEYFRAMES_RULE: number; - readonly KEYFRAME_RULE: number; - readonly MEDIA_RULE: number; - readonly NAMESPACE_RULE: number; - readonly PAGE_RULE: number; - readonly STYLE_RULE: number; - readonly SUPPORTS_RULE: number; -}; - -/** A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects. */ -interface CSSRuleList { - readonly length: number; - item(index: number): CSSRule | null; - [index: number]: CSSRule; -} - -declare var CSSRuleList: { - prototype: CSSRuleList; - new(): CSSRuleList; -}; - -/** An object that is a CSS declaration block, and exposes style information and various style-related methods and properties. */ -interface CSSStyleDeclaration { - alignContent: string; - alignItems: string; - alignSelf: string; - alignmentBaseline: string; - all: string; - animation: string; - animationDelay: string; - animationDirection: string; - animationDuration: string; - animationFillMode: string; - animationIterationCount: string; - animationName: string; - animationPlayState: string; - animationTimingFunction: string; - appearance: string; - aspectRatio: string; - backfaceVisibility: string; - background: string; - backgroundAttachment: string; - backgroundBlendMode: string; - backgroundClip: string; - backgroundColor: string; - backgroundImage: string; - backgroundOrigin: string; - backgroundPosition: string; - backgroundPositionX: string; - backgroundPositionY: string; - backgroundRepeat: string; - backgroundSize: string; - baselineShift: string; - blockSize: string; - border: string; - borderBlock: string; - borderBlockColor: string; - borderBlockEnd: string; - borderBlockEndColor: string; - borderBlockEndStyle: string; - borderBlockEndWidth: string; - borderBlockStart: string; - borderBlockStartColor: string; - borderBlockStartStyle: string; - borderBlockStartWidth: string; - borderBlockStyle: string; - borderBlockWidth: string; - borderBottom: string; - borderBottomColor: string; - borderBottomLeftRadius: string; - borderBottomRightRadius: string; - borderBottomStyle: string; - borderBottomWidth: string; - borderCollapse: string; - borderColor: string; - borderEndEndRadius: string; - borderEndStartRadius: string; - borderImage: string; - borderImageOutset: string; - borderImageRepeat: string; - borderImageSlice: string; - borderImageSource: string; - borderImageWidth: string; - borderInline: string; - borderInlineColor: string; - borderInlineEnd: string; - borderInlineEndColor: string; - borderInlineEndStyle: string; - borderInlineEndWidth: string; - borderInlineStart: string; - borderInlineStartColor: string; - borderInlineStartStyle: string; - borderInlineStartWidth: string; - borderInlineStyle: string; - borderInlineWidth: string; - borderLeft: string; - borderLeftColor: string; - borderLeftStyle: string; - borderLeftWidth: string; - borderRadius: string; - borderRight: string; - borderRightColor: string; - borderRightStyle: string; - borderRightWidth: string; - borderSpacing: string; - borderStartEndRadius: string; - borderStartStartRadius: string; - borderStyle: string; - borderTop: string; - borderTopColor: string; - borderTopLeftRadius: string; - borderTopRightRadius: string; - borderTopStyle: string; - borderTopWidth: string; - borderWidth: string; - bottom: string; - boxShadow: string; - boxSizing: string; - breakAfter: string; - breakBefore: string; - breakInside: string; - captionSide: string; - caretColor: string; - clear: string; - /** @deprecated */ - clip: string; - clipPath: string; - clipRule: string; - color: string; - colorInterpolation: string; - colorInterpolationFilters: string; - colorScheme: string; - columnCount: string; - columnFill: string; - columnGap: string; - columnRule: string; - columnRuleColor: string; - columnRuleStyle: string; - columnRuleWidth: string; - columnSpan: string; - columnWidth: string; - columns: string; - contain: string; - content: string; - counterIncrement: string; - counterReset: string; - counterSet: string; - cssFloat: string; - cssText: string; - cursor: string; - direction: string; - display: string; - dominantBaseline: string; - emptyCells: string; - fill: string; - fillOpacity: string; - fillRule: string; - filter: string; - flex: string; - flexBasis: string; - flexDirection: string; - flexFlow: string; - flexGrow: string; - flexShrink: string; - flexWrap: string; - float: string; - floodColor: string; - floodOpacity: string; - font: string; - fontFamily: string; - fontFeatureSettings: string; - fontKerning: string; - fontOpticalSizing: string; - fontSize: string; - fontSizeAdjust: string; - fontStretch: string; - fontStyle: string; - fontSynthesis: string; - fontVariant: string; - /** @deprecated */ - fontVariantAlternates: string; - fontVariantCaps: string; - fontVariantEastAsian: string; - fontVariantLigatures: string; - fontVariantNumeric: string; - fontVariantPosition: string; - fontVariationSettings: string; - fontWeight: string; - gap: string; - grid: string; - gridArea: string; - gridAutoColumns: string; - gridAutoFlow: string; - gridAutoRows: string; - gridColumn: string; - gridColumnEnd: string; - gridColumnGap: string; - gridColumnStart: string; - gridGap: string; - gridRow: string; - gridRowEnd: string; - gridRowGap: string; - gridRowStart: string; - gridTemplate: string; - gridTemplateAreas: string; - gridTemplateColumns: string; - gridTemplateRows: string; - height: string; - hyphens: string; - /** @deprecated */ - imageOrientation: string; - imageRendering: string; - inlineSize: string; - inset: string; - insetBlock: string; - insetBlockEnd: string; - insetBlockStart: string; - insetInline: string; - insetInlineEnd: string; - insetInlineStart: string; - isolation: string; - justifyContent: string; - justifyItems: string; - justifySelf: string; - left: string; - readonly length: number; - letterSpacing: string; - lightingColor: string; - lineBreak: string; - lineHeight: string; - listStyle: string; - listStyleImage: string; - listStylePosition: string; - listStyleType: string; - margin: string; - marginBlock: string; - marginBlockEnd: string; - marginBlockStart: string; - marginBottom: string; - marginInline: string; - marginInlineEnd: string; - marginInlineStart: string; - marginLeft: string; - marginRight: string; - marginTop: string; - marker: string; - markerEnd: string; - markerMid: string; - markerStart: string; - mask: string; - maskType: string; - maxBlockSize: string; - maxHeight: string; - maxInlineSize: string; - maxWidth: string; - minBlockSize: string; - minHeight: string; - minInlineSize: string; - minWidth: string; - mixBlendMode: string; - objectFit: string; - objectPosition: string; - offset: string; - offsetAnchor: string; - offsetDistance: string; - offsetPath: string; - offsetRotate: string; - opacity: string; - order: string; - orphans: string; - outline: string; - outlineColor: string; - outlineOffset: string; - outlineStyle: string; - outlineWidth: string; - overflow: string; - overflowAnchor: string; - overflowWrap: string; - overflowX: string; - overflowY: string; - overscrollBehavior: string; - overscrollBehaviorBlock: string; - overscrollBehaviorInline: string; - overscrollBehaviorX: string; - overscrollBehaviorY: string; - padding: string; - paddingBlock: string; - paddingBlockEnd: string; - paddingBlockStart: string; - paddingBottom: string; - paddingInline: string; - paddingInlineEnd: string; - paddingInlineStart: string; - paddingLeft: string; - paddingRight: string; - paddingTop: string; - pageBreakAfter: string; - pageBreakBefore: string; - pageBreakInside: string; - paintOrder: string; - readonly parentRule: CSSRule | null; - perspective: string; - perspectiveOrigin: string; - placeContent: string; - placeItems: string; - placeSelf: string; - pointerEvents: string; - position: string; - quotes: string; - resize: string; - right: string; - rotate: string; - rowGap: string; - rubyPosition: string; - scale: string; - scrollBehavior: string; - scrollMargin: string; - scrollMarginBlock: string; - scrollMarginBlockEnd: string; - scrollMarginBlockStart: string; - scrollMarginBottom: string; - scrollMarginInline: string; - scrollMarginInlineEnd: string; - scrollMarginInlineStart: string; - scrollMarginLeft: string; - scrollMarginRight: string; - scrollMarginTop: string; - scrollPadding: string; - scrollPaddingBlock: string; - scrollPaddingBlockEnd: string; - scrollPaddingBlockStart: string; - scrollPaddingBottom: string; - scrollPaddingInline: string; - scrollPaddingInlineEnd: string; - scrollPaddingInlineStart: string; - scrollPaddingLeft: string; - scrollPaddingRight: string; - scrollPaddingTop: string; - scrollSnapAlign: string; - scrollSnapStop: string; - scrollSnapType: string; - shapeImageThreshold: string; - shapeMargin: string; - shapeOutside: string; - shapeRendering: string; - stopColor: string; - stopOpacity: string; - stroke: string; - strokeDasharray: string; - strokeDashoffset: string; - strokeLinecap: string; - strokeLinejoin: string; - strokeMiterlimit: string; - strokeOpacity: string; - strokeWidth: string; - tabSize: string; - tableLayout: string; - textAlign: string; - textAlignLast: string; - textAnchor: string; - textCombineUpright: string; - textDecoration: string; - textDecorationColor: string; - textDecorationLine: string; - textDecorationSkipInk: string; - textDecorationStyle: string; - textDecorationThickness: string; - textEmphasis: string; - textEmphasisColor: string; - textEmphasisPosition: string; - textEmphasisStyle: string; - textIndent: string; - textOrientation: string; - textOverflow: string; - textRendering: string; - textShadow: string; - textTransform: string; - textUnderlineOffset: string; - textUnderlinePosition: string; - top: string; - touchAction: string; - transform: string; - transformBox: string; - transformOrigin: string; - transformStyle: string; - transition: string; - transitionDelay: string; - transitionDuration: string; - transitionProperty: string; - transitionTimingFunction: string; - translate: string; - unicodeBidi: string; - userSelect: string; - verticalAlign: string; - visibility: string; - /** @deprecated This is a legacy alias of \`alignContent\`. */ - webkitAlignContent: string; - /** @deprecated This is a legacy alias of \`alignItems\`. */ - webkitAlignItems: string; - /** @deprecated This is a legacy alias of \`alignSelf\`. */ - webkitAlignSelf: string; - /** @deprecated This is a legacy alias of \`animation\`. */ - webkitAnimation: string; - /** @deprecated This is a legacy alias of \`animationDelay\`. */ - webkitAnimationDelay: string; - /** @deprecated This is a legacy alias of \`animationDirection\`. */ - webkitAnimationDirection: string; - /** @deprecated This is a legacy alias of \`animationDuration\`. */ - webkitAnimationDuration: string; - /** @deprecated This is a legacy alias of \`animationFillMode\`. */ - webkitAnimationFillMode: string; - /** @deprecated This is a legacy alias of \`animationIterationCount\`. */ - webkitAnimationIterationCount: string; - /** @deprecated This is a legacy alias of \`animationName\`. */ - webkitAnimationName: string; - /** @deprecated This is a legacy alias of \`animationPlayState\`. */ - webkitAnimationPlayState: string; - /** @deprecated This is a legacy alias of \`animationTimingFunction\`. */ - webkitAnimationTimingFunction: string; - /** @deprecated This is a legacy alias of \`appearance\`. */ - webkitAppearance: string; - /** @deprecated This is a legacy alias of \`backfaceVisibility\`. */ - webkitBackfaceVisibility: string; - /** @deprecated This is a legacy alias of \`backgroundClip\`. */ - webkitBackgroundClip: string; - /** @deprecated This is a legacy alias of \`backgroundOrigin\`. */ - webkitBackgroundOrigin: string; - /** @deprecated This is a legacy alias of \`backgroundSize\`. */ - webkitBackgroundSize: string; - /** @deprecated This is a legacy alias of \`borderBottomLeftRadius\`. */ - webkitBorderBottomLeftRadius: string; - /** @deprecated This is a legacy alias of \`borderBottomRightRadius\`. */ - webkitBorderBottomRightRadius: string; - /** @deprecated This is a legacy alias of \`borderRadius\`. */ - webkitBorderRadius: string; - /** @deprecated This is a legacy alias of \`borderTopLeftRadius\`. */ - webkitBorderTopLeftRadius: string; - /** @deprecated This is a legacy alias of \`borderTopRightRadius\`. */ - webkitBorderTopRightRadius: string; - /** @deprecated */ - webkitBoxAlign: string; - /** @deprecated */ - webkitBoxFlex: string; - /** @deprecated */ - webkitBoxOrdinalGroup: string; - /** @deprecated */ - webkitBoxOrient: string; - /** @deprecated */ - webkitBoxPack: string; - /** @deprecated This is a legacy alias of \`boxShadow\`. */ - webkitBoxShadow: string; - /** @deprecated This is a legacy alias of \`boxSizing\`. */ - webkitBoxSizing: string; - /** @deprecated This is a legacy alias of \`filter\`. */ - webkitFilter: string; - /** @deprecated This is a legacy alias of \`flex\`. */ - webkitFlex: string; - /** @deprecated This is a legacy alias of \`flexBasis\`. */ - webkitFlexBasis: string; - /** @deprecated This is a legacy alias of \`flexDirection\`. */ - webkitFlexDirection: string; - /** @deprecated This is a legacy alias of \`flexFlow\`. */ - webkitFlexFlow: string; - /** @deprecated This is a legacy alias of \`flexGrow\`. */ - webkitFlexGrow: string; - /** @deprecated This is a legacy alias of \`flexShrink\`. */ - webkitFlexShrink: string; - /** @deprecated This is a legacy alias of \`flexWrap\`. */ - webkitFlexWrap: string; - /** @deprecated This is a legacy alias of \`justifyContent\`. */ - webkitJustifyContent: string; - webkitLineClamp: string; - /** @deprecated This is a legacy alias of \`mask\`. */ - webkitMask: string; - /** @deprecated This is a legacy alias of \`maskBorder\`. */ - webkitMaskBoxImage: string; - /** @deprecated This is a legacy alias of \`maskBorderOutset\`. */ - webkitMaskBoxImageOutset: string; - /** @deprecated This is a legacy alias of \`maskBorderRepeat\`. */ - webkitMaskBoxImageRepeat: string; - /** @deprecated This is a legacy alias of \`maskBorderSlice\`. */ - webkitMaskBoxImageSlice: string; - /** @deprecated This is a legacy alias of \`maskBorderSource\`. */ - webkitMaskBoxImageSource: string; - /** @deprecated This is a legacy alias of \`maskBorderWidth\`. */ - webkitMaskBoxImageWidth: string; - /** @deprecated This is a legacy alias of \`maskClip\`. */ - webkitMaskClip: string; - webkitMaskComposite: string; - /** @deprecated This is a legacy alias of \`maskImage\`. */ - webkitMaskImage: string; - /** @deprecated This is a legacy alias of \`maskOrigin\`. */ - webkitMaskOrigin: string; - /** @deprecated This is a legacy alias of \`maskPosition\`. */ - webkitMaskPosition: string; - /** @deprecated This is a legacy alias of \`maskRepeat\`. */ - webkitMaskRepeat: string; - /** @deprecated This is a legacy alias of \`maskSize\`. */ - webkitMaskSize: string; - /** @deprecated This is a legacy alias of \`order\`. */ - webkitOrder: string; - /** @deprecated This is a legacy alias of \`perspective\`. */ - webkitPerspective: string; - /** @deprecated This is a legacy alias of \`perspectiveOrigin\`. */ - webkitPerspectiveOrigin: string; - webkitTextFillColor: string; - webkitTextStroke: string; - webkitTextStrokeColor: string; - webkitTextStrokeWidth: string; - /** @deprecated This is a legacy alias of \`transform\`. */ - webkitTransform: string; - /** @deprecated This is a legacy alias of \`transformOrigin\`. */ - webkitTransformOrigin: string; - /** @deprecated This is a legacy alias of \`transformStyle\`. */ - webkitTransformStyle: string; - /** @deprecated This is a legacy alias of \`transition\`. */ - webkitTransition: string; - /** @deprecated This is a legacy alias of \`transitionDelay\`. */ - webkitTransitionDelay: string; - /** @deprecated This is a legacy alias of \`transitionDuration\`. */ - webkitTransitionDuration: string; - /** @deprecated This is a legacy alias of \`transitionProperty\`. */ - webkitTransitionProperty: string; - /** @deprecated This is a legacy alias of \`transitionTimingFunction\`. */ - webkitTransitionTimingFunction: string; - /** @deprecated This is a legacy alias of \`userSelect\`. */ - webkitUserSelect: string; - whiteSpace: string; - widows: string; - width: string; - willChange: string; - wordBreak: string; - wordSpacing: string; - /** @deprecated */ - wordWrap: string; - writingMode: string; - zIndex: string; - getPropertyPriority(property: string): string; - getPropertyValue(property: string): string; - item(index: number): string; - removeProperty(property: string): string; - setProperty(property: string, value: string | null, priority?: string): void; - [index: number]: string; -} - -declare var CSSStyleDeclaration: { - prototype: CSSStyleDeclaration; - new(): CSSStyleDeclaration; -}; - -/** CSSStyleRule represents a single CSS style rule. It implements the CSSRule interface with a type value of 1 (CSSRule.STYLE_RULE). */ -interface CSSStyleRule extends CSSRule { - selectorText: string; - readonly style: CSSStyleDeclaration; -} - -declare var CSSStyleRule: { - prototype: CSSStyleRule; - new(): CSSStyleRule; -}; - -/** A single CSS style sheet. It inherits properties and methods from its parent, StyleSheet. */ -interface CSSStyleSheet extends StyleSheet { - readonly cssRules: CSSRuleList; - readonly ownerRule: CSSRule | null; - /** @deprecated */ - readonly rules: CSSRuleList; - /** @deprecated */ - addRule(selector?: string, style?: string, index?: number): number; - deleteRule(index: number): void; - insertRule(rule: string, index?: number): number; - /** @deprecated */ - removeRule(index?: number): void; -} - -declare var CSSStyleSheet: { - prototype: CSSStyleSheet; - new(options?: CSSStyleSheetInit): CSSStyleSheet; -}; - -/** An object representing a single CSS @supports at-rule. It implements the CSSConditionRule interface, and therefore the CSSRule and CSSGroupingRule interfaces with a type value of 12 (CSSRule.SUPPORTS_RULE). */ -interface CSSSupportsRule extends CSSConditionRule { -} - -declare var CSSSupportsRule: { - prototype: CSSSupportsRule; - new(): CSSSupportsRule; -}; - -interface CSSTransition extends Animation { - readonly transitionProperty: string; - addEventListener(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: CSSTransition, ev: AnimationEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var CSSTransition: { - prototype: CSSTransition; - new(): CSSTransition; -}; - -/** Provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec. */ -interface Cache { - add(request: RequestInfo): Promise; - addAll(requests: RequestInfo[]): Promise; - delete(request: RequestInfo, options?: CacheQueryOptions): Promise; - keys(request?: RequestInfo, options?: CacheQueryOptions): Promise>; - match(request: RequestInfo, options?: CacheQueryOptions): Promise; - matchAll(request?: RequestInfo, options?: CacheQueryOptions): Promise>; - put(request: RequestInfo, response: Response): Promise; -} - -declare var Cache: { - prototype: Cache; - new(): Cache; -}; - -/** The storage for Cache objects. */ -interface CacheStorage { - delete(cacheName: string): Promise; - has(cacheName: string): Promise; - keys(): Promise; - match(request: RequestInfo, options?: MultiCacheQueryOptions): Promise; - open(cacheName: string): Promise; -} - -declare var CacheStorage: { - prototype: CacheStorage; - new(): CacheStorage; -}; - -interface CanvasCompositing { - globalAlpha: number; - globalCompositeOperation: string; -} - -interface CanvasDrawImage { - drawImage(image: CanvasImageSource, dx: number, dy: number): void; - drawImage(image: CanvasImageSource, dx: number, dy: number, dw: number, dh: number): void; - drawImage(image: CanvasImageSource, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void; -} - -interface CanvasDrawPath { - beginPath(): void; - clip(fillRule?: CanvasFillRule): void; - clip(path: Path2D, fillRule?: CanvasFillRule): void; - fill(fillRule?: CanvasFillRule): void; - fill(path: Path2D, fillRule?: CanvasFillRule): void; - isPointInPath(x: number, y: number, fillRule?: CanvasFillRule): boolean; - isPointInPath(path: Path2D, x: number, y: number, fillRule?: CanvasFillRule): boolean; - isPointInStroke(x: number, y: number): boolean; - isPointInStroke(path: Path2D, x: number, y: number): boolean; - stroke(): void; - stroke(path: Path2D): void; -} - -interface CanvasFillStrokeStyles { - fillStyle: string | CanvasGradient | CanvasPattern; - strokeStyle: string | CanvasGradient | CanvasPattern; - createLinearGradient(x0: number, y0: number, x1: number, y1: number): CanvasGradient; - createPattern(image: CanvasImageSource, repetition: string | null): CanvasPattern | null; - createRadialGradient(x0: number, y0: number, r0: number, x1: number, y1: number, r1: number): CanvasGradient; -} - -interface CanvasFilters { - filter: string; -} - -/** An opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient(). */ -interface CanvasGradient { - /** - * Adds a color stop with the given color to the gradient at the given offset. 0.0 is the offset at one end of the gradient, 1.0 is the offset at the other end. - * - * Throws an "IndexSizeError" DOMException if the offset is out of range. Throws a "SyntaxError" DOMException if the color cannot be parsed. - */ - addColorStop(offset: number, color: string): void; -} - -declare var CanvasGradient: { - prototype: CanvasGradient; - new(): CanvasGradient; -}; - -interface CanvasImageData { - createImageData(sw: number, sh: number, settings?: ImageDataSettings): ImageData; - createImageData(imagedata: ImageData): ImageData; - getImageData(sx: number, sy: number, sw: number, sh: number, settings?: ImageDataSettings): ImageData; - putImageData(imagedata: ImageData, dx: number, dy: number): void; - putImageData(imagedata: ImageData, dx: number, dy: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): void; -} - -interface CanvasImageSmoothing { - imageSmoothingEnabled: boolean; - imageSmoothingQuality: ImageSmoothingQuality; -} - -interface CanvasPath { - arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void; - arcTo(x1: number, y1: number, x2: number, y2: number, radius: number): void; - bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void; - closePath(): void; - ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void; - lineTo(x: number, y: number): void; - moveTo(x: number, y: number): void; - quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void; - rect(x: number, y: number, w: number, h: number): void; -} - -interface CanvasPathDrawingStyles { - lineCap: CanvasLineCap; - lineDashOffset: number; - lineJoin: CanvasLineJoin; - lineWidth: number; - miterLimit: number; - getLineDash(): number[]; - setLineDash(segments: number[]): void; -} - -/** An opaque object describing a pattern, based on an image, a canvas, or a video, created by the CanvasRenderingContext2D.createPattern() method. */ -interface CanvasPattern { - /** - * Sets the transformation matrix that will be used when rendering the pattern during a fill or stroke painting operation. - */ - setTransform(transform?: DOMMatrix2DInit): void; -} - -declare var CanvasPattern: { - prototype: CanvasPattern; - new(): CanvasPattern; -}; - -interface CanvasRect { - clearRect(x: number, y: number, w: number, h: number): void; - fillRect(x: number, y: number, w: number, h: number): void; - strokeRect(x: number, y: number, w: number, h: number): void; -} - -/** The CanvasRenderingContext2D interface, part of the Canvas API, provides the 2D rendering context for the drawing surface of a element. It is used for drawing shapes, text, images, and other objects. */ -interface CanvasRenderingContext2D extends CanvasCompositing, CanvasDrawImage, CanvasDrawPath, CanvasFillStrokeStyles, CanvasFilters, CanvasImageData, CanvasImageSmoothing, CanvasPath, CanvasPathDrawingStyles, CanvasRect, CanvasShadowStyles, CanvasState, CanvasText, CanvasTextDrawingStyles, CanvasTransform, CanvasUserInterface { - readonly canvas: HTMLCanvasElement; - getContextAttributes(): CanvasRenderingContext2DSettings; -} - -declare var CanvasRenderingContext2D: { - prototype: CanvasRenderingContext2D; - new(): CanvasRenderingContext2D; -}; - -interface CanvasShadowStyles { - shadowBlur: number; - shadowColor: string; - shadowOffsetX: number; - shadowOffsetY: number; -} - -interface CanvasState { - restore(): void; - save(): void; -} - -interface CanvasText { - fillText(text: string, x: number, y: number, maxWidth?: number): void; - measureText(text: string): TextMetrics; - strokeText(text: string, x: number, y: number, maxWidth?: number): void; -} - -interface CanvasTextDrawingStyles { - direction: CanvasDirection; - font: string; - textAlign: CanvasTextAlign; - textBaseline: CanvasTextBaseline; -} - -interface CanvasTransform { - getTransform(): DOMMatrix; - resetTransform(): void; - rotate(angle: number): void; - scale(x: number, y: number): void; - setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void; - setTransform(transform?: DOMMatrix2DInit): void; - transform(a: number, b: number, c: number, d: number, e: number, f: number): void; - translate(x: number, y: number): void; -} - -interface CanvasUserInterface { - drawFocusIfNeeded(element: Element): void; - drawFocusIfNeeded(path: Path2D, element: Element): void; -} - -/** The ChannelMergerNode interface, often used in conjunction with its opposite, ChannelSplitterNode, reunites different mono inputs into a single output. Each input is used to fill a channel of the output. This is useful for accessing each channels separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */ -interface ChannelMergerNode extends AudioNode { -} - -declare var ChannelMergerNode: { - prototype: ChannelMergerNode; - new(context: BaseAudioContext, options?: ChannelMergerOptions): ChannelMergerNode; -}; - -/** The ChannelSplitterNode interface, often used in conjunction with its opposite, ChannelMergerNode, separates the different channels of an audio source into a set of mono outputs. This is useful for accessing each channel separately, e.g. for performing channel mixing where gain must be separately controlled on each channel. */ -interface ChannelSplitterNode extends AudioNode { -} - -declare var ChannelSplitterNode: { - prototype: ChannelSplitterNode; - new(context: BaseAudioContext, options?: ChannelSplitterOptions): ChannelSplitterNode; -}; - -/** The CharacterData abstract interface represents a Node object that contains characters. This is an abstract interface, meaning there aren't any object of type CharacterData: it is implemented by other interfaces, like Text, Comment, or ProcessingInstruction which aren't abstract. */ -interface CharacterData extends Node, ChildNode, NonDocumentTypeChildNode { - data: string; - readonly length: number; - readonly ownerDocument: Document; - appendData(data: string): void; - deleteData(offset: number, count: number): void; - insertData(offset: number, data: string): void; - replaceData(offset: number, count: number, data: string): void; - substringData(offset: number, count: number): string; -} - -declare var CharacterData: { - prototype: CharacterData; - new(): CharacterData; -}; - -interface ChildNode extends Node { - /** - * Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes. - * - * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated. - */ - after(...nodes: (Node | string)[]): void; - /** - * Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes. - * - * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated. - */ - before(...nodes: (Node | string)[]): void; - /** - * Removes node. - */ - remove(): void; - /** - * Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes. - * - * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated. - */ - replaceWith(...nodes: (Node | string)[]): void; -} - -/** @deprecated */ -interface ClientRect extends DOMRect { -} - -interface Clipboard extends EventTarget { - read(): Promise; - readText(): Promise; - write(data: ClipboardItems): Promise; - writeText(data: string): Promise; -} - -declare var Clipboard: { - prototype: Clipboard; - new(): Clipboard; -}; - -/** Events providing information related to modification of the clipboard, that is cut, copy, and paste events. */ -interface ClipboardEvent extends Event { - readonly clipboardData: DataTransfer | null; -} - -declare var ClipboardEvent: { - prototype: ClipboardEvent; - new(type: string, eventInitDict?: ClipboardEventInit): ClipboardEvent; -}; - -interface ClipboardItem { - readonly types: ReadonlyArray; - getType(type: string): Promise; -} - -declare var ClipboardItem: { - prototype: ClipboardItem; - new(items: Record, options?: ClipboardItemOptions): ClipboardItem; -}; - -/** A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute. */ -interface CloseEvent extends Event { - /** - * Returns the WebSocket connection close code provided by the server. - */ - readonly code: number; - /** - * Returns the WebSocket connection close reason provided by the server. - */ - readonly reason: string; - /** - * Returns true if the connection closed cleanly; false otherwise. - */ - readonly wasClean: boolean; -} - -declare var CloseEvent: { - prototype: CloseEvent; - new(type: string, eventInitDict?: CloseEventInit): CloseEvent; -}; - -/** Textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view. */ -interface Comment extends CharacterData { -} - -declare var Comment: { - prototype: Comment; - new(data?: string): Comment; -}; - -/** The DOM CompositionEvent represents events that occur due to the user indirectly entering text. */ -interface CompositionEvent extends UIEvent { - readonly data: string; - /** @deprecated */ - initCompositionEvent(typeArg: string, bubblesArg?: boolean, cancelableArg?: boolean, viewArg?: WindowProxy | null, dataArg?: string): void; -} - -declare var CompositionEvent: { - prototype: CompositionEvent; - new(type: string, eventInitDict?: CompositionEventInit): CompositionEvent; -}; - -interface ConstantSourceNode extends AudioScheduledSourceNode { - readonly offset: AudioParam; - addEventListener(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: ConstantSourceNode, ev: AudioScheduledSourceNodeEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var ConstantSourceNode: { - prototype: ConstantSourceNode; - new(context: BaseAudioContext, options?: ConstantSourceOptions): ConstantSourceNode; -}; - -/** An AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect. A ConvolverNode always has exactly one input and one output. */ -interface ConvolverNode extends AudioNode { - buffer: AudioBuffer | null; - normalize: boolean; -} - -declare var ConvolverNode: { - prototype: ConvolverNode; - new(context: BaseAudioContext, options?: ConvolverOptions): ConvolverNode; -}; - -/** This Streams API interface provides\xA0a built-in byte length queuing strategy that can be used when constructing streams. */ -interface CountQueuingStrategy extends QueuingStrategy { - readonly highWaterMark: number; - readonly size: QueuingStrategySize; -} - -declare var CountQueuingStrategy: { - prototype: CountQueuingStrategy; - new(init: QueuingStrategyInit): CountQueuingStrategy; -}; - -interface Credential { - readonly id: string; - readonly type: string; -} - -declare var Credential: { - prototype: Credential; - new(): Credential; -}; - -interface CredentialsContainer { - create(options?: CredentialCreationOptions): Promise; - get(options?: CredentialRequestOptions): Promise; - preventSilentAccess(): Promise; - store(credential: Credential): Promise; -} - -declare var CredentialsContainer: { - prototype: CredentialsContainer; - new(): CredentialsContainer; -}; - -/** Basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives. */ -interface Crypto { - readonly subtle: SubtleCrypto; - getRandomValues(array: T): T; -} - -declare var Crypto: { - prototype: Crypto; - new(): Crypto; -}; - -/** The CryptoKey dictionary of the Web Crypto API represents a cryptographic key. */ -interface CryptoKey { - readonly algorithm: KeyAlgorithm; - readonly extractable: boolean; - readonly type: KeyType; - readonly usages: KeyUsage[]; -} - -declare var CryptoKey: { - prototype: CryptoKey; - new(): CryptoKey; -}; - -interface CustomElementRegistry { - define(name: string, constructor: CustomElementConstructor, options?: ElementDefinitionOptions): void; - get(name: string): CustomElementConstructor | undefined; - upgrade(root: Node): void; - whenDefined(name: string): Promise; -} - -declare var CustomElementRegistry: { - prototype: CustomElementRegistry; - new(): CustomElementRegistry; -}; - -interface CustomEvent extends Event { - /** - * Returns any custom data event was created with. Typically used for synthetic events. - */ - readonly detail: T; - /** @deprecated */ - initCustomEvent(type: string, bubbles?: boolean, cancelable?: boolean, detail?: T): void; -} - -declare var CustomEvent: { - prototype: CustomEvent; - new(type: string, eventInitDict?: CustomEventInit): CustomEvent; -}; - -/** An abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API. */ -interface DOMException { - readonly code: number; - readonly message: string; - readonly name: string; - readonly ABORT_ERR: number; - readonly DATA_CLONE_ERR: number; - readonly DOMSTRING_SIZE_ERR: number; - readonly HIERARCHY_REQUEST_ERR: number; - readonly INDEX_SIZE_ERR: number; - readonly INUSE_ATTRIBUTE_ERR: number; - readonly INVALID_ACCESS_ERR: number; - readonly INVALID_CHARACTER_ERR: number; - readonly INVALID_MODIFICATION_ERR: number; - readonly INVALID_NODE_TYPE_ERR: number; - readonly INVALID_STATE_ERR: number; - readonly NAMESPACE_ERR: number; - readonly NETWORK_ERR: number; - readonly NOT_FOUND_ERR: number; - readonly NOT_SUPPORTED_ERR: number; - readonly NO_DATA_ALLOWED_ERR: number; - readonly NO_MODIFICATION_ALLOWED_ERR: number; - readonly QUOTA_EXCEEDED_ERR: number; - readonly SECURITY_ERR: number; - readonly SYNTAX_ERR: number; - readonly TIMEOUT_ERR: number; - readonly TYPE_MISMATCH_ERR: number; - readonly URL_MISMATCH_ERR: number; - readonly VALIDATION_ERR: number; - readonly WRONG_DOCUMENT_ERR: number; -} - -declare var DOMException: { - prototype: DOMException; - new(message?: string, name?: string): DOMException; - readonly ABORT_ERR: number; - readonly DATA_CLONE_ERR: number; - readonly DOMSTRING_SIZE_ERR: number; - readonly HIERARCHY_REQUEST_ERR: number; - readonly INDEX_SIZE_ERR: number; - readonly INUSE_ATTRIBUTE_ERR: number; - readonly INVALID_ACCESS_ERR: number; - readonly INVALID_CHARACTER_ERR: number; - readonly INVALID_MODIFICATION_ERR: number; - readonly INVALID_NODE_TYPE_ERR: number; - readonly INVALID_STATE_ERR: number; - readonly NAMESPACE_ERR: number; - readonly NETWORK_ERR: number; - readonly NOT_FOUND_ERR: number; - readonly NOT_SUPPORTED_ERR: number; - readonly NO_DATA_ALLOWED_ERR: number; - readonly NO_MODIFICATION_ALLOWED_ERR: number; - readonly QUOTA_EXCEEDED_ERR: number; - readonly SECURITY_ERR: number; - readonly SYNTAX_ERR: number; - readonly TIMEOUT_ERR: number; - readonly TYPE_MISMATCH_ERR: number; - readonly URL_MISMATCH_ERR: number; - readonly VALIDATION_ERR: number; - readonly WRONG_DOCUMENT_ERR: number; -}; - -/** An object providing methods which are not dependent on any particular document. Such an object is returned by the Document.implementation property. */ -interface DOMImplementation { - createDocument(namespace: string | null, qualifiedName: string | null, doctype?: DocumentType | null): XMLDocument; - createDocumentType(qualifiedName: string, publicId: string, systemId: string): DocumentType; - createHTMLDocument(title?: string): Document; - /** @deprecated */ - hasFeature(...args: any[]): true; -} - -declare var DOMImplementation: { - prototype: DOMImplementation; - new(): DOMImplementation; -}; - -interface DOMMatrix extends DOMMatrixReadOnly { - a: number; - b: number; - c: number; - d: number; - e: number; - f: number; - m11: number; - m12: number; - m13: number; - m14: number; - m21: number; - m22: number; - m23: number; - m24: number; - m31: number; - m32: number; - m33: number; - m34: number; - m41: number; - m42: number; - m43: number; - m44: number; - invertSelf(): DOMMatrix; - multiplySelf(other?: DOMMatrixInit): DOMMatrix; - preMultiplySelf(other?: DOMMatrixInit): DOMMatrix; - rotateAxisAngleSelf(x?: number, y?: number, z?: number, angle?: number): DOMMatrix; - rotateFromVectorSelf(x?: number, y?: number): DOMMatrix; - rotateSelf(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix; - scale3dSelf(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix; - scaleSelf(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix; - setMatrixValue(transformList: string): DOMMatrix; - skewXSelf(sx?: number): DOMMatrix; - skewYSelf(sy?: number): DOMMatrix; - translateSelf(tx?: number, ty?: number, tz?: number): DOMMatrix; -} - -declare var DOMMatrix: { - prototype: DOMMatrix; - new(init?: string | number[]): DOMMatrix; - fromFloat32Array(array32: Float32Array): DOMMatrix; - fromFloat64Array(array64: Float64Array): DOMMatrix; - fromMatrix(other?: DOMMatrixInit): DOMMatrix; -}; - -type SVGMatrix = DOMMatrix; -declare var SVGMatrix: typeof DOMMatrix; - -type WebKitCSSMatrix = DOMMatrix; -declare var WebKitCSSMatrix: typeof DOMMatrix; - -interface DOMMatrixReadOnly { - readonly a: number; - readonly b: number; - readonly c: number; - readonly d: number; - readonly e: number; - readonly f: number; - readonly is2D: boolean; - readonly isIdentity: boolean; - readonly m11: number; - readonly m12: number; - readonly m13: number; - readonly m14: number; - readonly m21: number; - readonly m22: number; - readonly m23: number; - readonly m24: number; - readonly m31: number; - readonly m32: number; - readonly m33: number; - readonly m34: number; - readonly m41: number; - readonly m42: number; - readonly m43: number; - readonly m44: number; - flipX(): DOMMatrix; - flipY(): DOMMatrix; - inverse(): DOMMatrix; - multiply(other?: DOMMatrixInit): DOMMatrix; - rotate(rotX?: number, rotY?: number, rotZ?: number): DOMMatrix; - rotateAxisAngle(x?: number, y?: number, z?: number, angle?: number): DOMMatrix; - rotateFromVector(x?: number, y?: number): DOMMatrix; - scale(scaleX?: number, scaleY?: number, scaleZ?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix; - scale3d(scale?: number, originX?: number, originY?: number, originZ?: number): DOMMatrix; - /** @deprecated */ - scaleNonUniform(scaleX?: number, scaleY?: number): DOMMatrix; - skewX(sx?: number): DOMMatrix; - skewY(sy?: number): DOMMatrix; - toFloat32Array(): Float32Array; - toFloat64Array(): Float64Array; - toJSON(): any; - transformPoint(point?: DOMPointInit): DOMPoint; - translate(tx?: number, ty?: number, tz?: number): DOMMatrix; - toString(): string; -} - -declare var DOMMatrixReadOnly: { - prototype: DOMMatrixReadOnly; - new(init?: string | number[]): DOMMatrixReadOnly; - fromFloat32Array(array32: Float32Array): DOMMatrixReadOnly; - fromFloat64Array(array64: Float64Array): DOMMatrixReadOnly; - fromMatrix(other?: DOMMatrixInit): DOMMatrixReadOnly; - toString(): string; -}; - -/** Provides the ability to parse XML or HTML source code from a string into a DOM Document. */ -interface DOMParser { - /** - * Parses string using either the HTML or XML parser, according to type, and returns the resulting Document. type can be "text/html" (which will invoke the HTML parser), or any of "text/xml", "application/xml", "application/xhtml+xml", or "image/svg+xml" (which will invoke the XML parser). - * - * For the XML parser, if string cannot be parsed, then the returned Document will contain elements describing the resulting error. - * - * Note that script elements are not evaluated during parsing, and the resulting document's encoding will always be UTF-8. - * - * Values other than the above for type will cause a TypeError exception to be thrown. - */ - parseFromString(string: string, type: DOMParserSupportedType): Document; -} - -declare var DOMParser: { - prototype: DOMParser; - new(): DOMParser; -}; - -interface DOMPoint extends DOMPointReadOnly { - w: number; - x: number; - y: number; - z: number; -} - -declare var DOMPoint: { - prototype: DOMPoint; - new(x?: number, y?: number, z?: number, w?: number): DOMPoint; - fromPoint(other?: DOMPointInit): DOMPoint; -}; - -type SVGPoint = DOMPoint; -declare var SVGPoint: typeof DOMPoint; - -interface DOMPointReadOnly { - readonly w: number; - readonly x: number; - readonly y: number; - readonly z: number; - matrixTransform(matrix?: DOMMatrixInit): DOMPoint; - toJSON(): any; -} - -declare var DOMPointReadOnly: { - prototype: DOMPointReadOnly; - new(x?: number, y?: number, z?: number, w?: number): DOMPointReadOnly; - fromPoint(other?: DOMPointInit): DOMPointReadOnly; -}; - -interface DOMQuad { - readonly p1: DOMPoint; - readonly p2: DOMPoint; - readonly p3: DOMPoint; - readonly p4: DOMPoint; - getBounds(): DOMRect; - toJSON(): any; -} - -declare var DOMQuad: { - prototype: DOMQuad; - new(p1?: DOMPointInit, p2?: DOMPointInit, p3?: DOMPointInit, p4?: DOMPointInit): DOMQuad; - fromQuad(other?: DOMQuadInit): DOMQuad; - fromRect(other?: DOMRectInit): DOMQuad; -}; - -interface DOMRect extends DOMRectReadOnly { - height: number; - width: number; - x: number; - y: number; -} - -declare var DOMRect: { - prototype: DOMRect; - new(x?: number, y?: number, width?: number, height?: number): DOMRect; - fromRect(other?: DOMRectInit): DOMRect; -}; - -type SVGRect = DOMRect; -declare var SVGRect: typeof DOMRect; - -interface DOMRectList { - readonly length: number; - item(index: number): DOMRect | null; - [index: number]: DOMRect; -} - -declare var DOMRectList: { - prototype: DOMRectList; - new(): DOMRectList; -}; - -interface DOMRectReadOnly { - readonly bottom: number; - readonly height: number; - readonly left: number; - readonly right: number; - readonly top: number; - readonly width: number; - readonly x: number; - readonly y: number; - toJSON(): any; -} - -declare var DOMRectReadOnly: { - prototype: DOMRectReadOnly; - new(x?: number, y?: number, width?: number, height?: number): DOMRectReadOnly; - fromRect(other?: DOMRectInit): DOMRectReadOnly; -}; - -/** A type returned by some APIs which contains a list of DOMString (strings). */ -interface DOMStringList { - /** - * Returns the number of strings in strings. - */ - readonly length: number; - /** - * Returns true if strings contains string, and false otherwise. - */ - contains(string: string): boolean; - /** - * Returns the string with index index from strings. - */ - item(index: number): string | null; - [index: number]: string; -} - -declare var DOMStringList: { - prototype: DOMStringList; - new(): DOMStringList; -}; - -/** Used by the dataset\xA0HTML\xA0attribute to represent data for custom attributes added to elements. */ -interface DOMStringMap { - [name: string]: string | undefined; -} - -declare var DOMStringMap: { - prototype: DOMStringMap; - new(): DOMStringMap; -}; - -/** A set of space-separated tokens. Such a set is returned by Element.classList, HTMLLinkElement.relList, HTMLAnchorElement.relList, HTMLAreaElement.relList, HTMLIframeElement.sandbox, or HTMLOutputElement.htmlFor. It is indexed beginning with 0 as with JavaScript Array objects. DOMTokenList is always case-sensitive. */ -interface DOMTokenList { - /** - * Returns the number of tokens. - */ - readonly length: number; - /** - * Returns the associated set as string. - * - * Can be set, to change the associated attribute. - */ - value: string; - toString(): string; - /** - * Adds all arguments passed, except those already present. - * - * Throws a "SyntaxError" DOMException if one of the arguments is the empty string. - * - * Throws an "InvalidCharacterError" DOMException if one of the arguments contains any ASCII whitespace. - */ - add(...tokens: string[]): void; - /** - * Returns true if token is present, and false otherwise. - */ - contains(token: string): boolean; - /** - * Returns the token with index index. - */ - item(index: number): string | null; - /** - * Removes arguments passed, if they are present. - * - * Throws a "SyntaxError" DOMException if one of the arguments is the empty string. - * - * Throws an "InvalidCharacterError" DOMException if one of the arguments contains any ASCII whitespace. - */ - remove(...tokens: string[]): void; - /** - * Replaces token with newToken. - * - * Returns true if token was replaced with newToken, and false otherwise. - * - * Throws a "SyntaxError" DOMException if one of the arguments is the empty string. - * - * Throws an "InvalidCharacterError" DOMException if one of the arguments contains any ASCII whitespace. - */ - replace(token: string, newToken: string): boolean; - /** - * Returns true if token is in the associated attribute's supported tokens. Returns false otherwise. - * - * Throws a TypeError if the associated attribute has no supported tokens defined. - */ - supports(token: string): boolean; - /** - * If force is not given, "toggles" token, removing it if it's present and adding it if it's not present. If force is true, adds token (same as add()). If force is false, removes token (same as remove()). - * - * Returns true if token is now present, and false otherwise. - * - * Throws a "SyntaxError" DOMException if token is empty. - * - * Throws an "InvalidCharacterError" DOMException if token contains any spaces. - */ - toggle(token: string, force?: boolean): boolean; - forEach(callbackfn: (value: string, key: number, parent: DOMTokenList) => void, thisArg?: any): void; - [index: number]: string; -} - -declare var DOMTokenList: { - prototype: DOMTokenList; - new(): DOMTokenList; -}; - -/** Used to hold the data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types. For more information about drag and drop, see HTML Drag and Drop API. */ -interface DataTransfer { - /** - * Returns the kind of operation that is currently selected. If the kind of operation isn't one of those that is allowed by the effectAllowed attribute, then the operation will fail. - * - * Can be set, to change the selected operation. - * - * The possible values are "none", "copy", "link", and "move". - */ - dropEffect: "none" | "copy" | "link" | "move"; - /** - * Returns the kinds of operations that are to be allowed. - * - * Can be set (during the dragstart event), to change the allowed operations. - * - * The possible values are "none", "copy", "copyLink", "copyMove", "link", "linkMove", "move", "all", and "uninitialized", - */ - effectAllowed: "none" | "copy" | "copyLink" | "copyMove" | "link" | "linkMove" | "move" | "all" | "uninitialized"; - /** - * Returns a FileList of the files being dragged, if any. - */ - readonly files: FileList; - /** - * Returns a DataTransferItemList object, with the drag data. - */ - readonly items: DataTransferItemList; - /** - * Returns a frozen array listing the formats that were set in the dragstart event. In addition, if any files are being dragged, then one of the types will be the string "Files". - */ - readonly types: ReadonlyArray; - /** - * Removes the data of the specified formats. Removes all data if the argument is omitted. - */ - clearData(format?: string): void; - /** - * Returns the specified data. If there is no such data, returns the empty string. - */ - getData(format: string): string; - /** - * Adds the specified data. - */ - setData(format: string, data: string): void; - /** - * Uses the given element to update the drag feedback, replacing any previously specified feedback. - */ - setDragImage(image: Element, x: number, y: number): void; -} - -declare var DataTransfer: { - prototype: DataTransfer; - new(): DataTransfer; -}; - -/** One drag data item. During a drag operation, each drag event has a dataTransfer property which contains a list of drag data items. Each item in the list is a DataTransferItem object. */ -interface DataTransferItem { - /** - * Returns the drag data item kind, one of: "string", "file". - */ - readonly kind: string; - /** - * Returns the drag data item type string. - */ - readonly type: string; - /** - * Returns a File object, if the drag data item kind is File. - */ - getAsFile(): File | null; - /** - * Invokes the callback with the string data as the argument, if the drag data item kind is text. - */ - getAsString(callback: FunctionStringCallback | null): void; - webkitGetAsEntry(): FileSystemEntry | null; -} - -declare var DataTransferItem: { - prototype: DataTransferItem; - new(): DataTransferItem; -}; - -/** A list of DataTransferItem objects representing items being dragged. During a drag operation, each DragEvent has a dataTransfer property and that property is a DataTransferItemList. */ -interface DataTransferItemList { - /** - * Returns the number of items in the drag data store. - */ - readonly length: number; - /** - * Adds a new entry for the given data to the drag data store. If the data is plain text then a type string has to be provided also. - */ - add(data: string, type: string): DataTransferItem | null; - add(data: File): DataTransferItem | null; - /** - * Removes all the entries in the drag data store. - */ - clear(): void; - /** - * Removes the indexth entry in the drag data store. - */ - remove(index: number): void; - [index: number]: DataTransferItem; -} - -declare var DataTransferItemList: { - prototype: DataTransferItemList; - new(): DataTransferItemList; -}; - -/** A delay-line; an AudioNode audio-processing module that causes a delay between the arrival of an input data and its propagation to the output. */ -interface DelayNode extends AudioNode { - readonly delayTime: AudioParam; -} - -declare var DelayNode: { - prototype: DelayNode; - new(context: BaseAudioContext, options?: DelayOptions): DelayNode; -}; - -/** The DeviceMotionEvent provides web developers with information about the speed of changes for the device's position and orientation. */ -interface DeviceMotionEvent extends Event { - readonly acceleration: DeviceMotionEventAcceleration | null; - readonly accelerationIncludingGravity: DeviceMotionEventAcceleration | null; - readonly interval: number; - readonly rotationRate: DeviceMotionEventRotationRate | null; -} - -declare var DeviceMotionEvent: { - prototype: DeviceMotionEvent; - new(type: string, eventInitDict?: DeviceMotionEventInit): DeviceMotionEvent; -}; - -interface DeviceMotionEventAcceleration { - readonly x: number | null; - readonly y: number | null; - readonly z: number | null; -} - -interface DeviceMotionEventRotationRate { - readonly alpha: number | null; - readonly beta: number | null; - readonly gamma: number | null; -} - -/** The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page. */ -interface DeviceOrientationEvent extends Event { - readonly absolute: boolean; - readonly alpha: number | null; - readonly beta: number | null; - readonly gamma: number | null; -} - -declare var DeviceOrientationEvent: { - prototype: DeviceOrientationEvent; - new(type: string, eventInitDict?: DeviceOrientationEventInit): DeviceOrientationEvent; -}; - -interface DocumentEventMap extends DocumentAndElementEventHandlersEventMap, GlobalEventHandlersEventMap { - "fullscreenchange": Event; - "fullscreenerror": Event; - "pointerlockchange": Event; - "pointerlockerror": Event; - "readystatechange": Event; - "visibilitychange": Event; -} - -/** Any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree. */ -interface Document extends Node, DocumentAndElementEventHandlers, DocumentOrShadowRoot, FontFaceSource, GlobalEventHandlers, NonElementParentNode, ParentNode, XPathEvaluatorBase { - /** - * Sets or gets the URL for the current document. - */ - readonly URL: string; - /** - * Sets or gets the color of all active links in the document. - * @deprecated - */ - alinkColor: string; - /** - * Returns a reference to the collection of elements contained by the object. - * @deprecated - */ - readonly all: HTMLAllCollection; - /** - * Retrieves a collection of all a objects that have a name and/or id property. Objects in this collection are in HTML source order. - * @deprecated - */ - readonly anchors: HTMLCollectionOf; - /** - * Retrieves a collection of all applet objects in the document. - * @deprecated - */ - readonly applets: HTMLCollection; - /** - * Deprecated. Sets or retrieves a value that indicates the background color behind the object. - * @deprecated - */ - bgColor: string; - /** - * Specifies the beginning and end of the document body. - */ - body: HTMLElement; - /** - * Returns document's encoding. - */ - readonly characterSet: string; - /** - * Gets or sets the character set used to encode the object. - * @deprecated This is a legacy alias of \`characterSet\`. - */ - readonly charset: string; - /** - * Gets a value that indicates whether standards-compliant mode is switched on for the object. - */ - readonly compatMode: string; - /** - * Returns document's content type. - */ - readonly contentType: string; - /** - * Returns the HTTP cookies that apply to the Document. If there are no cookies or cookies can't be applied to this resource, the empty string will be returned. - * - * Can be set, to add a new cookie to the element's set of HTTP cookies. - * - * If the contents are sandboxed into a unique origin (e.g. in an iframe with the sandbox attribute), a "SecurityError" DOMException will be thrown on getting and setting. - */ - cookie: string; - /** - * Returns the script element, or the SVG script element, that is currently executing, as long as the element represents a classic script. In the case of reentrant script execution, returns the one that most recently started executing amongst those that have not yet finished executing. - * - * Returns null if the Document is not currently executing a script or SVG script element (e.g., because the running script is an event handler, or a timeout), or if the currently executing script or SVG script element represents a module script. - */ - readonly currentScript: HTMLOrSVGScriptElement | null; - /** - * Returns the Window object of the active document. - */ - readonly defaultView: (WindowProxy & typeof globalThis) | null; - /** - * Sets or gets a value that indicates whether the document can be edited. - */ - designMode: string; - /** - * Sets or retrieves a value that indicates the reading order of the object. - */ - dir: string; - /** - * Gets an object representing the document type declaration associated with the current document. - */ - readonly doctype: DocumentType | null; - /** - * Gets a reference to the root node of the document. - */ - readonly documentElement: HTMLElement; - /** - * Returns document's URL. - */ - readonly documentURI: string; - /** - * Sets or gets the security domain of the document. - */ - domain: string; - /** - * Retrieves a collection of all embed objects in the document. - */ - readonly embeds: HTMLCollectionOf; - /** - * Sets or gets the foreground (text) color of the document. - * @deprecated - */ - fgColor: string; - /** - * Retrieves a collection, in source order, of all form objects in the document. - */ - readonly forms: HTMLCollectionOf; - /** @deprecated */ - readonly fullscreen: boolean; - /** - * Returns true if document has the ability to display elements fullscreen and fullscreen is supported, or false otherwise. - */ - readonly fullscreenEnabled: boolean; - /** - * Returns the head element. - */ - readonly head: HTMLHeadElement; - readonly hidden: boolean; - /** - * Retrieves a collection, in source order, of img objects in the document. - */ - readonly images: HTMLCollectionOf; - /** - * Gets the implementation object of the current document. - */ - readonly implementation: DOMImplementation; - /** - * Returns the character encoding used to create the webpage that is loaded into the document object. - * @deprecated This is a legacy alias of \`characterSet\`. - */ - readonly inputEncoding: string; - /** - * Gets the date that the page was last modified, if the page supplies one. - */ - readonly lastModified: string; - /** - * Sets or gets the color of the document links. - * @deprecated - */ - linkColor: string; - /** - * Retrieves a collection of all a objects that specify the href property and all area objects in the document. - */ - readonly links: HTMLCollectionOf; - /** - * Contains information about the current URL. - */ - get location(): Location; - set location(href: string | Location); - onfullscreenchange: ((this: Document, ev: Event) => any) | null; - onfullscreenerror: ((this: Document, ev: Event) => any) | null; - onpointerlockchange: ((this: Document, ev: Event) => any) | null; - onpointerlockerror: ((this: Document, ev: Event) => any) | null; - /** - * Fires when the state of the object has changed. - * @param ev The event - */ - onreadystatechange: ((this: Document, ev: Event) => any) | null; - onvisibilitychange: ((this: Document, ev: Event) => any) | null; - readonly ownerDocument: null; - readonly pictureInPictureEnabled: boolean; - /** - * Return an HTMLCollection of the embed elements in the Document. - */ - readonly plugins: HTMLCollectionOf; - /** - * Retrieves a value that indicates the current state of the object. - */ - readonly readyState: DocumentReadyState; - /** - * Gets the URL of the location that referred the user to the current page. - */ - readonly referrer: string; - /** @deprecated */ - readonly rootElement: SVGSVGElement | null; - /** - * Retrieves a collection of all script objects in the document. - */ - readonly scripts: HTMLCollectionOf; - readonly scrollingElement: Element | null; - readonly timeline: DocumentTimeline; - /** - * Contains the title of the document. - */ - title: string; - readonly visibilityState: VisibilityState; - /** - * Sets or gets the color of the links that the user has visited. - * @deprecated - */ - vlinkColor: string; - /** - * Moves node from another document and returns it. - * - * If node is a document, throws a "NotSupportedError" DOMException or, if node is a shadow root, throws a "HierarchyRequestError" DOMException. - */ - adoptNode(node: T): T; - /** @deprecated */ - captureEvents(): void; - /** @deprecated */ - caretRangeFromPoint(x: number, y: number): Range | null; - /** @deprecated */ - clear(): void; - /** - * Closes an output stream and forces the sent data to display. - */ - close(): void; - /** - * Creates an attribute object with a specified name. - * @param name String that sets the attribute object's name. - */ - createAttribute(localName: string): Attr; - createAttributeNS(namespace: string | null, qualifiedName: string): Attr; - /** - * Returns a CDATASection node whose data is data. - */ - createCDATASection(data: string): CDATASection; - /** - * Creates a comment object with the specified data. - * @param data Sets the comment object's data. - */ - createComment(data: string): Comment; - /** - * Creates a new document. - */ - createDocumentFragment(): DocumentFragment; - /** - * Creates an instance of the element for the specified tag. - * @param tagName The name of an element. - */ - createElement(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K]; - /** @deprecated */ - createElement(tagName: K, options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K]; - createElement(tagName: string, options?: ElementCreationOptions): HTMLElement; - /** - * Returns an element with namespace namespace. Its namespace prefix will be everything before ":" (U+003E) in qualifiedName or null. Its local name will be everything after ":" (U+003E) in qualifiedName or qualifiedName. - * - * If localName does not match the Name production an "InvalidCharacterError" DOMException will be thrown. - * - * If one of the following conditions is true a "NamespaceError" DOMException will be thrown: - * - * localName does not match the QName production. - * Namespace prefix is not null and namespace is the empty string. - * Namespace prefix is "xml" and namespace is not the XML namespace. - * qualifiedName or namespace prefix is "xmlns" and namespace is not the XMLNS namespace. - * namespace is the XMLNS namespace and neither qualifiedName nor namespace prefix is "xmlns". - * - * When supplied, options's is can be used to create a customized built-in element. - */ - createElementNS(namespaceURI: "http://www.w3.org/1999/xhtml", qualifiedName: string): HTMLElement; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: K): SVGElementTagNameMap[K]; - createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: string): SVGElement; - createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element; - createElementNS(namespace: string | null, qualifiedName: string, options?: string | ElementCreationOptions): Element; - createEvent(eventInterface: "AnimationEvent"): AnimationEvent; - createEvent(eventInterface: "AnimationPlaybackEvent"): AnimationPlaybackEvent; - createEvent(eventInterface: "AudioProcessingEvent"): AudioProcessingEvent; - createEvent(eventInterface: "BeforeUnloadEvent"): BeforeUnloadEvent; - createEvent(eventInterface: "BlobEvent"): BlobEvent; - createEvent(eventInterface: "ClipboardEvent"): ClipboardEvent; - createEvent(eventInterface: "CloseEvent"): CloseEvent; - createEvent(eventInterface: "CompositionEvent"): CompositionEvent; - createEvent(eventInterface: "CustomEvent"): CustomEvent; - createEvent(eventInterface: "DeviceMotionEvent"): DeviceMotionEvent; - createEvent(eventInterface: "DeviceOrientationEvent"): DeviceOrientationEvent; - createEvent(eventInterface: "DragEvent"): DragEvent; - createEvent(eventInterface: "ErrorEvent"): ErrorEvent; - createEvent(eventInterface: "FocusEvent"): FocusEvent; - createEvent(eventInterface: "FontFaceSetLoadEvent"): FontFaceSetLoadEvent; - createEvent(eventInterface: "FormDataEvent"): FormDataEvent; - createEvent(eventInterface: "GamepadEvent"): GamepadEvent; - createEvent(eventInterface: "HashChangeEvent"): HashChangeEvent; - createEvent(eventInterface: "IDBVersionChangeEvent"): IDBVersionChangeEvent; - createEvent(eventInterface: "InputEvent"): InputEvent; - createEvent(eventInterface: "KeyboardEvent"): KeyboardEvent; - createEvent(eventInterface: "MediaEncryptedEvent"): MediaEncryptedEvent; - createEvent(eventInterface: "MediaKeyMessageEvent"): MediaKeyMessageEvent; - createEvent(eventInterface: "MediaQueryListEvent"): MediaQueryListEvent; - createEvent(eventInterface: "MediaRecorderErrorEvent"): MediaRecorderErrorEvent; - createEvent(eventInterface: "MediaStreamTrackEvent"): MediaStreamTrackEvent; - createEvent(eventInterface: "MessageEvent"): MessageEvent; - createEvent(eventInterface: "MouseEvent"): MouseEvent; - createEvent(eventInterface: "MouseEvents"): MouseEvent; - createEvent(eventInterface: "MutationEvent"): MutationEvent; - createEvent(eventInterface: "MutationEvents"): MutationEvent; - createEvent(eventInterface: "OfflineAudioCompletionEvent"): OfflineAudioCompletionEvent; - createEvent(eventInterface: "PageTransitionEvent"): PageTransitionEvent; - createEvent(eventInterface: "PaymentMethodChangeEvent"): PaymentMethodChangeEvent; - createEvent(eventInterface: "PaymentRequestUpdateEvent"): PaymentRequestUpdateEvent; - createEvent(eventInterface: "PointerEvent"): PointerEvent; - createEvent(eventInterface: "PopStateEvent"): PopStateEvent; - createEvent(eventInterface: "ProgressEvent"): ProgressEvent; - createEvent(eventInterface: "PromiseRejectionEvent"): PromiseRejectionEvent; - createEvent(eventInterface: "RTCDTMFToneChangeEvent"): RTCDTMFToneChangeEvent; - createEvent(eventInterface: "RTCDataChannelEvent"): RTCDataChannelEvent; - createEvent(eventInterface: "RTCPeerConnectionIceErrorEvent"): RTCPeerConnectionIceErrorEvent; - createEvent(eventInterface: "RTCPeerConnectionIceEvent"): RTCPeerConnectionIceEvent; - createEvent(eventInterface: "RTCTrackEvent"): RTCTrackEvent; - createEvent(eventInterface: "SecurityPolicyViolationEvent"): SecurityPolicyViolationEvent; - createEvent(eventInterface: "SpeechSynthesisErrorEvent"): SpeechSynthesisErrorEvent; - createEvent(eventInterface: "SpeechSynthesisEvent"): SpeechSynthesisEvent; - createEvent(eventInterface: "StorageEvent"): StorageEvent; - createEvent(eventInterface: "SubmitEvent"): SubmitEvent; - createEvent(eventInterface: "TouchEvent"): TouchEvent; - createEvent(eventInterface: "TrackEvent"): TrackEvent; - createEvent(eventInterface: "TransitionEvent"): TransitionEvent; - createEvent(eventInterface: "UIEvent"): UIEvent; - createEvent(eventInterface: "UIEvents"): UIEvent; - createEvent(eventInterface: "WebGLContextEvent"): WebGLContextEvent; - createEvent(eventInterface: "WheelEvent"): WheelEvent; - createEvent(eventInterface: string): Event; - /** - * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document. - * @param root The root element or node to start traversing on. - * @param whatToShow The type of nodes or elements to appear in the node list - * @param filter A custom NodeFilter function to use. For more information, see filter. Use null for no filter. - */ - createNodeIterator(root: Node, whatToShow?: number, filter?: NodeFilter | null): NodeIterator; - /** - * Returns a ProcessingInstruction node whose target is target and data is data. If target does not match the Name production an "InvalidCharacterError" DOMException will be thrown. If data contains "?>" an "InvalidCharacterError" DOMException will be thrown. - */ - createProcessingInstruction(target: string, data: string): ProcessingInstruction; - /** - * Returns an empty range object that has both of its boundary points positioned at the beginning of the document. - */ - createRange(): Range; - /** - * Creates a text string from the specified value. - * @param data String that specifies the nodeValue property of the text node. - */ - createTextNode(data: string): Text; - /** - * Creates a TreeWalker object that you can use to traverse filtered lists of nodes or elements in a document. - * @param root The root element or node to start traversing on. - * @param whatToShow The type of nodes or elements to appear in the node list. For more information, see whatToShow. - * @param filter A custom NodeFilter function to use. - */ - createTreeWalker(root: Node, whatToShow?: number, filter?: NodeFilter | null): TreeWalker; - /** - * Returns the element for the specified x coordinate and the specified y coordinate. - * @param x The x-offset - * @param y The y-offset - */ - elementFromPoint(x: number, y: number): Element | null; - elementsFromPoint(x: number, y: number): Element[]; - /** - * Executes a command on the current document, current selection, or the given range. - * @param commandId String that specifies the command to execute. This command can be any of the command identifiers that can be executed in script. - * @param showUI Display the user interface, defaults to false. - * @param value Value to assign. - * @deprecated - */ - execCommand(commandId: string, showUI?: boolean, value?: string): boolean; - /** - * Stops document's fullscreen element from being displayed fullscreen and resolves promise when done. - */ - exitFullscreen(): Promise; - exitPictureInPicture(): Promise; - exitPointerLock(): void; - /** - * Returns a reference to the first object with the specified value of the ID attribute. - * @param elementId String that specifies the ID value. - */ - getElementById(elementId: string): HTMLElement | null; - /** - * Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes. - */ - getElementsByClassName(classNames: string): HTMLCollectionOf; - /** - * Gets a collection of objects based on the value of the NAME or ID attribute. - * @param elementName Gets a collection of objects based on the value of the NAME or ID attribute. - */ - getElementsByName(elementName: string): NodeListOf; - /** - * Retrieves a collection of objects based on the specified element name. - * @param name Specifies the name of an element. - */ - getElementsByTagName(qualifiedName: K): HTMLCollectionOf; - getElementsByTagName(qualifiedName: K): HTMLCollectionOf; - getElementsByTagName(qualifiedName: string): HTMLCollectionOf; - /** - * If namespace and localName are "*" returns a HTMLCollection of all descendant elements. - * - * If only namespace is "*" returns a HTMLCollection of all descendant elements whose local name is localName. - * - * If only localName is "*" returns a HTMLCollection of all descendant elements whose namespace is namespace. - * - * Otherwise, returns a HTMLCollection of all descendant elements whose namespace is namespace and local name is localName. - */ - getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf; - getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf; - getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf; - /** - * Returns an object representing the current selection of the document that is loaded into the object displaying a webpage. - */ - getSelection(): Selection | null; - /** - * Gets a value indicating whether the object currently has focus. - */ - hasFocus(): boolean; - hasStorageAccess(): Promise; - /** - * Returns a copy of node. If deep is true, the copy also includes the node's descendants. - * - * If node is a document or a shadow root, throws a "NotSupportedError" DOMException. - */ - importNode(node: T, deep?: boolean): T; - /** - * Opens a new window and loads a document specified by a given URL. Also, opens a new window that uses the url parameter and the name parameter to collect the output of the write method and the writeln method. - * @param url Specifies a MIME type for the document. - * @param name Specifies the name of the window. This name is used as the value for the TARGET attribute on a form or an anchor element. - * @param features Contains a list of items separated by commas. Each item consists of an option and a value, separated by an equals sign (for example, "fullscreen=yes, toolbar=yes"). The following values are supported. - * @param replace Specifies whether the existing entry for the document is replaced in the history list. - */ - open(unused1?: string, unused2?: string): Document; - open(url: string | URL, name: string, features: string): WindowProxy | null; - /** - * Returns a Boolean value that indicates whether a specified command can be successfully executed using execCommand, given the current state of the document. - * @param commandId Specifies a command identifier. - * @deprecated - */ - queryCommandEnabled(commandId: string): boolean; - /** - * Returns a Boolean value that indicates whether the specified command is in the indeterminate state. - * @param commandId String that specifies a command identifier. - */ - queryCommandIndeterm(commandId: string): boolean; - /** - * Returns a Boolean value that indicates the current state of the command. - * @param commandId String that specifies a command identifier. - * @deprecated - */ - queryCommandState(commandId: string): boolean; - /** - * Returns a Boolean value that indicates whether the current command is supported on the current range. - * @param commandId Specifies a command identifier. - * @deprecated - */ - queryCommandSupported(commandId: string): boolean; - /** - * Returns the current value of the document, range, or current selection for the given command. - * @param commandId String that specifies a command identifier. - */ - queryCommandValue(commandId: string): string; - /** @deprecated */ - releaseEvents(): void; - requestStorageAccess(): Promise; - /** - * Writes one or more HTML expressions to a document in the specified window. - * @param content Specifies the text and HTML tags to write. - */ - write(...text: string[]): void; - /** - * Writes one or more HTML expressions, followed by a carriage return, to a document in the specified window. - * @param content The text and HTML tags to write. - */ - writeln(...text: string[]): void; - addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var Document: { - prototype: Document; - new(): Document; -}; - -interface DocumentAndElementEventHandlersEventMap { - "copy": ClipboardEvent; - "cut": ClipboardEvent; - "paste": ClipboardEvent; -} - -interface DocumentAndElementEventHandlers { - oncopy: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null; - oncut: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null; - onpaste: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null; - addEventListener(type: K, listener: (this: DocumentAndElementEventHandlers, ev: DocumentAndElementEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: DocumentAndElementEventHandlers, ev: DocumentAndElementEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -/** A minimal document object that has no parent. It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn't part of the active document tree structure, changes made to the fragment don't affect the document, cause reflow, or incur any performance impact that can occur when changes are made. */ -interface DocumentFragment extends Node, NonElementParentNode, ParentNode { - readonly ownerDocument: Document; - getElementById(elementId: string): HTMLElement | null; -} - -declare var DocumentFragment: { - prototype: DocumentFragment; - new(): DocumentFragment; -}; - -interface DocumentOrShadowRoot { - /** - * Returns the deepest element in the document through which or to which key events are being routed. This is, roughly speaking, the focused element in the document. - * - * For the purposes of this API, when a child browsing context is focused, its container is focused in the parent browsing context. For example, if the user moves the focus to a text control in an iframe, the iframe is the element returned by the activeElement API in the iframe's node document. - * - * Similarly, when the focused element is in a different node tree than documentOrShadowRoot, the element returned will be the host that's located in the same node tree as documentOrShadowRoot if documentOrShadowRoot is a shadow-including inclusive ancestor of the focused element, and null if not. - */ - readonly activeElement: Element | null; - /** - * Returns document's fullscreen element. - */ - readonly fullscreenElement: Element | null; - readonly pictureInPictureElement: Element | null; - readonly pointerLockElement: Element | null; - /** - * Retrieves a collection of styleSheet objects representing the style sheets that correspond to each instance of a link or style object in the document. - */ - readonly styleSheets: StyleSheetList; - getAnimations(): Animation[]; -} - -interface DocumentTimeline extends AnimationTimeline { -} - -declare var DocumentTimeline: { - prototype: DocumentTimeline; - new(options?: DocumentTimelineOptions): DocumentTimeline; -}; - -/** A Node containing a doctype. */ -interface DocumentType extends Node, ChildNode { - readonly name: string; - readonly ownerDocument: Document; - readonly publicId: string; - readonly systemId: string; -} - -declare var DocumentType: { - prototype: DocumentType; - new(): DocumentType; -}; - -/** A DOM event that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way. */ -interface DragEvent extends MouseEvent { - /** - * Returns the DataTransfer object for the event. - */ - readonly dataTransfer: DataTransfer | null; -} - -declare var DragEvent: { - prototype: DragEvent; - new(type: string, eventInitDict?: DragEventInit): DragEvent; -}; - -/** Inherits properties from its parent, AudioNode. */ -interface DynamicsCompressorNode extends AudioNode { - readonly attack: AudioParam; - readonly knee: AudioParam; - readonly ratio: AudioParam; - readonly reduction: number; - readonly release: AudioParam; - readonly threshold: AudioParam; -} - -declare var DynamicsCompressorNode: { - prototype: DynamicsCompressorNode; - new(context: BaseAudioContext, options?: DynamicsCompressorOptions): DynamicsCompressorNode; -}; - -interface EXT_blend_minmax { - readonly MAX_EXT: GLenum; - readonly MIN_EXT: GLenum; -} - -interface EXT_color_buffer_float { -} - -interface EXT_color_buffer_half_float { - readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT: GLenum; - readonly RGB16F_EXT: GLenum; - readonly RGBA16F_EXT: GLenum; - readonly UNSIGNED_NORMALIZED_EXT: GLenum; -} - -interface EXT_float_blend { -} - -/** The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader. */ -interface EXT_frag_depth { -} - -interface EXT_sRGB { - readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: GLenum; - readonly SRGB8_ALPHA8_EXT: GLenum; - readonly SRGB_ALPHA_EXT: GLenum; - readonly SRGB_EXT: GLenum; -} - -interface EXT_shader_texture_lod { -} - -interface EXT_texture_compression_rgtc { - readonly COMPRESSED_RED_GREEN_RGTC2_EXT: GLenum; - readonly COMPRESSED_RED_RGTC1_EXT: GLenum; - readonly COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT: GLenum; - readonly COMPRESSED_SIGNED_RED_RGTC1_EXT: GLenum; -} - -/** The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF). */ -interface EXT_texture_filter_anisotropic { - readonly MAX_TEXTURE_MAX_ANISOTROPY_EXT: GLenum; - readonly TEXTURE_MAX_ANISOTROPY_EXT: GLenum; -} - -interface ElementEventMap { - "fullscreenchange": Event; - "fullscreenerror": Event; -} - -/** Element is the most general base class from which all objects in a Document inherit. It only has methods and properties common to all kinds of elements. More specific classes inherit from Element. */ -interface Element extends Node, ARIAMixin, Animatable, ChildNode, InnerHTML, NonDocumentTypeChildNode, ParentNode, Slottable { - readonly attributes: NamedNodeMap; - /** - * Allows for manipulation of element's class content attribute as a set of whitespace-separated tokens through a DOMTokenList object. - */ - readonly classList: DOMTokenList; - /** - * Returns the value of element's class content attribute. Can be set to change it. - */ - className: string; - readonly clientHeight: number; - readonly clientLeft: number; - readonly clientTop: number; - readonly clientWidth: number; - /** - * Returns the value of element's id content attribute. Can be set to change it. - */ - id: string; - /** - * Returns the local name. - */ - readonly localName: string; - /** - * Returns the namespace. - */ - readonly namespaceURI: string | null; - onfullscreenchange: ((this: Element, ev: Event) => any) | null; - onfullscreenerror: ((this: Element, ev: Event) => any) | null; - outerHTML: string; - readonly ownerDocument: Document; - readonly part: DOMTokenList; - /** - * Returns the namespace prefix. - */ - readonly prefix: string | null; - readonly scrollHeight: number; - scrollLeft: number; - scrollTop: number; - readonly scrollWidth: number; - /** - * Returns element's shadow root, if any, and if shadow root's mode is "open", and null otherwise. - */ - readonly shadowRoot: ShadowRoot | null; - /** - * Returns the value of element's slot content attribute. Can be set to change it. - */ - slot: string; - /** - * Returns the HTML-uppercased qualified name. - */ - readonly tagName: string; - /** - * Creates a shadow root for element and returns it. - */ - attachShadow(init: ShadowRootInit): ShadowRoot; - /** - * Returns the first (starting at element) inclusive ancestor that matches selectors, and null otherwise. - */ - closest(selector: K): HTMLElementTagNameMap[K] | null; - closest(selector: K): SVGElementTagNameMap[K] | null; - closest(selectors: string): E | null; - /** - * Returns element's first attribute whose qualified name is qualifiedName, and null if there is no such attribute otherwise. - */ - getAttribute(qualifiedName: string): string | null; - /** - * Returns element's attribute whose namespace is namespace and local name is localName, and null if there is no such attribute otherwise. - */ - getAttributeNS(namespace: string | null, localName: string): string | null; - /** - * Returns the qualified names of all element's attributes. Can contain duplicates. - */ - getAttributeNames(): string[]; - getAttributeNode(qualifiedName: string): Attr | null; - getAttributeNodeNS(namespace: string | null, localName: string): Attr | null; - getBoundingClientRect(): DOMRect; - getClientRects(): DOMRectList; - /** - * Returns a HTMLCollection of the elements in the object on which the method was invoked (a document or an element) that have all the classes given by classNames. The classNames argument is interpreted as a space-separated list of classes. - */ - getElementsByClassName(classNames: string): HTMLCollectionOf; - getElementsByTagName(qualifiedName: K): HTMLCollectionOf; - getElementsByTagName(qualifiedName: K): HTMLCollectionOf; - getElementsByTagName(qualifiedName: string): HTMLCollectionOf; - getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf; - getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf; - getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf; - /** - * Returns true if element has an attribute whose qualified name is qualifiedName, and false otherwise. - */ - hasAttribute(qualifiedName: string): boolean; - /** - * Returns true if element has an attribute whose namespace is namespace and local name is localName. - */ - hasAttributeNS(namespace: string | null, localName: string): boolean; - /** - * Returns true if element has attributes, and false otherwise. - */ - hasAttributes(): boolean; - hasPointerCapture(pointerId: number): boolean; - insertAdjacentElement(where: InsertPosition, element: Element): Element | null; - insertAdjacentHTML(position: InsertPosition, text: string): void; - insertAdjacentText(where: InsertPosition, data: string): void; - /** - * Returns true if matching selectors against element's root yields element, and false otherwise. - */ - matches(selectors: string): boolean; - releasePointerCapture(pointerId: number): void; - /** - * Removes element's first attribute whose qualified name is qualifiedName. - */ - removeAttribute(qualifiedName: string): void; - /** - * Removes element's attribute whose namespace is namespace and local name is localName. - */ - removeAttributeNS(namespace: string | null, localName: string): void; - removeAttributeNode(attr: Attr): Attr; - /** - * Displays element fullscreen and resolves promise when done. - * - * When supplied, options's navigationUI member indicates whether showing navigation UI while in fullscreen is preferred or not. If set to "show", navigation simplicity is preferred over screen space, and if set to "hide", more screen space is preferred. User agents are always free to honor user preference over the application's. The default value "auto" indicates no application preference. - */ - requestFullscreen(options?: FullscreenOptions): Promise; - requestPointerLock(): void; - scroll(options?: ScrollToOptions): void; - scroll(x: number, y: number): void; - scrollBy(options?: ScrollToOptions): void; - scrollBy(x: number, y: number): void; - scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void; - scrollTo(options?: ScrollToOptions): void; - scrollTo(x: number, y: number): void; - /** - * Sets the value of element's first attribute whose qualified name is qualifiedName to value. - */ - setAttribute(qualifiedName: string, value: string): void; - /** - * Sets the value of element's attribute whose namespace is namespace and local name is localName to value. - */ - setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void; - setAttributeNode(attr: Attr): Attr | null; - setAttributeNodeNS(attr: Attr): Attr | null; - setPointerCapture(pointerId: number): void; - /** - * If force is not given, "toggles" qualifiedName, removing it if it is present and adding it if it is not present. If force is true, adds qualifiedName. If force is false, removes qualifiedName. - * - * Returns true if qualifiedName is now present, and false otherwise. - */ - toggleAttribute(qualifiedName: string, force?: boolean): boolean; - /** @deprecated This is a legacy alias of \`matches\`. */ - webkitMatchesSelector(selectors: string): boolean; - addEventListener(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: Element, ev: ElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var Element: { - prototype: Element; - new(): Element; -}; - -interface ElementCSSInlineStyle { - readonly style: CSSStyleDeclaration; -} - -interface ElementContentEditable { - contentEditable: string; - enterKeyHint: string; - inputMode: string; - readonly isContentEditable: boolean; -} - -/** Events providing information related to errors in scripts or in files. */ -interface ErrorEvent extends Event { - readonly colno: number; - readonly error: any; - readonly filename: string; - readonly lineno: number; - readonly message: string; -} - -declare var ErrorEvent: { - prototype: ErrorEvent; - new(type: string, eventInitDict?: ErrorEventInit): ErrorEvent; -}; - -/** An event which takes place in the DOM. */ -interface Event { - /** - * Returns true or false depending on how event was initialized. True if event goes through its target's ancestors in reverse tree order, and false otherwise. - */ - readonly bubbles: boolean; - cancelBubble: boolean; - /** - * Returns true or false depending on how event was initialized. Its return value does not always carry meaning, but true can indicate that part of the operation during which event was dispatched, can be canceled by invoking the preventDefault() method. - */ - readonly cancelable: boolean; - /** - * Returns true or false depending on how event was initialized. True if event invokes listeners past a ShadowRoot node that is the root of its target, and false otherwise. - */ - readonly composed: boolean; - /** - * Returns the object whose event listener's callback is currently being invoked. - */ - readonly currentTarget: EventTarget | null; - /** - * Returns true if preventDefault() was invoked successfully to indicate cancelation, and false otherwise. - */ - readonly defaultPrevented: boolean; - /** - * Returns the event's phase, which is one of NONE, CAPTURING_PHASE, AT_TARGET, and BUBBLING_PHASE. - */ - readonly eventPhase: number; - /** - * Returns true if event was dispatched by the user agent, and false otherwise. - */ - readonly isTrusted: boolean; - /** @deprecated */ - returnValue: boolean; - /** @deprecated */ - readonly srcElement: EventTarget | null; - /** - * Returns the object to which event is dispatched (its target). - */ - readonly target: EventTarget | null; - /** - * Returns the event's timestamp as the number of milliseconds measured relative to the time origin. - */ - readonly timeStamp: DOMHighResTimeStamp; - /** - * Returns the type of event, e.g. "click", "hashchange", or "submit". - */ - readonly type: string; - /** - * Returns the invocation target objects of event's path (objects on which listeners will be invoked), except for any nodes in shadow trees of which the shadow root's mode is "closed" that are not reachable from event's currentTarget. - */ - composedPath(): EventTarget[]; - /** @deprecated */ - initEvent(type: string, bubbles?: boolean, cancelable?: boolean): void; - /** - * If invoked when the cancelable attribute value is true, and while executing a listener for the event with passive set to false, signals to the operation that caused event to be dispatched that it needs to be canceled. - */ - preventDefault(): void; - /** - * Invoking this method prevents event from reaching any registered event listeners after the current one finishes running and, when dispatched in a tree, also prevents event from reaching any other objects. - */ - stopImmediatePropagation(): void; - /** - * When dispatched in a tree, invoking this method prevents event from reaching any objects other than the current object. - */ - stopPropagation(): void; - readonly AT_TARGET: number; - readonly BUBBLING_PHASE: number; - readonly CAPTURING_PHASE: number; - readonly NONE: number; -} - -declare var Event: { - prototype: Event; - new(type: string, eventInitDict?: EventInit): Event; - readonly AT_TARGET: number; - readonly BUBBLING_PHASE: number; - readonly CAPTURING_PHASE: number; - readonly NONE: number; -}; - -interface EventListener { - (evt: Event): void; -} - -interface EventListenerObject { - handleEvent(object: Event): void; -} - -interface EventSourceEventMap { - "error": Event; - "message": MessageEvent; - "open": Event; -} - -interface EventSource extends EventTarget { - onerror: ((this: EventSource, ev: Event) => any) | null; - onmessage: ((this: EventSource, ev: MessageEvent) => any) | null; - onopen: ((this: EventSource, ev: Event) => any) | null; - /** - * Returns the state of this EventSource object's connection. It can have the values described below. - */ - readonly readyState: number; - /** - * Returns the URL providing the event stream. - */ - readonly url: string; - /** - * Returns true if the credentials mode for connection requests to the URL providing the event stream is set to "include", and false otherwise. - */ - readonly withCredentials: boolean; - /** - * Aborts any instances of the fetch algorithm started for this EventSource object, and sets the readyState attribute to CLOSED. - */ - close(): void; - readonly CLOSED: number; - readonly CONNECTING: number; - readonly OPEN: number; - addEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: EventSource, ev: EventSourceEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var EventSource: { - prototype: EventSource; - new(url: string | URL, eventSourceInitDict?: EventSourceInit): EventSource; - readonly CLOSED: number; - readonly CONNECTING: number; - readonly OPEN: number; -}; - -/** EventTarget is a DOM interface implemented by objects that can receive events and may have listeners for them. */ -interface EventTarget { - /** - * Appends an event listener for events whose type attribute value is type. The callback argument sets the callback that will be invoked when the event is dispatched. - * - * The options argument sets listener-specific options. For compatibility this can be a boolean, in which case the method behaves exactly as if the value was specified as options's capture. - * - * When set to true, options's capture prevents callback from being invoked when the event's eventPhase attribute value is BUBBLING_PHASE. When false (or not present), callback will not be invoked when event's eventPhase attribute value is CAPTURING_PHASE. Either way, callback will be invoked if event's eventPhase attribute value is AT_TARGET. - * - * When set to true, options's passive indicates that the callback will not cancel the event by invoking preventDefault(). This is used to enable performance optimizations described in \xA7 2.8 Observing event listeners. - * - * When set to true, options's once indicates that the callback will only be invoked once after which the event listener will be removed. - * - * If an AbortSignal is passed for options's signal, then the event listener will be removed when signal is aborted. - * - * The event listener is appended to target's event listener list and is not appended if it has the same type, callback, and capture. - */ - addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: AddEventListenerOptions | boolean): void; - /** - * Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. - */ - dispatchEvent(event: Event): boolean; - /** - * Removes the event listener in target's event listener list with the same type, callback, and options. - */ - removeEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: EventListenerOptions | boolean): void; -} - -declare var EventTarget: { - prototype: EventTarget; - new(): EventTarget; -}; - -/** @deprecated */ -interface External { - /** @deprecated */ - AddSearchProvider(): void; - /** @deprecated */ - IsSearchProviderInstalled(): void; -} - -/** @deprecated */ -declare var External: { - prototype: External; - new(): External; -}; - -/** Provides information about files and allows JavaScript in a web page to access their content. */ -interface File extends Blob { - readonly lastModified: number; - readonly name: string; - readonly webkitRelativePath: string; -} - -declare var File: { - prototype: File; - new(fileBits: BlobPart[], fileName: string, options?: FilePropertyBag): File; -}; - -/** An object of this type is returned by the files property of the HTML element; this lets you access the list of files selected with the element. It's also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage. */ -interface FileList { - readonly length: number; - item(index: number): File | null; - [index: number]: File; -} - -declare var FileList: { - prototype: FileList; - new(): FileList; -}; - -interface FileReaderEventMap { - "abort": ProgressEvent; - "error": ProgressEvent; - "load": ProgressEvent; - "loadend": ProgressEvent; - "loadstart": ProgressEvent; - "progress": ProgressEvent; -} - -/** Lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read. */ -interface FileReader extends EventTarget { - readonly error: DOMException | null; - onabort: ((this: FileReader, ev: ProgressEvent) => any) | null; - onerror: ((this: FileReader, ev: ProgressEvent) => any) | null; - onload: ((this: FileReader, ev: ProgressEvent) => any) | null; - onloadend: ((this: FileReader, ev: ProgressEvent) => any) | null; - onloadstart: ((this: FileReader, ev: ProgressEvent) => any) | null; - onprogress: ((this: FileReader, ev: ProgressEvent) => any) | null; - readonly readyState: number; - readonly result: string | ArrayBuffer | null; - abort(): void; - readAsArrayBuffer(blob: Blob): void; - readAsBinaryString(blob: Blob): void; - readAsDataURL(blob: Blob): void; - readAsText(blob: Blob, encoding?: string): void; - readonly DONE: number; - readonly EMPTY: number; - readonly LOADING: number; - addEventListener(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: FileReader, ev: FileReaderEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var FileReader: { - prototype: FileReader; - new(): FileReader; - readonly DONE: number; - readonly EMPTY: number; - readonly LOADING: number; -}; - -interface FileSystem { - readonly name: string; - readonly root: FileSystemDirectoryEntry; -} - -declare var FileSystem: { - prototype: FileSystem; - new(): FileSystem; -}; - -interface FileSystemDirectoryEntry extends FileSystemEntry { - createReader(): FileSystemDirectoryReader; - getDirectory(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void; - getFile(path?: string | null, options?: FileSystemFlags, successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void; -} - -declare var FileSystemDirectoryEntry: { - prototype: FileSystemDirectoryEntry; - new(): FileSystemDirectoryEntry; -}; - -/** @deprecated */ -interface FileSystemDirectoryReader { - /** @deprecated */ - readEntries(successCallback: FileSystemEntriesCallback, errorCallback?: ErrorCallback): void; -} - -/** @deprecated */ -declare var FileSystemDirectoryReader: { - prototype: FileSystemDirectoryReader; - new(): FileSystemDirectoryReader; -}; - -interface FileSystemEntry { - readonly filesystem: FileSystem; - readonly fullPath: string; - readonly isDirectory: boolean; - readonly isFile: boolean; - readonly name: string; - getParent(successCallback?: FileSystemEntryCallback, errorCallback?: ErrorCallback): void; -} - -declare var FileSystemEntry: { - prototype: FileSystemEntry; - new(): FileSystemEntry; -}; - -interface FileSystemFileEntry extends FileSystemEntry { - file(successCallback: FileCallback, errorCallback?: ErrorCallback): void; -} - -declare var FileSystemFileEntry: { - prototype: FileSystemFileEntry; - new(): FileSystemFileEntry; -}; - -/** Focus-related events like focus, blur, focusin, or focusout. */ -interface FocusEvent extends UIEvent { - readonly relatedTarget: EventTarget | null; -} - -declare var FocusEvent: { - prototype: FocusEvent; - new(type: string, eventInitDict?: FocusEventInit): FocusEvent; -}; - -interface FontFace { - ascentOverride: string; - descentOverride: string; - display: string; - family: string; - featureSettings: string; - lineGapOverride: string; - readonly loaded: Promise; - readonly status: FontFaceLoadStatus; - stretch: string; - style: string; - unicodeRange: string; - variant: string; - variationSettings: string; - weight: string; - load(): Promise; -} - -declare var FontFace: { - prototype: FontFace; - new(family: string, source: string | BinaryData, descriptors?: FontFaceDescriptors): FontFace; -}; - -interface FontFaceSetEventMap { - "loading": Event; - "loadingdone": Event; - "loadingerror": Event; -} - -interface FontFaceSet extends EventTarget { - onloading: ((this: FontFaceSet, ev: Event) => any) | null; - onloadingdone: ((this: FontFaceSet, ev: Event) => any) | null; - onloadingerror: ((this: FontFaceSet, ev: Event) => any) | null; - readonly ready: Promise; - readonly status: FontFaceSetLoadStatus; - check(font: string, text?: string): boolean; - load(font: string, text?: string): Promise; - forEach(callbackfn: (value: FontFace, key: FontFace, parent: FontFaceSet) => void, thisArg?: any): void; - addEventListener(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: FontFaceSet, ev: FontFaceSetEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var FontFaceSet: { - prototype: FontFaceSet; - new(initialFaces: FontFace[]): FontFaceSet; -}; - -interface FontFaceSetLoadEvent extends Event { - readonly fontfaces: ReadonlyArray; -} - -declare var FontFaceSetLoadEvent: { - prototype: FontFaceSetLoadEvent; - new(type: string, eventInitDict?: FontFaceSetLoadEventInit): FontFaceSetLoadEvent; -}; - -interface FontFaceSource { - readonly fonts: FontFaceSet; -} - -/** Provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data". */ -interface FormData { - append(name: string, value: string | Blob, fileName?: string): void; - delete(name: string): void; - get(name: string): FormDataEntryValue | null; - getAll(name: string): FormDataEntryValue[]; - has(name: string): boolean; - set(name: string, value: string | Blob, fileName?: string): void; - forEach(callbackfn: (value: FormDataEntryValue, key: string, parent: FormData) => void, thisArg?: any): void; -} - -declare var FormData: { - prototype: FormData; - new(form?: HTMLFormElement): FormData; -}; - -interface FormDataEvent extends Event { - /** - * Returns a FormData object representing names and values of elements associated to the target form. Operations on the FormData object will affect form data to be submitted. - */ - readonly formData: FormData; -} - -declare var FormDataEvent: { - prototype: FormDataEvent; - new(type: string, eventInitDict: FormDataEventInit): FormDataEvent; -}; - -/** A change in volume. It is an AudioNode audio-processing module that causes a given gain to be applied to the input data before its propagation to the output. A GainNode always has exactly one input and one output, both with the same number of channels. */ -interface GainNode extends AudioNode { - readonly gain: AudioParam; -} - -declare var GainNode: { - prototype: GainNode; - new(context: BaseAudioContext, options?: GainOptions): GainNode; -}; - -/** This Gamepad API interface defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id. */ -interface Gamepad { - readonly axes: ReadonlyArray; - readonly buttons: ReadonlyArray; - readonly connected: boolean; - readonly hapticActuators: ReadonlyArray; - readonly id: string; - readonly index: number; - readonly mapping: GamepadMappingType; - readonly timestamp: DOMHighResTimeStamp; -} - -declare var Gamepad: { - prototype: Gamepad; - new(): Gamepad; -}; - -/** An individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device. */ -interface GamepadButton { - readonly pressed: boolean; - readonly touched: boolean; - readonly value: number; -} - -declare var GamepadButton: { - prototype: GamepadButton; - new(): GamepadButton; -}; - -/** This Gamepad API interface contains references to gamepads connected to the system, which is what the gamepad events Window.gamepadconnected and Window.gamepaddisconnected are fired in response to. */ -interface GamepadEvent extends Event { - readonly gamepad: Gamepad; -} - -declare var GamepadEvent: { - prototype: GamepadEvent; - new(type: string, eventInitDict: GamepadEventInit): GamepadEvent; -}; - -/** This Gamepad API interface represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware. */ -interface GamepadHapticActuator { - readonly type: GamepadHapticActuatorType; -} - -declare var GamepadHapticActuator: { - prototype: GamepadHapticActuator; - new(): GamepadHapticActuator; -}; - -interface GenericTransformStream { - readonly readable: ReadableStream; - readonly writable: WritableStream; -} - -/** An object able to programmatically obtain the position of the device. It gives Web content access to the location of the device. This allows a Web site or app to offer customized results based on the user's location. */ -interface Geolocation { - clearWatch(watchId: number): void; - getCurrentPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): void; - watchPosition(successCallback: PositionCallback, errorCallback?: PositionErrorCallback | null, options?: PositionOptions): number; -} - -declare var Geolocation: { - prototype: Geolocation; - new(): Geolocation; -}; - -interface GeolocationCoordinates { - readonly accuracy: number; - readonly altitude: number | null; - readonly altitudeAccuracy: number | null; - readonly heading: number | null; - readonly latitude: number; - readonly longitude: number; - readonly speed: number | null; -} - -declare var GeolocationCoordinates: { - prototype: GeolocationCoordinates; - new(): GeolocationCoordinates; -}; - -interface GeolocationPosition { - readonly coords: GeolocationCoordinates; - readonly timestamp: DOMTimeStamp; -} - -declare var GeolocationPosition: { - prototype: GeolocationPosition; - new(): GeolocationPosition; -}; - -interface GeolocationPositionError { - readonly code: number; - readonly message: string; - readonly PERMISSION_DENIED: number; - readonly POSITION_UNAVAILABLE: number; - readonly TIMEOUT: number; -} - -declare var GeolocationPositionError: { - prototype: GeolocationPositionError; - new(): GeolocationPositionError; - readonly PERMISSION_DENIED: number; - readonly POSITION_UNAVAILABLE: number; - readonly TIMEOUT: number; -}; - -interface GlobalEventHandlersEventMap { - "abort": UIEvent; - "animationcancel": AnimationEvent; - "animationend": AnimationEvent; - "animationiteration": AnimationEvent; - "animationstart": AnimationEvent; - "auxclick": MouseEvent; - "beforeinput": InputEvent; - "blur": FocusEvent; - "canplay": Event; - "canplaythrough": Event; - "change": Event; - "click": MouseEvent; - "close": Event; - "compositionend": CompositionEvent; - "compositionstart": CompositionEvent; - "compositionupdate": CompositionEvent; - "contextmenu": MouseEvent; - "cuechange": Event; - "dblclick": MouseEvent; - "drag": DragEvent; - "dragend": DragEvent; - "dragenter": DragEvent; - "dragleave": DragEvent; - "dragover": DragEvent; - "dragstart": DragEvent; - "drop": DragEvent; - "durationchange": Event; - "emptied": Event; - "ended": Event; - "error": ErrorEvent; - "focus": FocusEvent; - "focusin": FocusEvent; - "focusout": FocusEvent; - "formdata": FormDataEvent; - "gotpointercapture": PointerEvent; - "input": Event; - "invalid": Event; - "keydown": KeyboardEvent; - "keypress": KeyboardEvent; - "keyup": KeyboardEvent; - "load": Event; - "loadeddata": Event; - "loadedmetadata": Event; - "loadstart": Event; - "lostpointercapture": PointerEvent; - "mousedown": MouseEvent; - "mouseenter": MouseEvent; - "mouseleave": MouseEvent; - "mousemove": MouseEvent; - "mouseout": MouseEvent; - "mouseover": MouseEvent; - "mouseup": MouseEvent; - "pause": Event; - "play": Event; - "playing": Event; - "pointercancel": PointerEvent; - "pointerdown": PointerEvent; - "pointerenter": PointerEvent; - "pointerleave": PointerEvent; - "pointermove": PointerEvent; - "pointerout": PointerEvent; - "pointerover": PointerEvent; - "pointerup": PointerEvent; - "progress": ProgressEvent; - "ratechange": Event; - "reset": Event; - "resize": UIEvent; - "scroll": Event; - "securitypolicyviolation": SecurityPolicyViolationEvent; - "seeked": Event; - "seeking": Event; - "select": Event; - "selectionchange": Event; - "selectstart": Event; - "stalled": Event; - "submit": Event; - "suspend": Event; - "timeupdate": Event; - "toggle": Event; - "touchcancel": TouchEvent; - "touchend": TouchEvent; - "touchmove": TouchEvent; - "touchstart": TouchEvent; - "transitioncancel": TransitionEvent; - "transitionend": TransitionEvent; - "transitionrun": TransitionEvent; - "transitionstart": TransitionEvent; - "volumechange": Event; - "waiting": Event; - "webkitanimationend": Event; - "webkitanimationiteration": Event; - "webkitanimationstart": Event; - "webkittransitionend": Event; - "wheel": WheelEvent; -} - -interface GlobalEventHandlers { - /** - * Fires when the user aborts the download. - * @param ev The event. - */ - onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; - onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; - onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; - onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; - onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null; - onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - /** - * Fires when the object loses the input focus. - * @param ev The focus event. - */ - onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; - /** - * Occurs when playback is possible, but would require further buffering. - * @param ev The event. - */ - oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null; - oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Fires when the contents of the object or selection have changed. - * @param ev The event. - */ - onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Fires when the user clicks the left mouse button on the object - * @param ev The mouse event. - */ - onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Fires when the user clicks the right mouse button in the client area, opening the context menu. - * @param ev The mouse event. - */ - oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Fires when the user double-clicks the object. - * @param ev The mouse event. - */ - ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - /** - * Fires on the source object continuously during a drag operation. - * @param ev The event. - */ - ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; - /** - * Fires on the source object when the user releases the mouse at the close of a drag operation. - * @param ev The event. - */ - ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; - /** - * Fires on the target element when the user drags the object to a valid drop target. - * @param ev The drag event. - */ - ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; - /** - * Fires on the target object when the user moves the mouse out of a valid drop target during a drag operation. - * @param ev The drag event. - */ - ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; - /** - * Fires on the target element continuously while the user drags the object over a valid drop target. - * @param ev The event. - */ - ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; - /** - * Fires on the source object when the user starts to drag a text selection or selected object. - * @param ev The event. - */ - ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; - ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null; - /** - * Occurs when the duration attribute is updated. - * @param ev The event. - */ - ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when the media element is reset to its initial state. - * @param ev The event. - */ - onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when the end of playback is reached. - * @param ev The event - */ - onended: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Fires when an error occurs during object loading. - * @param ev The event. - */ - onerror: OnErrorEventHandler; - /** - * Fires when the object receives focus. - * @param ev The event. - */ - onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null; - onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null; - ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null; - oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Fires when the user presses a key. - * @param ev The keyboard event - */ - onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; - /** - * Fires when the user presses an alphanumeric key. - * @param ev The event. - * @deprecated - */ - onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; - /** - * Fires when the user releases a key. - * @param ev The keyboard event - */ - onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null; - /** - * Fires immediately after the browser loads the object. - * @param ev The event. - */ - onload: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when media data is loaded at the current playback position. - * @param ev The event. - */ - onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when the duration and dimensions of the media have been determined. - * @param ev The event. - */ - onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when Internet Explorer begins looking for media data. - * @param ev The event. - */ - onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - /** - * Fires when the user clicks the object with either mouse button. - * @param ev The mouse event. - */ - onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - /** - * Fires when the user moves the mouse over the object. - * @param ev The mouse event. - */ - onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - /** - * Fires when the user moves the mouse pointer outside the boundaries of the object. - * @param ev The mouse event. - */ - onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - /** - * Fires when the user moves the mouse pointer into the object. - * @param ev The mouse event. - */ - onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - /** - * Fires when the user releases a mouse button while the mouse is over the object. - * @param ev The mouse event. - */ - onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null; - /** - * Occurs when playback is paused. - * @param ev The event. - */ - onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when the play method is requested. - * @param ev The event. - */ - onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when the audio or video has started playing. - * @param ev The event. - */ - onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null; - /** - * Occurs to indicate progress while downloading media data. - * @param ev The event. - */ - onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null; - /** - * Occurs when the playback rate is increased or decreased. - * @param ev The event. - */ - onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Fires when the user resets a form. - * @param ev The event. - */ - onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null; - /** - * Fires when the user repositions the scroll box in the scroll bar on the object. - * @param ev The event. - */ - onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when the seek operation ends. - * @param ev The event. - */ - onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when the current playback position is moved. - * @param ev The event. - */ - onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Fires when the current selection changes. - * @param ev The event. - */ - onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when the download has stopped. - * @param ev The event. - */ - onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onsubmit: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs if the load operation has been intentionally halted. - * @param ev The event. - */ - onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs to indicate the current playback position. - * @param ev The event. - */ - ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null; - ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null; - ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; - ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; - ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; - ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined; - ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; - ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; - ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; - ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null; - /** - * Occurs when the volume is changed, or playback is muted or unmuted. - * @param ev The event. - */ - onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null; - /** - * Occurs when playback stops because the next frame of a video resource is not available. - * @param ev The event. - */ - onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null; - onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null; - addEventListener(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: GlobalEventHandlers, ev: GlobalEventHandlersEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -interface HTMLAllCollection { - /** - * Returns the number of elements in the collection. - */ - readonly length: number; - /** - * Returns the item with index index from the collection (determined by tree order). - */ - item(nameOrIndex?: string): HTMLCollection | Element | null; - /** - * Returns the item with ID or name name from the collection. - * - * If there are multiple matching items, then an HTMLCollection object containing all those elements is returned. - * - * Only button, form, iframe, input, map, meta, object, select, and textarea elements can have a name for the purpose of this method; their name is given by the value of their name attribute. - */ - namedItem(name: string): HTMLCollection | Element | null; - [index: number]: Element; -} - -declare var HTMLAllCollection: { - prototype: HTMLAllCollection; - new(): HTMLAllCollection; -}; - -/** Hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface that they inherit from) for manipulating the layout and presentation of such elements. */ -interface HTMLAnchorElement extends HTMLElement, HTMLHyperlinkElementUtils { - /** - * Sets or retrieves the character set used to encode the object. - * @deprecated - */ - charset: string; - /** - * Sets or retrieves the coordinates of the object. - * @deprecated - */ - coords: string; - download: string; - /** - * Sets or retrieves the language code of the object. - */ - hreflang: string; - /** - * Sets or retrieves the shape of the object. - * @deprecated - */ - name: string; - ping: string; - referrerPolicy: string; - /** - * Sets or retrieves the relationship between the object and the destination of the link. - */ - rel: string; - readonly relList: DOMTokenList; - /** - * Sets or retrieves the relationship between the object and the destination of the link. - * @deprecated - */ - rev: string; - /** - * Sets or retrieves the shape of the object. - * @deprecated - */ - shape: string; - /** - * Sets or retrieves the window or frame at which to target content. - */ - target: string; - /** - * Retrieves or sets the text of the object as a string. - */ - text: string; - type: string; - addEventListener(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: HTMLAnchorElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var HTMLAnchorElement: { - prototype: HTMLAnchorElement; - new(): HTMLAnchorElement; -}; - -/** Provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of elements. */ -interface HTMLAreaElement extends HTMLElement, HTMLHyperlinkElementUtils { - /** - * Sets or retrieves a text alternative to the graphic. - */ - alt: string; - /** - * Sets or retrieves the coordinates of the object. - */ - coords: string; - download: string; - /** - * Sets or gets whether clicks in this region cause action. - * @deprecated - */ - noHref: boolean; - ping: string; - referrerPolicy: string; - rel: string; - readonly relList: DOMTokenList; - /** - * Sets or retrieves the shape of the object. - */ - shape: string; - /** - * Sets or retrieves the window or frame at which to target content. - */ - target: string; - addEventListener(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; - addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; - removeEventListener(type: K, listener: (this: HTMLAreaElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; - removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; -} - -declare var HTMLAreaElement: { - prototype: HTMLAreaElement; - new(): HTMLAreaElement; -}; - -/** Provides access to the properties of